`

只有查看class才能找到答案的面试题

 
阅读更多
  String a = null + "a";
  String aa = null + "a";
  System.out.println(a == aa);

 

输出false
 

  String a = "null" + "a";
  String aa = "null" + "a";
  System.out.println(a == aa);

 

输出true

 

我当时答的都为true,因为我觉得结果都为字符串a,所以应该都在常量池里吧。但实际结果却让我吃惊,最后我用了一下午的时间终于找到了答案:

 

原因:(经查看相应的CLASS文件(也可以看反编译),得出以下结论)

第一个:实现原理为StringBuilder.append.toString,即产生了新的对象
第二个:编译器直接搞为String

 

启发:

由其他类型转换为字符串类型可以采用以下方法:

1.调用String.valueOf(目标对象)

2.目标对象+""

经过我本地测试发现第二种要比第一种速度快,(如果目标对象是基本数据类型的时候,会快很多)。原因我就不多说了吧。第二种编译器已经做了类型转换了,执行显然快了。

分享到:
评论

相关推荐

    Java面试题以及答案整理.pdf

    为了在Java面试中脱颖而出,了解和掌握常见的面试题及答案至关重要。以下是一些关键知识点的详细解析: 1. **super()与 this()的区别** `super()`用于调用父类的构造器,确保子类实例化时父类的初始化;`this()`则...

    html5css3面试题及答案,前端面试题及答案-CSS篇.docx

    HTML5/CSS3 面试题及答案 - CSS 篇 本文档提供了 HTML5/CSS3 面试题及答案,涵盖了 CSS 的新特性、选择符、盒模型、浮动、垂直居中等多个方面。 CSS3 的新特性 * 实现圆角(border-radius) * 阴影(box-shadow)...

    Java17道面试题及答案

    Java 面试题及答案 Java 是一种广泛使用的编程语言,Java 面试中常见的问题有很多,今天我们来讨论 JDK 和 JRE 的区别、==和 equals 的区别等问题。 JDK 和 JRE 的区别 JDK(Java Development Kit)是 Java 开发...

    iOS面试题及答案

    本文总结了 iOS 面试题及答案,涵盖了 OC 语言的基本特点、#import 与 @class 的区别、类目优缺点、内存管理的基本原则、ARC 技术、垃圾回收机制、深浅复制、堆栈区差别、用户自定义对象的拷贝、定义属性时的赋值...

    C#面试题及答案

    在C#编程语言中,面试题常常涉及到基础概念和高级特性。以下是对这些知识点的详细解释: 1. **变量初始化** - `string str;` 定义了一个字符串变量str,但未初始化。如果它是局部变量,编译器会忽略它,不分配内存...

    模拟IC面试题analog面试题.doc

    模拟IC面试题 analog面试题.doc 在这个模拟IC面试题中,我们可以总结出以下几个重要的知识点: 1. Op-Amp 结构比较 在这个问题中,我们需要比较三种不同的 Op-Amp 结构:2-stage op-amp (active load, class-A ...

    经典的CSS面试题(含答案)

    在CSS(层叠样式表)领域,面试题通常涵盖了各种概念、技巧和最佳实践,旨在评估候选人的基础知识、问题解决能力和实践经验。以下是一些经典的CSS面试题及其详细解答: 1. **什么是CSS?** CSS(Cascading Style ...

    C#.Asp.Net数据库面试题及答案

    "C#.Asp.Net数据库面试题及答案" 本文档总结了C#、Asp.Net和数据库相关的知识点,涵盖了面向对象编程、数据访问、线程处理、垃圾回收等多个方面。 1. 继承 ListView 类 在面试题31中,要求开发一个继承System....

    C#经典面试题及答案

    委托和事件,遍历,常用排序算法,结构体(Struct) 和 类(Class),递归算法 ,给XML文件中已知的结点添加属性等等。 将比较常见的C#面试题分布出来供有需求的朋友参考

    C#.NET面试题基础篇答案

    C#.NET面试题基础篇答案 本文将对C#.NET面试题基础篇答案进行详细解释,涉及栈和堆的区别、委托、静态构造函数、CTS、CLS、CLR、值类型和引用类型、类和结构的区别、新关键字的作用、可空类型、值传递和引用传递、...

    C++面试题集.pdf

    C++面试题集.pdf 本文档提供了一系列C++面试题,涵盖了内存拷贝、双向链表、费波那其数列、类的构造函数、析构函数和赋值函数、循环、单向链表类的实现、二叉树实现等多个方面的知识点。 内存拷贝 面试题:写一个...

    Unity面试题30题含答案——C#基础.

    ### Unity面试题30题含答案——C#基础知识点详解 #### 1. 值类型与引用类型的区别 - **存储位置**:值类型直接存储在栈内存中,而引用类型存储的是堆内存中的地址,这个地址存放在栈内存中。 - **访问速度**:由于...

    java高级工程师-面试题及答案

    ### 一、选择题解析 #### 1. 关于以下程序代码的说明正确的是(D) 这段代码主要考察了Java中私有静态变量的访问以及作用域的问题。 - **第5行**:虽然`x`被声明为私有的静态变量,但在同一个类的静态上下文中是...

    C_经典面试题及答案

    《C#经典面试题及答案解析》 在IT行业的面试中,C#作为.NET框架的核心语言,其相关的知识和技能常常是面试官考察的重点。本文将围绕C#的几个关键概念——委托、事件、控件遍历以及排序算法进行深入探讨,并提供相应...

    C#面试题大全(含答案)

    C#面试题大全(含答案) 本资源提供了C#面试题大全,涵盖了C#语言的基础知识、 ASP.NET框架、ADO.NET、XML等多方面的知识点。下面是对每道题目的详细解释: 1. 在对SQL Server 数据库操作时应选用(a)SQL Server ...

    【电子版】校招面试题库(附答案与解析)C+++篇.rar

    通过阅读《电子版》校招面试题库(附答案与解析)C+++篇.pdf,你可以系统地复习这些知识点,并通过提供的面试题和解析来检验自己的理解程度,提高面试准备的效率。对于每个知识点,不仅要记住概念,还要能够应用到...

    .net面试题.net面试题.net面试题.net面试题(经典)

    .NET面试题是评估应聘者对.NET框架理解和应用能力的...对于STO这个文件名,它可能是面试题集的简称或者特定章节的标识,但具体含义需要更多信息才能确定。在准备.NET面试时,全面了解上述知识点将大大增加成功的机会。

    java程序员面试题——863面试集

    ### Java程序员面试题详解 #### 一、Java基础知识 1. **作用域public, private, protected, 以及不写时的区别** - **public**: 可以被任何类访问。 - **protected**: 可以被同一包内及不同包内的子类访问。 - ...

Global site tag (gtag.js) - Google Analytics