前端开发培训机构哪家好,长沙网站seo服务,短视频营销推广方式,深圳龙岗网络1.基本类型的存储Java 8种基本类型都是存储在堆栈中#xff0c;例#xff1a;int i 1;String str hello world;也是存储在堆栈中。new基本类型的包装器类型和new String()都是存储在堆内存中。例Integer i new Integer(1);String str new String(hello…1.基本类型的存储Java 8种基本类型都是存储在堆栈中例int i 1;String str hello world;也是存储在堆栈中。new基本类型的包装器类型和new String()都是存储在堆内存中。例Integer i new Integer(1);String str new String(hello world);2.和equels()比较的含义1.是比较对象的内存地址基本类型就是比较值2.java对象的equals()方法都是继承Object.equals(Object o)方法的。比较的内容其实就是使用了“”比较对象内存地址。public boolean equals(Object obj) {return (this obj);}java8种基本类型包装器类和String类都重写了equals()方法,先比较类型在比较值例如Long.equals(Object obj)public boolean equals(Object obj) {if (obj instanceof Long) {return value ((Long)obj).longValue();}return false;}3.实例和equels()比较int int3 3;Integer integer3 new Integer(3);Integer integer3_2 new Integer(3);Integer integer3_3 3;Integer integer3_4 3;Integer integer321 321;Integer integer321_2 321;int int321 321;int int321_2 321;Long long3 3l;System.out.println(integer3integer3_2); //false #1System.out.println(integer3_3integer3_4); //true #2System.out.println(integer3int3); //true #3System.out.println(integer3_3.equals(integer3_4)); //true #4System.out.println(integer321integer321_2); //false #5System.out.println(int321int321_2); //true #6System.out.println(long3int3); //true #7System.out.println(long3.equals(int3)); //false #8#1 new两个Integer对象分配内存在堆中两个地址块不同#2 Integer integer3_3 3;java编译后的代码为Integer integer3_3 Integer.valueOf(3);查看java Integer.valueOf(int)源码public static Integer valueOf(int i) {assert IntegerCache.high 127;if (i IntegerCache.low i IntegerCache.high)return IntegerCache.cache[i (-IntegerCache.low)];return new Integer(i);}原来-128int127的值java栈中有缓存都指向同一个地址不在这个范围内的int值都是new一个新的Integer,所以#2为true,#5为false#3 基础类型和包装类运算时包装类会拆包所以就是两个值运算#7 btye,short,int,long运算时都会向上转型到同一类型运算#8 equals()比较是先比较类型在比较值类型不一样所以为false分享到 2014-06-14 21:28浏览 2176评论