Wapper类的拆包与自动装配与一个类的占用空间
来源:互联网 发布:线切割锥度编程实例 编辑:程序博客网 时间:2024/05/17 22:23
java中数据类型一般分为基本类型,引用类型(数组属于引用类型)。基本类型是为了方便JVM快速的进行运算,是存放在JVM的栈之中。引用类型也存在栈中,但是引用的对象是存放在堆上面。包装类可以将基本类型当做类来处理。Integer,Boolean,Double,Character,Float,Byte,Short,Long,Void为对应基本类型的包装类。
Integer i1 = 127; Integer i2 = 127; System.out.println(i1 == i2); Integer i3 = 128; Integer i4 = 128; System.out.println(i3 == i4);
运行结果为:
true
false
第一个很好理解,int类型自动装配成Integer,但是第二个为什么会输出false呢。因为在这里完成了一个new的操作。==是比较两个对象引用是否为一个对象。但是这里为什么要new一个Integer对象呢。因为在基本类型有一个字节的缓存,在这个范围内的值是存放在常量池(存放在数据运行空间的PermGen里)如果这个数据是在-128~127之间,char对象为0~127。,直接从常量池里取出即可。否则new一个对象。
Integer i1 = 128;//等价于Integer i2 = new Integer(128);
基本类型放在栈上面主要是为了提高运行速度,因为基本类型的大小是固定的。
一个对象的引用为4byte,一个空对象在堆上的大小为8byte
例如:
class NewObject //8{int count; //4boolean flag; //1Object ob; //4}
所占用空间为:8 + 4 + 1 + 4 = 17。又因为jvm的存储都是8byte的整数倍,因此占用空间为24byte。
0 0
- Wapper类的拆包与自动装配与一个类的占用空间
- 文件大小与占用空间的区别
- 文件系统占用空间与使用空间不一致的解决
- c++中一个类所占用的空间
- C++类的占用空间
- C++:类占用的空间
- 类占用空间的计算
- 整合Struts2与Spring以及spring的自动装配
- spring quartz 与自动装配 产生的问题
- struts2与Spring集成的自动装配策略
- 整合Struts2与Spring以及spring的自动装配
- spring的自动装配Bean与自动检测Bean
- Spring依赖配置与自动装配的先后顺序问题
- 模拟Spring 的bean工厂模式与自动装配
- spring自动装配与spring_bean之间的关系(二)
- 整合Struts2与Spring以及spring的自动装配
- spring的自动装配Bean与自动检测Bean
- spring注解 -----最简单的注解与自动装配例子
- Android Activity启动模式
- maven 学习
- 动画 Core Animation 直接修改视图属性
- 南邮 OJ 1325 子集树问题
- 小米未到“存亡”关头,但潜在危机不容忽视
- Wapper类的拆包与自动装配与一个类的占用空间
- I帧转图片(BMP、PPM、JPG)
- android 3G移植
- 华为软件编程规范和范例 3 —— 变量、结构
- HSSFWorkBooK用法
- 南邮 OJ 1340 逆矩阵问题
- java集合(泛型向(上下)限定
- 2. ibatis是什么
- JS学习笔记