package com.example.main;
/*
*
* 基本类型:int,double,float,long,boolean,char,btye,shor
* 基本类型包装类:Integer,Double,Float,Long,Boolean,Char,Byte,Short
* 两者有什么差别,包装类是类,是对象,而基本类型是有值的“变量”,再细化一点,就是包装类的实例(对象)创建在堆上,
* 而基本类型创建在栈上,这是JAVA为了程序的速度考虑做出的优化,
* 那么既然是创建在栈上,所以基本类型都有大小的规定(每种基本类型所占的字节是一定的)
*
*/
public class Main {
public static void main(String[] args) {
System.out.println("java 自动装箱和拆箱");
/*
* 实际上,程序运行时,系统为我们执行了下面一条语句: Integer number = new Integer(50);
*/
Integer i = 50;
System.out.println("java 实现自动装箱" + i);
/*
* 实际上,程序运行时,系统为我们执行了下面一条语句: int p = i.intValue();
*/
int p = i;
System.out.println("java 实现自动拆箱" + p);
// 当Int值在-128~127之间时,java使用同一个对象处理,也就是说他会使用同一个对象对其进行处理
Integer m = 100;
Integer n = 100;
/*
* " == " 比较的是哈希码的值,也就是比较 hashCode()
* 方法的返回值,这个值是唯一的,在底层它是用来确定对象在堆内存上的存储位置。
* " == " 也可以用来做基本数据类型的比较。
* equals 方法大家都知道,它是用来比较两个对象的内容是否一样。
*/
System.out.println("m == n " + (m == n));
System.out.println("m equals (n) " + m.equals(n));
// 当int值超过128时,java就会使用不同的对象处理
Integer r = 128;
Integer s = 128;
System.out.println("r == s " + (r == s));
System.out.println("r equals (s) " + r.equals(s));
}
}
java自动装箱和拆箱
最新推荐文章于 2024-06-04 12:48:27 发布