500多家长期合作企业1000多家企业人才定制培 养基地,定期双选会。
免费试听价值1980元课程,满意再报名。
“理论培训+真实项目实训”养成实战高手
企业定制化培养,学员至少3个真实项目实战,毕业1月就业率达99.2%,远超同行。
怎么学好 | 学什么好 | 咋学快速 |
---|
网络营销 | 以在线咨询为准 | 热招 |
HTML5定制班![]() |
以在线咨询为准 | 热招 |
Python定制班![]() |
以在线咨询为准 | 热招 |
软件测试就业班![]() |
以在线咨询为准 | 热招 |
JAVA就业班![]() |
以在线咨询为准 | 热招 |
UI设计定制班 | 以在线咨询为准 | 热招 |
全移动智能化教学设施
定义"高大上"
让你学习高薪技术专业轻松无忧快乐
学Java编程中哪些问题容易忘记?
在写代码的过程中,我们很容易忽略一些问题,针对这些问题小编汇总了以下几点,希望可以帮助到大家:
纠结的同名
现象
很多类的命名相同(例如:常见于异常、常量、日志等类),导致在import时,有时候张冠李戴,这种错误有时候很隐蔽。因为往往同名的类功能也类似,所以IDE不会提示warn。
解决
写完代码时,扫视下import部分,看看有没有不熟悉的。替换成正确导入后,要注意下注释是否也作相应修改。
启示
命名尽量避开重复名,特别要避开与JDK中的类重名,否则容易导入错,同时存在大量重名类,在查找时,也需要更多的辨别时间。
不要影响彼此
现象
在释放多个IO资源时,都会抛出IOException,于是可能为了省事如此写:
publicstaticvoidinputToOutput(InputStreamis,OutputStreamos,booleanisClose)throwsIOException{BufferedInputStreambis=newBufferedInputStream(is,1024);BufferedOutputStreambos=newBufferedOutputStream(os,1024);….if(isClose){bos.close;bis.close;}}
假设bos关闭失败,bis还能关闭吗?当然不能!
解决办法
虽然抛出的是同一个异常,但是还是各自捕获各的为好。否则第一个失败,后一个面就没有机会去释放资源了。
启示
代码/模块之间可能存在依赖,要充分识别对相互的依赖。
忘设初始容量
现象
在JAVA中,我们常用Collection中的Map做Cache,但是我们经常会遗忘设置初始容量。
cache=newLRULinkedHashMap<K,V(maxCapacity);
解决
初始容量的影响有多大?拿LinkedHashMap来说,初始容量如果不设置默认是16,超过16×LOAD_FACTOR,会resize(2*table.length),扩大2倍:采用EntrynewTable=newEntry[newCapacity];transfer(newTable),即整个数组Copy,那么对于一个需要做大容量CACHE来说,从16变成一个很大的数量,需要做多少次数组复制可想而知。如果初始容量就设置很大,自然会减少resize,不过可能会担心,初始容量设置很大时,没有Cache内容仍然会占用过大体积。其实可以参考以下表格简单计算下,初始时还没有cache内容,每个对象仅仅是4字节引用而已。
启示
不仅是map,还有stringBuffer等,都有容量resize的过程,如果数据量很大,就不能忽视初始容量可以考虑设置下,否则不仅有频繁的resize还容易浪费容量。
在中,除了上面枚举的一些容易忽视的问题,日常实践中还存在很多。相信在不断的实践中自己就可以发现并改正。
全国1000多家名企招聘
近500家企业人才定制培养需求
想不就业,太难!
课程免费咨询热线:13783581536