关于java的实习生

yag*_*nya 1 java string-interning

我的问题是,如果实习生正在使用字符串和字符串有一个SPC(字符串池常量)为它和实习生概念也使用整数,所以是否有任何整数池常量?如果不是那么它的工作原理?

class InternExample  
{  
 public void print()  
{    
 Integer i=10;  
 Integer j=10;  
 String c="a";  
  String s="a";  
 System.out.println(i==j);// prints true  
 System.out.println(c==s);//prints true  
}  
 public static void main(String args[])  
{  
  new InternExample().print();  
}  
}
Run Code Online (Sandbox Code Playgroud)

Pri*_*ley 7

添加到@Joachim Sauer的答案,我们可以更改上限缓存值.

一些选项是

  1. -Djava.lang.Integer.IntegerCache.high =值
  2. -XX:AutoBoxCacheMax = value
  3. -XX:+ AggressiveOpts

链接:Java专家


Joa*_*uer 5

自动装箱使用常见值的缓存,如第5.1.7节JLS的拳击转换中所定义:

如果该值p被装箱是true,false,一byte,一个char范围内的\u0000\u007f,或intshort-128和127之间数字,然后让r1r2是任何两个装箱转换的结果p.情况总是如此r1 == r2.

但请注意,这称为"实习".该术语仅用于对String文字执行的操作以及可以使用显式执行的操作String.intern().