java装箱与拆箱
/**
* ==号是比较两个基本类型是否相等,或者比较两个对象引用是否相同
*/
public class T {
public static void main(String[] args) {
Integer i1 = 128;
Integer i2 = 128;
int i3 = 128;
int i4 = 128;
Integer i5 = 127;
Integer i6 = 127;
Long long1 = 128L;
Long long2 = 128L;
long long3 = 128L;
long long4 = 128L;
long long5 = -128L;
long long6 = -128L;
//-128 ~ 127之间数值装箱时会共享内存副本, 超过这个范围,则不会共享引用,即对象地址将不同
System.out.println(i1 == i2); //实质是比较两个不同引用 false
System.out.println(i5 == i6); //实质是比较两个相同(共享)引用true
System.out.println(i1 == i3); //先将i1拆箱,然后比较基本类型 true
System.out.println(i1.equals(i4)); //先将i4装箱,然后比较基本类型 true
System.out.println(long1 == long2);//两个引用不同 false
System.out.println(long5 == long6);//共用副本 true
System.out.println(long1 == long3);//long1先拆箱, 在比较 true
System.out.println(long2.equals(long4));//long4先装箱, 再equals, true
}
}
相关文档:
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......
import java.io.*;
class abc
{
public static void main(String [] args)
{
int a=0;
int b=0;
int c=0;
&n ......
以下对BIG-ENDIAN、LITTLE-ENDIAN的解释正好弄反了!!!!
BIG-ENDIAN(大字节序、高字节序)
LITTLE-ENDIAN(小字节序、低字节序)
主机字节序
网络字节顺序
JAVA字节序
1.BIG-ENDIAN、LITTLE-ENDIAN跟多字节类型的数据有关的比如int,short,long型,而对单字节数据byte却没有影响。BIG- ......
步骤一:导入EMF的插件到相关的目录下(plugins、features)
步骤二:新建EMF Project。<!--more-->
步骤三:输入生成工程的名称
第四步:导入XSD,并且修改相应的名称:
第五步:点击finish,配置ecore相关的属性,点击保存
第六步:配置genmodel的相关属性
选中它的根目录:
我们需 ......