《effective java》中文第2版 note

Posted lynn-grow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《effective java》中文第2版 note相关的知识,希望对你有一定的参考价值。

第15条[66]:

  为不可变类提供静态工厂, eg : Integer/BigInteger 使用了静态工厂缓存了一些常用的实例, 通常 Integer -128 ~ +127.  BigInteger -16 ~ +16。

通过更改JVM参数可以改变Integer缓存的范围。在Idea中打开Run/Debug Configurations

技术图片

在下入红框处输入 -XX:AutoBoxCacheMax=size

注:size为初始化Integer缓存大小, 如 : -XX:AutoBoxCacheMax=200

技术图片

 

测试demo

package unit.singleton;

import lombok.extern.slf4j.Slf4j;
/**
 * Description: test
 *
 * @author: lvyichao
 * Version: 1.0
 * Create Date Time: 2019-04-02 21:29.
 * Update Date Time:
 */
@Slf4j
public class Singleton{

    public static void main(String[] args) {
        Integer num1 = Integer.valueOf(1);
        Integer num2 = Integer.valueOf(1);
        if(num1 == num2){
            log.info("num1 == num2");
        }else {
            log.info("num1 != num2");
        }

        Integer num3 = Integer.valueOf(128);
        Integer num4 = Integer.valueOf(128);
        if(num3 == num4){
            log.info("num3 == num4");
        }else {
            log.info("num3 != num4");
        }

        Integer num5 = Integer.valueOf(201);
        Integer num6 = Integer.valueOf(201);
        if(num5 == num6){
            log.info("num5 == num6");
        }else {
            log.info("num5 != num6");
        }
    }
}

 

测试结果, 更改Integer缓存大小成功

技术图片

 

以上是关于《effective java》中文第2版 note的主要内容,如果未能解决你的问题,请参考以下文章

《effective java》中文第2版 note

Effective Java中文版 第2版pdf

《Effective Java 中文版 第2版》学习笔记 第6条:消除过期的对象引用

Effective Java中文版(第2版) PDF分享下载

《Effective Java 中文版 第2版》学习笔记 第7条:避免使用终结方法

《Effective Java 中文版 第2版》学习笔记 第5条:避免创建不必要的对象