当前位置:网站首页 > Java教程 > 正文

堆栈教程java



测试下面这段代码:

public void test(int x) { Stack<Integer> s1 = new Stack<Integer>(); Stack<Integer> s2 = new Stack<Integer>(); s1.push(x); s2.push(x); int p1 = s1.peek(); int p2 = s2.peek(); System.out.println(p1==p2); System.out.println(s1.peek() == s2.peek()); }

如果x在[-128, 127],那么两次都会输出true;如果不是在这个范围,会输出true和false。

原因在于autobox,对于某些值,s1.push(x)会转化为s1.push(Integer.valueOf(x)),然后会利用cache的值,导致实例复用。翻译渣,请参考原解释:

https://stackoverflow.com/questions//java-stack-peek-behavior

  • 上一篇: java教程入门基础
  • 下一篇: 疯狂java教程51
  • 版权声明


    相关文章:

  • java教程入门基础2024-11-29 23:26:03
  • 廖雪峰java教程破解2024-11-29 23:26:03
  • java面试详细教程2024-11-29 23:26:03
  • java邮件群发教程2024-11-29 23:26:03
  • 菜鸟教程java在线2024-11-29 23:26:03
  • 疯狂java教程512024-11-29 23:26:03
  • 外国java 教程2024-11-29 23:26:03
  • java教程第五章2024-11-29 23:26:03
  • java案例实战教程2024-11-29 23:26:03
  • java缓存使用教程2024-11-29 23:26:03