Java中基本类型两者的使用

来源:互联网 发布:傲娇熊直播 知乎 编辑:程序博客网 时间:2024/05/21 19:37

  6. 尽量处理好包装类型和基本类型两者的使用场所

  虽然包装类型和基本类型在使用过程中是可以相互转换,但它们两者所产生的内存区域是完全不同的,基本类型数据产生和处理都在栈中处理,包装类型是对象,是在堆中产生实例。

  在集合类对象,有对象方面需要的处理适用包装类型,其他的处理提倡使用基本类型。

  7. 慎用synchronized,尽量减小synchronize的方法

  都知道,实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。synchronize方法被调用时,直接会把当前对象锁 了,在方法执行完之前其他线程无法调用当前对象的其他方法。所以synchronize的方法尽量小,并且应尽量使用方法同步代替代码块同步。

  8. 尽量使用StringBuilder和StringBuffer进行字符串连接

  这个就不多讲了。

  9. 尽量不要使用finalize方法

  实际上,将资源清理放在finalize方法中完成是非常不好的选择,由于GC的工作量很大,尤其是回收Young代内存时,大都会引起应用程序暂停,所以再选择使用finalize方法进行资源清理,会导致GC负担更大,程序运行效率更差。

  10. 尽量使用基本数据类型代替对象

  String str = "hello"; 上面这种方式会创建一个"hello"字符串,而且JVM的字符缓存池还会缓存这个字符串;

  String str = new String("hello"); 此时程序除创建字符串外,str所引用的String对象底层还包含一个char[]数组,这个char[]数组依次存放了h,e,l,l,o

  11. 单线程应尽量使用HashMap、ArrayList

  HashTable、Vector等使用了同步机制,降低了性能。

  12. 尽量合理的创建HashMap

  当你要创建一个比较大的hashMap时,充分利用另一个构造函数

  public HashMap(int initialCapacity, float loadFactor) 避免HashMap多次进行了hash重构,扩容是一件很耗费性能的事,在默认中initialCapacity只有16,而loadFactor是 0.75,需要多大的容量,你最好能准确的估计你所需要的最佳大小,同样的Hashtable,Vectors也是一样的道理。

0 0
原创粉丝点击