关于Java自动拆箱装箱中的缓存问题
package cn.zhang.test;
/**
* 测试自动装箱拆箱
* 自动装箱:基本类型自动转为包装类对象
* 自动拆箱:包装类对象自动转化为基本数据类型
*
*
* /*缓存问题*/
/*缓存[-128,127]之间的数字,也就是一个byte,实际上是系统在初始的时候创建了一个范围在[-128,127]之间的一个数组
* 当我们调用valueOf的时候,首先判断该数字是否在[-128,127]之间,如果在,则在数组中拿出该对象,侧面印证了数组
* 本身就是对象,如果不在,则创建一个新的Integer对象
*
* @author 张涛
*
*/
public class TestAutoBox {
public static void main(String[] args) {
Integer a = 10; //自动装箱 编译器会自动改成:Integer a = Integer.valueOf(10); int b = a; //自动拆箱 编译器会自动改成:int b = a.intValue(); // int c = a.intValue();
// System.out.println(b);
// System.out.println(c); // Integer c = null;
// int d = c; //空指针错误,因为调用了c.intValue();这个方法 /*缓存问题*/
/*缓存[-128,127]之间的数字,也就是一个byte,实际上是系统在初始的时候创建了一个范围在[-128,127]之间的一个数组
* 当我们调用valueOf的时候,首先判断该数字是否在[-128,127]之间,如果在,则在数组中拿出该对象,侧面印证了数组
* 本身就是对象,如果不在,则创建一个新的Integer对象
* */
Integer e = -128;
Integer f = Integer.valueOf(-128);
System.out.println(e == f);//true
System.out.println(e.equals(f));//true Integer g = 1234;
Integer h = Integer.valueOf(1234);
System.out.println(g == h);//false
System.out.println(g.equals(h));//true
}
}
关于Java自动拆箱装箱中的缓存问题的更多相关文章
- Java 自动拆箱 装箱 包装类的缓存问题--结合源码分析
都0202 了 java 1.8 已经是主流 自动装箱 .拆箱已经很普遍使用了,那么有时候是不是会遇到坑呢? 我们先来看一段代码: public class TestWraperClass { pub ...
- Java 从Character和char的区别来学习自动拆箱装箱
本文结构 1.Character和char 的区别: 2.自动拆箱装箱 1.Character和char 的区别: Character是类,char基本数据类型. 在java中有三个类负责对字符的操作 ...
- Java中的自动拆箱装箱(Autoboxing&Unboxing)
一.基本类型打包器 1.基本类型:long.int.double.float.boolean 2.类类型:Long.Integer.Double.Float.Boolean 区别:基本类型效率更高,类 ...
- 享元模式(FlyWeight Pattern)及其在java自动拆箱、自动装箱中的运用
本文主要从三个方面着手,第一:简要介绍享元模式.第二:享元模式在基本类型封装类中的运用以Integer为例进行阐述.第三:根据第一.第二的介绍,进而推出java是如何实现自动拆箱与装箱的. 第一:简要 ...
- java 自动拆箱 自动装箱
自动装箱的定义就是 基本数据类型赋值给包装类型, 拆箱则相反. Integer integer = 122; // 自动装箱 int num = integer; //自动拆箱 想看一下源码是怎么 ...
- JAVA高级特性--自动拆箱-装箱,枚举类型
基本数据类型转换为引用类型对象 一个自动装箱的例子 Integer i=10; 相当于 Integer i=new Integer(10); 一个自动拆箱的例子 Integer m=10; int n ...
- JavaWeb_静态导入、自动拆箱/装箱
静态导入用于简化程序对类静态属性和方法的调用. 语法 import static 包名.类名.静态属性|静态方法|* 例如 import static java.lang.System.out imp ...
- java 自动拆箱
Integer a0 = ; Integer a1 = ; Integer b0 = ; Integer b1 = ; ; System.out.println(a0 == a1); >> ...
- int和Integer的自动拆箱/装箱相关问题
java中为没一种基本类型都提供相应的包装类型. byte,short,char,int,long,float,double和boolean Byte,Short,Character,Integer, ...
随机推荐
- postman测试带有json数据格式的字段
测试六个字段 普通字段: ModelCode 普通字段: MmodelCode 普通字段: ModelTagKey 普通字段: ModelTagValue 普通字段: ModelTagType jso ...
- Flink Task 并行度
并行的数据流 Flink程序由多个任务(转换/运算符,数据源和接收器)组成,Flink中的程序本质上是并行和分布式的. 在执行期间,流具有一个或多个流分区,并且每个operator具有一个或多个ope ...
- C# Process类详解
C# Process类详解 Process[] processes = Process.GetProcessesByName(current.ProcessName); 根据进程名字找到所有进程,返回 ...
- HDU - 6025 Coprime Sequence(前缀gcd+后缀gcd)
题意:去除数列中的一个数字,使去除后数列中所有数字的gcd尽可能大. 分析:这个题所谓的Coprime Sequence,就是个例子而已嘛,题目中没有任何语句说明给定的数列所有数字gcd一定为1→_→ ...
- python里的反射(自学习)
在做程序开发中,我们常常会遇到这样的需求:需要执行对象里的某个方法,或需要调用对象中的某个变量,但是由于种种原因我们无法确定这个方法或变量是否存在,这是我们需要用一个特殊的方法或机制要访问和操作这个未 ...
- BZOJ 3876 [Ahoi2014&Jsoi2014]支线剧情
题解: 带下界的费用流 对于x->y边权为z Addedge(x,t,1,0) Addedge(s,y,1,z) Addedge(x,y,inf,0) 然后对每个点Addedge(i,1,inf ...
- 【STM32H7教程】第48章 STM32H7的FMC总线应用之是32路高速IO扩展
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第48章 STM32H7的FMC总线应用之是32路 ...
- 剑指offer_2.1_Day_5
输入一个链表,按链表从尾到头的顺序返回一个ArrayList. import java.util.ArrayList; public class Solution { public ArrayList ...
- Python爬虫之解析网页
常用的类库为lxml, BeautifulSoup, re(正则) 以获取豆瓣电影正在热映的电影名为例,url='https://movie.douban.com/cinema/nowplaying/ ...
- SQL基础之JDBC、连接池
JDBC JDBC四个核心对象 这几个类都是在java.sql包中 DriverManager(类): 数据库驱动管理类.这个类的作用:1)注册驱动; 2)创建java代码和数据库之间的连接,即获取C ...