1. 首页
  2. 编程语言
  3. Java
  4. Java基础知识精选 你答对了几道?

Java基础知识精选 你答对了几道?

上传者: 2021-05-24 18:26:04上传 PDF文件 92.27 KB 热度 7次

IntegerCache方法有明确的注释,缓存范围,如何修改等等。按照==的语法来看, 首先s1、s2、s3是三个不同的对象,常理来说,输出都会是false。然而程序的运行结果确实true、false。我们知道一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,而堆内存中则存放new 出来的对象和数组。然而除此之外还有一块区域叫做常量池。像我们通常想String s1 = "abc";这样申明的字符串对象,其值就是存储在常量池中。当我们创建引用String s2 = "abc" 的时候,Java底层会优先在常量池中查找是否存在"abc",如果存在则让s2指向这个值,不会重新创建,如果常量池中没有则创建并添加的池中。还是直接公布答案吧,true,false。但是我们这里的Integer是new出来的,并不是用的缓存,所以结果是false。

下载地址
用户评论