==在Integer中和String类中的使用问题
来源:互联网 发布:淘宝直播审核条件 编辑:程序博客网 时间:2024/05/21 14:56
双等于号在Integer中和String类中的使用问题
/**
* Java中new出来的东西存放在heap中,==是判断两个对象的引用是否相同
* 局部变量存放在Stack中,Integer t1等用于存放new出来的东西的引用地址
*/
public static void testInteger(){
System.out.println("======双等于号在Integer中的使用========");
Integer t1 = new Integer(5);
Integer t2 = new Integer(5);
System.out.println(t1==t2);
Integer t3 = 5;//Integer对象中IntegerCache缓存对象,缓存了-128-127的数
Integer t4 = 5;//从缓存中拿到同一个
System.out.println(t3==t4);
Integer t5 = 128;//超出了IntegerCache缓存的界限,需要自动装包成新的对象
Integer t6 = 128;
System.out.println(t5==t6);
System.out.println("=============比较字符串=========");
//String中有个String pool池对象:如果字符串已经存在,则直接拿出来指向stack
//不存在,则创建一个新的String对象
String s1 = "hello";
String s2 = "hello";//已经存在,直接拿取
System.out.println(s1==s2);
String s3 = new String("hello");//new出来的对象,分配新的内存引用
String s4 = new String("hello");
System.out.println(s3==s4);
String s5 = "hello";//创建一个
String s6 = new String("hello");//创建另外一个
System.out.println(s5==s6);
}
* Java中new出来的东西存放在heap中,==是判断两个对象的引用是否相同
* 局部变量存放在Stack中,Integer t1等用于存放new出来的东西的引用地址
*/
public static void testInteger(){
System.out.println("======双等于号在Integer中的使用========");
Integer t1 = new Integer(5);
Integer t2 = new Integer(5);
System.out.println(t1==t2);
Integer t3 = 5;//Integer对象中IntegerCache缓存对象,缓存了-128-127的数
Integer t4 = 5;//从缓存中拿到同一个
System.out.println(t3==t4);
Integer t5 = 128;//超出了IntegerCache缓存的界限,需要自动装包成新的对象
Integer t6 = 128;
System.out.println(t5==t6);
System.out.println("=============比较字符串=========");
//String中有个String pool池对象:如果字符串已经存在,则直接拿出来指向stack
//不存在,则创建一个新的String对象
String s1 = "hello";
String s2 = "hello";//已经存在,直接拿取
System.out.println(s1==s2);
String s3 = new String("hello");//new出来的对象,分配新的内存引用
String s4 = new String("hello");
System.out.println(s3==s4);
String s5 = "hello";//创建一个
String s6 = new String("hello");//创建另外一个
System.out.println(s5==s6);
}
Integer类中有一个Integer缓存对象IntegerCache class
private static class IntegerCache {
static final int low = -128;
static final int high;
static final Integer cache[];
static {
// high value may be configured by property
int h = 127;
String integerCacheHighPropValue =
sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
if (integerCacheHighPropValue != null) {
int i = parseInt(integerCacheHighPropValue);
i = Math.max(i, 127);
// Maximum array size is Integer.MAX_VALUE
h = Math.min(i, Integer.MAX_VALUE - (-low));
}
high = h;
cache = new Integer[(high - low) + 1];
int j = low;
for(int k = 0; k < cache.length; k++)
cache[k] = new Integer(j++);
}
private IntegerCache() {}
}
static final int low = -128;
static final int high;
static final Integer cache[];
static {
// high value may be configured by property
int h = 127;
String integerCacheHighPropValue =
sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
if (integerCacheHighPropValue != null) {
int i = parseInt(integerCacheHighPropValue);
i = Math.max(i, 127);
// Maximum array size is Integer.MAX_VALUE
h = Math.min(i, Integer.MAX_VALUE - (-low));
}
high = h;
cache = new Integer[(high - low) + 1];
int j = low;
for(int k = 0; k < cache.length; k++)
cache[k] = new Integer(j++);
}
private IntegerCache() {}
}
0 0
- ==在Integer中和String类中的使用问题
- ==在对象、基本类型、Integer类中的使用
- 最近在使用string类时出现了一个问题,string *p=(string *)malloc(sizeof(string)*10);
- String 和Integer中 == 和 equals的使用
- Integer使用==判断的问题
- java学习中的小问题(Integer、String)
- Java中的String和Integer
- ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
- ArrayList<Integer> list = new ArrayList<Integer>();在这个泛型为 Integer 的 ArrayList 中存放一个 String 类型的对象。
- String to Integer (atoi)问题
- 关于int和Integer在开发中的问题
- String类和Integer类中的方法小结
- String、Integer、StringBuffer和API类中的常用方法
- 解析String与Integer的==
- Integer String 的equals == 区别
- java数组中元素为String和Integer时的==判断问题
- Java学习笔记2:Java中Integer与String == 的使用
- 在JSP中使用Integer.parseInt()报错的问题
- WebSocket实时通讯实践
- LeetCode -- Remove Nth Node From End of List
- maven环境快速搭建(如何在pom.xml导入一个jar包)(导入ojdbc错误的原因)
- 获取类字节码文件 .class 文件的3种方法
- 一年奋斗与惨淡收场
- ==在Integer中和String类中的使用问题
- LeetCode -- Reverse Integer
- Isomorphic Strings 两个字符串的同构 map操作
- LeetCode -- Reverse Linked List
- Gradle小计
- test5.7
- 关于SVN-Access to '/svn/Vienna.IOSapp/!svn/me' forbidden的问题解决
- C++创建文件夹
- 组成原理作业