IDEA常用设置(提高开发效率)
本人也是IDEA编译器的忠实用户了,但是有时出于各种原因,比如更换设备等等,IDEA总是需要重新安装配置。这就让我比较苦恼,因为总是记不全自己之前都修改了哪些地方(原谅脑子不好使hh),所以就以此篇文章记录一下目前我的IDEA的设置情况。可能依旧不太全(后续会持续修改更新),但至少比我用脑子记要好得多了。
以下内容是集大家之所长,但也有部分设置是个人习惯,各位视情况自取。
IDEA2018激活可参考:Java编译器IntelliJ IDEA 2018.2.4激活【免费永久极简】2023年亲测有效 – 靠谱杨技术博客_靠谱杨技术博客 (reliableyang.cn)
IDEA2020激活可参考:IntelliJ IDEA2020.3激活【2023.04亲测有效】 – 靠谱杨技术博客_靠谱杨技术博客 (reliableyang.cn)
配置JDK安装路径。
File ➡ Project Structure
maven安装配置保姆级教学可参考:
保姆级本地maven安装配置步骤【Windows】 – 靠谱杨技术博客_靠谱杨技术博客 (reliableyang.cn)
IntelliJ IDEA集成本地Maven步骤 – 靠谱杨技术博客_靠谱杨技术博客 (reliableyang.cn)
File ➡ Setrings 搜索maven,如图所示:
File ➡ Setrings 搜索Theme,如图所示:
支持自定义主题(插件商店下载),我使用的是One Dark这款,类似 VS Code 风格。
One Dark 主题效果如图:
非代码字体样式设置:File ➡ Setrings 搜索 UI Options
代码字体样式设置:File-->Settings-->Editor-->Font
字体样式可以在插件商店自由定制,我使用的是JetBrains Mono字体主题。
行间距建议1.2,字体大小看个人习惯。
控制台也是开发人员非常关注的一个界面了,控制台的样式设置如下:File-->Settings 搜索Color Scheme,选择Console Font。
如图所示:
File-->Settings 搜索 File Encodings 如图所示:
着重介绍一下properties files编码设置,我们可以看到后面的复选框内容为:Transparent native-to-ascii conversion,直译过来就是,透明地将本地编码转换成ascii编码。解释一下这个选项的作用:
如果没有勾选,当我们以GBK模式编辑了一个.properties文件之后,其他人用UTF-8的编码打开,会出现中文乱码的状况。但是如果勾选了这个设置,就不会出现中文乱码的情况。
见名知意,当我们把鼠标悬停在某个字段上的时候,会出现相应的介绍信息,如下图鼠标悬浮在@Override:
File-->Settings 搜索 Show quick 如图所示:
IDEA默认是区分大小写的,比如我想输入一个str就给我提示出String,但是默认的设置对首字母大写是敏感的,所以无法实现我想要的效果:
File-->Settings 搜索 Code Completion 如图所示:
设置之后的效果如下:当我输入str的时候系统会给我提示String,这会从一定程度上提高开发效率(当然这要看个人,如果习惯了切换大小写,这个设置可能就不太需要了)。
在我们写代码的时候会出现方法过多,看着眼花缭乱的情况,这一条细细的分割线会起到一定的辅助作用。
File-->Settings 搜索 show method 如图所示:
实现效果如下:可以看到两个方法之间存在一条分割线。
当我们打开多个tab标签的时候,会出现某些标签页藏在右侧不显示的情况,这时候我们去切换标签页就非常不方便。所以我们可以设置标签页多行显示,这样方便我们切换查看,方法如下:
File-->Settings 搜索 Editor Tabs 如图所示:
多行显示标签效果如下:
快捷键是每个开发人员必不可少的一个设置了。
如果有之前习惯了eclipse开发的伙伴,可以直接选择设置eclipse快捷键。
File-->Settings 搜索 Keymap 如图所示:
在我们创建类或者方法时,可以快速生成注释信息,以便于开发人员后续查看,这同时也是一个良好的编程习惯,关于这部分设置我写过一篇文章做了详细介绍,可以参考下面的链接。
参考:IDEA设置自动生成模板类和方法注释 – 靠谱杨技术博客_靠谱杨技术博客 (reliableyang.cn)
这个设置就比较容易理解了,在代码页左侧显示行号。
File-->Settings 搜索 line numbers 如图所示:
File-->Settings 搜索 auto import 如图所示:
Optimize imports on the fly:IntelliJ IDEA 将在我们书写代码的时候自动帮我们优化导入的包,比如自动去掉一些没有用到的包。
Add unambiguous imports on the fly: IntelliJ IDEA 将在我们书写代码的时候自动帮我们导入需要用到的包。但是对于那些同名的包,还是需要手动 Alt + Enter 进行导入的
打开IDEA设置Settings,选择Plugins,搜索CodeGlance插件。下载完成之后重启就完成了。
设置完成后会在代码页右侧显示一列代码缩略图,方便开发者快速定位某段代码。
然后按SHIFT+CTRL+A,输入registry后单击打开。
之后找到compiler.automake.allow.when.app.running并将其选中。
至此配置完毕,重启后生效。
在开发过程中,会出现非常多个花括号嵌套的情况,那就可能会出现不知道哪个括号对着哪个的情况,尤其是在想删除一段代码的时候。这款插件就比较好的解决了这个问题。
在插件商店搜索Rainbow Brackets后安装。
效果如下,每一对括号会显示为不同的颜色,方便区分。
此外,当我们把光标定位到前一个括号后,使用快捷键ALT+鼠标右键可以只查看当前括号中的内容,按ESC取消,效果如下图:
安装Eclipse Code Formatter格式化插件。
下载格式化配置文件:
GoogleStyle:eclipse-java-google-style.xml
网上可能不太好找,可以关注我的订阅号【靠谱杨的挨踢生活】后台回复【代码格式】免费获取该文件。
文件配置如下图所示。
使用快捷键Ctrl+Alt+L格式化代码。
换行设置建议120字符,Tab建议设置为4个空格。
更多分享尽在我的订阅号:【靠谱杨的挨踢生活】
好看请赞,养成习惯:) 本文来自博客园,作者:靠谱杨, 转载请注明原文链接:http://www.cnblogs.com/rainbow-1/p/17417147.html
关于笔者: 我的主页
欢迎来我的51CTO主页踩一踩~ 我的51CTO博客
更多分享尽在我的订阅号:靠谱杨的挨踢生活
接Vue2剥丝抽茧-响应式系统、Vue2剥丝抽茧-响应式系统之分支切换,还没有看过的同学需要看一下。场景在Vue开发中肯定存在组件嵌套组件的情况,类似于下边的样子。<!--parent-component--> <div> <my-component:text="inner"></my-component> {{text}} <div> <!--my-component--> <div>{{text}}</div> 复制回到我们之前的响应式系统,模拟一下上边的情况:import{observe}from"./reactive"; importWatcherfrom"./watcher"; constdata={ text:"hello,world", inner:"内部", }; observe(data); constupdateMyComponent=()=>{ console.
大家好,又见面了,我是全栈君。dispatch_once为了确保代码运行一次+(NSDateFormatter*)getDBDateFormat { staticNSDateFormatter*format; staticdispatch_once_tonceToken; dispatch_once(&onceToken,^{ format=[[LKDateFormatteralloc]init]; format.dateFormat=@"yyyy-MM-ddHH:mm:ss"; }); returnformat; }复制dispatch_once_t的描写叙述是typedeflongdispatch_once_t; DescriptionApredicateforusewiththedispatch_oncefunction.dispatch_once展开是void _dispatch_once(dispatch_once_t*predicate,dispatch_block_tblock) { if(DISPATCH_EXPECT(*predicate,
最近接了一个关于法律的活,要处理音频,曾几何时,我也是个录音的发烧友,只不过最近几年写程序玩的太花哨,和以前渐行渐远了。。。 我以前用的是Audition,现在最新的是CC版本了。 链接:https://pan.baidu.com/s/1IkNDl-BnZjfNSntpzsGD2w 提取码:4c2c 复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V6的分享复制解压密码@vposy复制无脑安装,连破解的步骤也没有了。。。我做音频修复就使用一个界面就行我使用简单编辑和母带分析分析页面然后我发现了一个脚本??? 还有这事???这样的文件下篇待续
一、编译阶段回顾Vue2,我们知道每个组件实例都对应一个watcher实例,它会在组件渲染的过程中把用到的数据property记录为依赖,当依赖发生改变,触发setter,则会通知watcher,从而使关联的组件重新渲染试想一下,一个组件结构如下图<template> <divid="content"> <pclass="text">静态文本</p> <pclass="text">静态文本</p> <pclass="text">{{message}}</p> <pclass="text">静态文本</p> ... <pclass="text">静态文本</p> </div> </template> 复制可以看到,组件内部只有一个动态节点,剩余一堆都是静态节点,所以这里很多diff和遍历其实都是不需要的,
SpringBoot中Springdata注解的使用SringdataJPA为我们提供了很多有用的注解,方便我们来实现各种复杂的功能。本文我们将会从SpringDataAnnotations和SpringDataJPAAnnotations两部分来讲解。SpringDataAnnotationsSpringDataAnnotations是指这些注解来自于spring-data-commons包里面的。SpringData不仅可以用于JPA,它还有很多其他的数据提供方,JPA只是其中的一个具体实现。@Transactional使用@Transactional可以很简单的将方法配置成为Transactional:@Transactional voidpay(){} 复制@Transactional可以放在方法上,也可以放在class上面,如果放在class上面则说明该class中的所有方法都适用于Transactional。@NoRepositoryBean有时候我们在创建父Repository的时候,我们不需要为该父Repository创建一个具体的实现,我们只是想为子Repositor
选自towardsdatascience 作者:HaebichanJung参与:PandaW、张倩简历上写了一堆成功的项目,在面试官那儿真的管用吗?过来人表示:未必。近日,TowardsDataScience项目主管和Recurly数据科学家HaebichanJung发文介绍了他的经历。他表示,项目做得多、做得好可能在简历筛选阶段比较有用,但面试官可能根本不关心你的项目,而是通过「智力测验」决定你的去留。 项目心态雄心勃勃的数据科学家是如何得到高薪职位的?其实人们对此有很大的误解,认为这和做过的项目有关。这里所说的「项目」是指某种放在JupyterNotebook上的最新机器学习或深度学习算法,而且会被上传到GitHub。你可能希望借此得到面试官的好评。但猜猜结果如何?那些面试官实际上不会读多少你的个人项目代码。如果你认为项目很重要,你就有我所说的「项目心态」。项目心态:(名词)心里想着做的机器学习项目越多,简历里的项目越丰富,获得高薪数据科学职位的可能就越大;但实际上,这不会让很多人觉得你很厉害。为什么这么说呢?因为我之前就是这样的蠢蛋。我之前就花了很多宝贵的时间来做各种不同的项目,
什么是负载均衡(Loadbalancing) 在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但随着业务量越来越大,无论性能还是稳定性上都有了更大的挑战。这时候我们就会想到通过扩容的方式来提供更好的服务。我们一般会把多台机器组成一个集群对外提供服务。然而,我们的网站对外提供的访问入口都是一个的,比如www.taobao.com。那么当用户在浏览器输入www.taobao.com的时候如何将用户的请求分发到集群中不同的机器上呢,这就是负载均衡在做的事情。当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等。在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发。 最近几年很火的「云计算」以及分布式架构,本质上也是将后端服务器作为计算资源、存储资源,由某台管理服务器封装成一个服务对外提
分享主题农学专业出身互联网销售的AI算法工程师转型之路分享人王东某科技企业人工智能算法工程师农学类专业毕业;喜欢和人打交道,从事互联网销售两年,然业绩一直不好。秣马厉兵,埋头苦学,终于在互联网的寒冬期转型成功,入职某大型科技企业,就任AI算法工程师。分享内容1.农学毕业,投身互联网做销售 1.1机遇难求:本科农学毕业,本打算回老家承包鱼塘田地,无奈还没毕业就已经被别人承包完了。1.2现实骨感:投身互联网销售多种产品,想成为销售高手,但没成功。2.转型之旅,向人工智能行业挺进2.1贵人相助:从大学同学得知人工智能行业的兴起与前景。2.2秣马厉兵:决心转行,自学AI知识技能。2.3上阵临敌:开始投简历、面试,遇到的新的问题——薪资。3.变身之后:入职新企业、新岗位3.1扬帆起航:刚进公司的心态。3.2初遇风暴:入职2个月,公司开始大规模裁员,如何规避风险?3.3劈波斩浪:菜鸟的进阶之路。4.希望在前方,对未来的规划时间和平台时间:2019年5月1日(周三)晚20:00-21:30平台:千聊平台,扫描下面二维码进入直播间有意者请扫描下列二维码,添加叶锦鲤为好友(标明“众智汇”),拉你入群!“
基本简介LSTM_learn 使用Keras进行时间序列预测回归问题的LSTM实现数据 数据来自互联网,这些数据用于预测航空公司的人数,我们使用LSTM网络来解决这个问题 关于此处模型构建,只对keras部分代码做重点的介绍模型构建与编译defbuild_model(): #input_dim是输入的train_x的最后一个维度,train_x的维度为(n_samples,time_steps,input_dim) model=Sequential() #部分注释是对于老版本的kreas,支持,2.2.2不支持 #model.add(LSTM(input_dim=1,output_dim=50,return_sequences=True)) #2.2.2keras model.add(LSTM(input_shape=(None,1),units=100,return_sequences=False)) #① #model.add(LSTM(units=100,return_sequences=False)) #model.add(Dense(output_dim=1)) model
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/9132359 HTML(HypertextMarkupLanguage)超文本标记语言 HTML是编写Web应用程序的一种语言,它通过标记符号来标记要显示的网页中的各个部分。通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如文字如何处理,画面如何安排,图片如何显示等)。 HTML文档结构:<spanstyle="font-size:24px;"><html> <head> <title>页面标题</title> </head> <body> <!--主体内容--> </body> </html> </span>复制<html>通常作为HTML文档的而开始代码,而</html>通常作为
求圆与直线的交点的方法是:求圆心c在直线l上的投影点pr求出直线l上的单位向量e根据r和pr的长度来计算出圆内线段部分的一半base用pr±base*e即得到答案题目:CGL_7_DAC代码:#include<iostream> #include<cstdio> #include<math.h> usingnamespacestd; #defineCOUNTER_CLOCKWISE-1//逆时针 #defineCLOCKWISE1//顺时针 #defineONLINE_BACK-2//p2p0p1依次排列在一条直线上 #defineONLINE_FRONT2//p0p1p2依次排列在一条直线上 #defineON_SEGMENT0//p2在线段p0p1上 #defineEPS1E-8 classPoint { public: doublex,y; Point() { } Point(doublex,doubley) { (*this).x=x; (*this).y=y; } doubleoperator^(constPoint&p)c
Linuxrmdir(英文全拼:removedirectory)命令删除空的目录。语法格式: rmdir[参数][目录名称]常用参数:-p用递归的方式删除指定的目录路径中的所有父级目录,非空则报错-v显示命令的详细执行过程——help显示命令的帮助信息——version显示命令的版本信息参考实例删除空目录:[root@bunian~]#rmdirdir复制递归删除指定的目录树:[root@bunian~]#rmdir-pdir/dir1/dir2复制显示指令详细执行过程:[root@bunian~]#rmdir-vdir rmdir:removingdirectory,'dir'复制[root@bunian~]#rmdir-p-vdir/dir1/dir2 rmdir:removingdirectory,‘dir/dir1/dir2’ rmdir:removingdirectory,‘dir/dir1’ rmdir:removingdirectory,‘dir’复制显示命令的版本信息:[root@bunian~]#rmdir--version rmdir(GNUco
select*fromemp;#注释 #--------------------------- #----命令行连接MySql--------- #启动mysql服务器 netstartmysql #关闭 netstopmysql #进入 mysql-h主机地址-u用户名-p用户密码 #退出 exit status; 显示当前mysql的version的各种信息。 #--------------------------- #----MySql用户管理--------- #修改密码:首先在DOS下进入mysql安装路径的bin目录下,然后键入以下命令: mysqladmin-uroot-p123password456; #增加用户 #格式:grant权限on数据库.*to用户名@登录主机identifiedby'密码' /* 如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: grantselect,insert,update,deleteon*.*
TMOD:工作方式控制寄存器 寄存器地址89H,不可位寻址。 位序 B7 B6 B5 B4 B3 B2 B1 B0 位符号 GATE C/T M1 M0 GATE C/T M1 M0 GATE——门控位 当=0时,以TR0(或TR1)状态决定定时器/计数器的启动或禁止 当=1时,以TR0与INT0(或TR1与INT1)状态决定定时器/计数器的启动或禁止 C/T=0定时/计数工作方式选择位 0为定时器 1为计数器。 M1M0——工作方式选择位 M1M0=00方式0:是13位计数结构的工作方式,其计数器由TH全部8位和TL的低5位构成。 M1M0=01方式1:是16位计数结构的工作方式,计数器由TH全部8位和TL全部8位构成。 M1M0=10方式2:自动装入8位计数器。 M1M0=11方式3:定时器/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以计数使用,又可以定时使用,定时器/计数器0的各控制位和引
原文地址:LuaOpenResty容器化(考古历程) 背景 公司有几个“远古时期”的项目,一直都相对较为稳定,但是项目每天总会在一些时段,请求每分钟QPS到达峰值800K左右,导致机器的性能出现了一些瓶颈,每到峰值时期,总会出现一个告警,实在是令人头疼。更糟糕的是这只是远古时期项目中的其中一个而且都是部署在物理机器上,所有机器加起来接近100台。 出于稳定性(削峰)和成本的角度考虑,我们最终决定将所有的LuaOpenResty项目上到k8s集群。 选择合适的openresty基础镜像 通过查看线上在使用的openresty版本信息: /usr/local/openresty/nginx/sbin/nginx-V nginxversion:openresty/1.13.6.2 builtbygcc4.8.520150623(RedHat4.8.5-16)(GCC) builtwithOpenSSL1.1.0h27Mar2018(runningwithOpenSSL1.1.0k28May2019) TLSSNIsupportenabled configurearguments:--pre
一、实践题目 7-1数字三角形(30分) 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 二、问题描述 输入格式: 输入有n+1行: 第1行是数字三角形的行数n,1<=n<=100。 接下来n行是数字三角形各行中的数字。所有数字在0..99之间。 输出格式: 输出最大路径的值。 输入样例: 在这里给出一组输入。例如: 5 7 38 810 2744 45265 复制 输出样例: 在这里给出相应的输出。例如: 30 三、算法描述 #include<iostream> #include<memory.h> usingnamespacestd; inta[101][101]; intaset[101][101]; intn; intmain(){ cin>>n; memset(aset,-1,sizeof(aset));//置初值 inti,j;  
1.gogetgithub.com/gophercloud/gophercloud 复制 import( "github.com/gophercloud/gophercloud" "github.com/gophercloud/gophercloud/openstack" "fmt" "crypto/rand" "github.com/gophercloud/gophercloud/pagination" "golang.org/x/crypto/ssh" "time" "net" "github.com/golang/glog" "os" "github.com/gophercloud/gophercloud/openstack/identity/v3/projects" "encoding/json" "github.com/gophercloud/gophercloud/openstack/identity/v3/domains" "github.com/gophercloud/gophercloud/openstack/imageservice
c++中对new申请的内存的释放方式有delete和delete[两种方式,到底这两者有什么区别呢? 1.我们通常从教科书上看到这样的说明: delete释放new分配的单个对象指针指向的内存 delete[]释放new分配的对象数组指针指向的内存 那么,按照教科书的理解,我们看下下面的代码 int*a=newint[10]; deletea;//方式1 delete[]a;//方式2复制 肯定会有很多人说方式1肯定存在内存泄漏,是这样吗? (1).针对简单类型使用new分配后的不管是数组还是非数组形式内存空间用两种方式均可如: int*a=newint[10]; deletea; delete[]a;复制 此种情况中的释放效果相同,原因在于:分配简单类型内存时,内存大小已经确定,系统可以记忆并且进行管理,在析构时,系统并不会调用析构函数, 它直接通过指针可以获取实际分配的内存空间,哪怕是一个数组内存空间(在分配过程中系统会记录分配内存的大小等信息,此信息保存在结构体_CrtMemBlockHeader中, 具体情况可参看VC安装目录下CRTSRCDBGDEL.cpp) (2)