今天遇到几道变态题:
1.true or false?
- String a = "ab";
-
String b = "a" + "b";
- System.out.println(a==b);
String a = "ab";
String b = "a" + "b";
System.out.println(a==b);
2.true or false?
- String a = "abc";
-
String b="ab";
-
String c=b+"c";
- System.out.println(a==c);
String a = "abc";
String b="ab";
String c=b+"c";
System.out.println(a==c);
3.true or false?
- String a = "ab1";
-
String b = "ab"+1;
- System.out.println(a==b);
String a = "ab1";
String b = "ab"+1;
System.out.println(a==b);
4.ture or false?
- String a = "ab1";
-
String b = "ab"+1;
-
String c = b + "";
- System.out.println(a==c);
String a = "ab1";
String b = "ab"+1;
String c = b + "";
System.out.println(a==c);
5.true or false? false
- String a = new String("abc");
-
String b = "abc";
- System.out.println(a==b);
String a = new String("abc");
String b = "abc";
System.out.println(a==b);
6.true or false? true
- String a = "abc";
-
String b = "abc";
- System.out.println(a==b);
String包含几种不同的创建方式,并且不同的创建方式都会将String存到入不同的区域内,例如:String池 或者 java堆中。其中有一些原理,只要懂这些原理。以上的问题都不是问题。
原理1:当使用任何方式来创建一个字符串对象s时,Java运行时(运行中JVM)会拿着这个X在String池中找是否存在内容相同的字符串对象,如果不存在,则在池中创建一个字符串s,否则,不在池中添加。
原理2:Java中,只要使用new关键字来创建对象,则一定会(在堆区或栈区)创建一个新的对象。
原理3:使用直接指定或者使用纯字符串串联来创建String对象,则仅仅会检查维护String池中的字符串,池中没有就在池中创建一个,有则罢了!但绝不会在堆栈区再去创建该String对象。
原理4:使用包含变量的表达式来创建String对象,则不仅会检查维护String池,而且还会在堆栈区创建一个String对象。
分享到:
相关推荐
a面试题1(主要看这文档)
根据给定的信息,我们可以整理出一系列与C++相关的面试题及知识点解析,下面将逐一进行详细阐述。 ### C++ 面试题知识点解析 #### 1. 预处理器指令 预处理器是编译器执行的第一步,在实际编译之前处理源代码。预...
模拟IC面试题 analog面试题.doc 在这个模拟IC面试题中,我们可以总结出以下几个重要的知识点: 1. Op-Amp 结构比较 在这个问题中,我们需要比较三种不同的 Op-Amp 结构:2-stage op-amp (active load, class-A ...
"C# Winform 面试题详解" C# Winform 面试题详解 1. foreach 遍历访问的对象需要实现 IEnumerable 接口或声明 GetEnumerator 方法的类型 在 C# 中,foreach 语句可以遍历实现了 IEnumerable 接口或声明了 ...
在Objective-C领域,面试题往往涵盖C语言基础、Objective-C语言特性以及iOS相关知识。本次整理的“Objective-C经典面试题”中的知识点,主要针对C语言中的指针概念、Objective-C语言的数组和指针操作、宏定义及使用...
C 语言程序设计面试题 本资源提供了 C 语言程序设计面试题,涵盖了预处理指令、宏定义、预处理器、嵌入式系统、死循环、数据声明等多个方面的知识点。通过这些面试题,可以考察应试者的 C 语言基础知识、编程能力和...
Socket 编程面试题 TCP 和 UDP 的区别: 1. 连接方式:TCP 提供面向连接的传输,通信前需要建立连接(三次握手机制);UDP 提供无连接的传输,通信前不需要建立连接。 2. 可靠性:TCP 提供可靠的传输(有序、无...
Android Framework 面试题集学习指南 一、Android 应用性能分析 Android 应用性能分析是指对 Android 应用程序的性能进行测量、评估和优化的过程。主要关注两个方面:响应速度和 UI 刷新速度。可以使用 Android ...
SQL面试题详解 本资源旨在总结和详细解释SQL面试题中的各种问题和解决方案,并对每个问题进行了详细的解释和分析。 一、查询每门课都大于80分的学生姓名 问题:使用一条SQL语句查询出每门课都大于80分的学生姓名...
1. C++基础知识面试题的分析 在文件中提到的第一个面试题,需要分析一个C++程序,并预测其运行结果。此题涉及到C++的构造函数、虚函数和多态的原理。给出的程序示例中,存在一个多态的例子,其中基类A定义了一个虚...
根据提供的文件内容,以下是详细的知识点总结: 1. 内存回收说明: - 在Android中,程序员不能直接控制内存的释放,内存回收是由垃圾回收器...在实际应用和面试准备中,还需针对完整的问题和知识点进行复习和理解。
单片机面试题大公司的一些面试题 本资源摘要信息涵盖了单片机系统的主要组成模块、数据流流向和控制流流向、单片机应用系统的设计原则、8031与2716的连线图、8051设计键盘加驱动数码管的原理图、PCI总线的含义和...
【Flex面试题】Flex面试题主要涵盖Flex的基础概念、开发框架、MVC模式的应用、内存管理、垃圾回收机制、前端性能优化以及与后端通信等多个方面。以下是对这些知识点的详细解析: 1. AS2与AS3的区别: AS2...
### 深圳各公司Java面试题精要解析 #### 中联宏达 - Struts面试题解析 **1. 如何定义FormBean?** FormBean是Struts框架中用于封装表单数据的类,通常继承自`org.apache.struts.action.ActionForm`。定义FormBean...
### BAT各大互联网面试题知识点详解 #### 一、设置DOM元素CSS样式的三种方式 1. **外部样式表**:通过`<link>`标签引入一个外部的CSS文件,这种方式适用于多个页面共享相同的样式规则,有利于代码复用和维护。 ``...
"java中级面试题(自己汇总)" 本文总结了Java中级面试题,涵盖了集合、HashMap、HashSet、HashTable、ConcurrentHashMap、红黑树、Java 8对HashMap的优化、LinkedHashMap、TreeMap、IdentityHashMap等知识点。 ...