JAVA性能 调优之 基础小知识点随笔

注意:本片博客会不定时更新,建议收藏哈哈

1,小心使用String.subString()方法,容易引起内存泄漏,及时使用采用 new String(String.subString())代替。
2,ArrayList遍历的最高效方法就是for循环>迭代器>foreach(foreache底层还是迭代器实现,而且多了一步赋值操作因此性能差)
3,ArrayList删除元素的效率 尾部>中间>头部,LinkedIist删除元素的效率头部=尾部>>中间
4,ArrayList基于数组实现,随机访问效率很高,LinkedList基于链表结构实现,随机访问效率差
5,所有的对象存放在堆内存中,被所有线程共享,只存对象本身的class信息
6,方法区包含所有的class和静态变量
7.==是判断两个变量指向的堆内存地址是否相同 ,equals 是判断两个变量是否值相等
8,赋值语句和创建对象都是强引用,强引用所指向的对象在任何时候都不会被系统回收,因而可能导致内存泄露
9,GC日志打印命令:java -jar -server -Xloggc:log/gc.log -XX:+PrintGCTimeStamps -XX:+PrintGCDetails collectionNMS.jar
10,UDP客户端为了提高数据接收性能需要采用NIO模式进行高并发数据读取。
11,当数据量较大是采用ByteBuffer.allocateDirect()性能更好 一般就采用ByteBuffer.allocate().

你可能感兴趣的:(知识学习,读书心得)