您的位置:首页 > 编程语言 > Java开发

2017.2.28 学习记录

2017-03-01 15:36 246 查看


1.Intelligent IDEAJ 复制粘贴等快捷键无法使用 的 解决方案:

菜单栏,tools->vim emulator

2.Intelligent IDEAJ 某些JAR包无法导入 的 解决方案:

检查Maven的Setting文件

检查File - Settings - Maven里面的Setting File和Local Repository是否配置正确

检查版本号和Jar包名称是否正确

一劳永逸解决IDEA的maven配置的问题

修改File - Other Settings - Default Settings - Maven里面的Setting File和Local
Repository

3.Maven有三套相互独立的生命周期:

Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

Site Lifecycle 生成项目报告,站点,发布站点。

mvn clean install site 命令可以运行完整的3套生命周期

4.一方库、二方库、三方库说明:

一方库:本工程中的各模块的相互依赖

二方库:公司内部的依赖库,一般指公司内部的其他项目发布的jar包

三方库:公司之外的开源库,
比如apache、ibm、google等发布的依赖

5.IDE的text file encoding设置为UTF-8; IDE中文件的换行符使用Unix格式,不要使用windows格式。

 

6.所有的相同类型的包装类对象之间值的比较,全部使用equals方法比较。

说明:对于Integer var=?在-128至127之间的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。

7.不要在foreach循环里进行元素的remove/add操作。

remove元素请使用Iterator方式或下标自减,如果并发操作,需要对Iterator对象加锁。 反例:

List<String> a = new ArrayList<String>();

a.add("1");

a.add("2");

for (String temp : a) {

if("1".equals(temp)){

a.remove(temp);

}

}

说明:以上代码的执行结果肯定会出乎大家的意料,那么试一下把“1”换成“2”,会是同样的结果吗? 正例:

Iterator<String> it = a.iterator();

while(it.hasNext()){

String temp = it.next();

if(删除元素的条件){

it.remove();

}

}

 

不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。
反例:

List<String> a = new ArrayList<String>();

a.add("1");

a.add("2");

for (String temp : a) {

if("1".equals(temp)){

a.remove(temp);

}

}

说明:以上代码的执行结果肯定会出乎大家的意料,那么试一下把“1”换成“2”,会是同样的结果吗? 正例:

Iterator<String> it = a.iterator();

while(it.hasNext()){

String temp = it.next();

if(删除元素的条件){

it.remove();

}

}

 

或者:在remove后,对下标进行“i--”操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java