Java程序优化

1、字符串优化处理

在Java中,对字符串做了大量的优化处理

  • 1、不变性

当一个对象被多个线程共享,不变性可以省略同步和锁等待的时间

  • 2、针对常量池的优化

当两个string对象拥有相同的值时,他们引用常量池中的同一个拷贝

package XingNeng;

/**
 * Created by haicheng.lhc on 21/05/2017.
 *
 * @author haicheng.lhc
 * @date 2017/05/21
 */
public class StringTest {
    public static void main(String[] args) {
        String str1 = "abc";
        String str2 = "abc";
        String str3 = new String("abc");
        System.out.println(str1 == str2);
        System.out.println(str1 == str3);
        System.out.println(str1 == str2.intern());

    }
}

输出结果为:

Java程序优化_第1张图片
  • 3、类的final定义

提供系统的效率

核心数据结构

List

Java程序优化_第2张图片
数据结构名 实现 插入 删除 遍历查找 是否线程安全 备注
ArrayList 数组 增加到尾端性能好,到任意位置性能差 性能差 性能好 不安全 当需要扩容的时候会影响性能
LinkedList 双向循环链表 增加到任意位置有优势 性能好 性能差 每次需要新建Entry

Map

Java程序优化_第3张图片

Set

Java程序优化_第4张图片

使用NIO提升系统性能

引用类型

可以参考这篇文章:强引用、弱引用、软引用、虚引用

有助于改善性能的技巧

Java程序优化_第5张图片

你可能感兴趣的:(Java程序优化)