篇章二 基础——包装类
此篇章为 数据结构 专栏 篇章二 数据结构——前置知识(二)关于包装类的补充
1. Java包装类的缓冲机制(补充)
其实在 篇章二 数据结构——前置知识(二)的面试题已经涉及到这部分的内容,在此处打算做出一些补充,比如 构造器方法 和 自动装箱 对缓冲机制的影响。
1.1 讲解补充
前提:发生在自动装箱的过程中(基本类型 ->包装类型)
创建一个包装类对象有两种方法
(1)构造器方法(就是new出来)
(2)自动装箱(就是编译器自动调用包装类的valueOf()方法)。(那篇文章的面试题很显然只涉及到这部分)
两种方法的区别:
构造器方法:不论值的大小,返回的将都会是一个新对象;
自动装箱会先经过判断,再决定返回的是一个新对象还是常量池中已存在的对象。
机制:(上篇已经用一句话概括,如果下面不好记可以看看上篇面试题部分的总结)
当通过自动装箱机制创建包装类对象时,首先会判断数值是否在-128~127的范围内,如果满足条件就会从缓存(常量池)中寻找指定数值,若找到缓存,则不会创建新对象,只是指向指定数值对应的包装类对象,否则,创建新对象。