兰州IT培训
美国上市IT培训机构

0931-4903018

热门课程

java开发工作中10个经验分享

  • 时间:2019-03-21 19:17
  • 发布:兰州
  • 来源:IT知识库

Java程序员薪资待遇怎么样?为什么依然有那么多的人选择学习Java技术呢?真的那么吃香吗?面对这些疑问,想学习java技术的你又该作何去何从呢?带着这些疑问听听达内兰州java培训机构作何解答吧。

1. 在使用同步机制时,应尽量使用方法同步代替代码块同步。

2. 不要在循环中使用Try/Catch语句,应把Try/Catch放在循环最外层

Error是获取系统错误的类,或者说是虚拟机错误的类。不是所有的错误Exception都能获取到的,虚拟机报错Exception就获取不到,必须用Error获取。

3. 通过StringBuffer的构造函数来设定它的初始化容量,可以明显提升性能

StringBuffer的默认容量为16,当StringBuffer的容量达到最大容量时,它会将自身容量增加到当前的2倍+2,也就是2*n+2。无论何时,只要StringBuffer到达它的最大容量,它就不得不创建一个新的对象数组,然后复制旧的对象数组,这会浪费很多时间。所以给StringBuffer设置一个合理的初始化容量值,是很有必要的!

4. 合理使用java.util.Vector

Vector与StringBuffer类似,每次扩展容量时,所有现有元素都要赋值到新的存储空间中。Vector的默认存储能力为10个元素,扩容加倍。

vector.add(index,obj) 这个方法可以将元素obj插入到index位置,但index以及之后的元素依次都要向下移动一个位置(将其索引加 1)。 除非必要,否则对性能不利。同样规则适用于remove(int index)方法,移除此向量中指定位置的元素。将所有后续元素左移(将其索引减 1)。返回此向量中移除的元素。所以删除vector最后一个元素要比删除第1个元素开销低很多。删除所有元素最好用removeAllElements()方法。

如果要删除vector里的一个元素可以使用 vector.remove(obj);而不必自己检索元素位置,再删除,如int index = indexOf(obj);vector.remove(index)。

5. 不用new关键字创建对象的实例

用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。

下面是Factory模式的一个典型实现:

java开发培训

改进后的代码使用clone()方法:

java开发培训

● 6. 不要将数组声明为:public static final

● 7. HaspMap的遍历:

java开发培训

利用散列值取出相应的Entry做比较得到结果,取得entry的值之后直接取key和value。

8. array(数组)和ArrayList的使用

array 数组效率最高,但容量固定,无法动态改变,ArrayList容量可以动态增长,但牺牲了效率。

9. 单线程应尽量使用 HashMap, ArrayList,除非必要,否则不推荐使用HashTable,Vector,它们使用了同步机制,而降低了性能。

10. StringBuffer,StringBuilder的区别在于

java.lang.StringBuffer 线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改。StringBuilder与该类相比,通常应该优先使用StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。

为了获得更好的性能,在构造StringBuffer或StringBuilder时应尽量指定她的容量。当然如果不超过16个字符时就不用了。 相同情况下,使用StringBuilder比使用StringBuffer仅能获得10%~15%的性能提升,但却要冒多线程不安全的风险。综合考虑还是建议使用StringBuffer。

千里之行,始于足下,只有付出才有收获,如果你想成功入行java开发,成为java开发高级技术人才,心动不如行动,赶紧加入学习吧!

上一篇:java开发高级进阶入门10个技巧
下一篇:java开发10个高新指南秘籍

马上预约七天免费体验课

姓名:

电话:

java开发10个高新指南秘籍

java开发工作中10个经验分享

java开发高级进阶入门10个技巧

高级java开发的10个学习方法分享

选择城市和中心
江西省

贵州省

广西省

海南省