2017.2.28 学习记录


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

菜单栏,tools->vim emulator

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

检查MavenSetting文件

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

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

一劳永逸解决IDEAmaven配置的问题

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

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

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

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

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

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

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

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

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

三方库:公司之外的开源库, 比如apacheibmgoogle等发布的依赖

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

 

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

说明:对于Integer var=?-128127之间的赋值,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--”操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值