`

常见Java面试题(二):equals与==

阅读更多

Q2.下面的代码片段的输出是什么?

 

Object s1 = new String("Hello");
Object s2 = new String("Hello");

if(s1 == s2) {
  System.out.println("s1 and s2 are ==");
}else if (s1.equals(s2)) {
  System.out.println("s1 and s2 are equals()");
}

 A2.输出结果是:

s1 and s2 are equals()

可以用下面这个图来解释:



 

因此,上面的问题考察了面试者对”==” 和 “equals( )”在Java对象上如何应用的理解是否正确。前者比较引用,后者则比较对象中真正的值。

接着还可以有下面的问题:

Q.下面代码片段的输出是什么?

Object s1 = "Hello";
Object s2 = "Hello";

if (s1 == s2) {
 System.out.println("s1 and s2 are ==");
} else if (s1.equals(s2)) {
 System.out.println("s1 and s2 are equals()");
}

 A.答案是:

s1 and s2 are ==

看上去这个答案和对前面一个问题所做的解释似乎有所违背。事实上,这个例子(或者说,规则)比较特殊,是一个典型的flyweight 模式在字符串对象创建中的应用。这个模式通过减少对象的创建来节约内存。String对象会创建一个字符串池(a pool of string),如果当前准备新创建的字符串对象的值在这个池子中已经存在,那么就不会生成新对象,而是复用池中已有的字符串对象。flyweight 模式的精髓就是对象复用。不过,只有采用Object s = “Hello”方式(而非用”new“关键字)声明String对象的时候这个规则才会被应用。

这是一个非常经常被采用的Java面试问题。

原文:http://www.importnew.com/2223.html

  • 大小: 50.9 KB
  • 大小: 26.5 KB
分享到:
评论

相关推荐

    java面试题集锦 java面试题集锦

    以下是对标题和描述中涉及的一些常见Java面试题的详细解释: 1. **JDK 和 JRE 的区别** JDK(Java Development Kit)是用于开发和调试Java程序的完整工具集,包括JRE(Java Runtime Environment)、编译器(javac...

    java常见面试题(史上最全最经典-希望对你有用)

    Java常见面试题 Java是最流行的编程语言之一,掌握Java的基础知识是非常重要的。在这里,我们总结了Java常见的面试题,涵盖了Java的基础部分,包括基本语法、类相关的语法、内部类的语法、继承相关的语法、异常的...

    Java17道面试题及答案

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

    2022最新java面试题大全

    Java 面试题大全 Java 是一种广泛使用的编程语言,本文总结了 Java 面试中常见的知识点,涵盖了 Java 基础、字符串操作、数据类型、运算符、抽象类等方面的知识。 Java 基础 1. JDK 和 JRE 的区别:JDK(Java ...

    JAVA面试题JAVA面试题JAVA面试题

    Java 面试题涵盖了许多核心概念,这些都是面试者在求职过程中必须掌握的基础知识。下面将逐一解析这些知识点: 1. **final, finally, finalize的区别**: - `final`:用于修饰类、方法和变量,表示不可变或不可...

    Java常见面试题208道.docx

    面试中,Java开发者需要对基础知识、容器、多线程、反射、对象拷贝、Java Web、异常处理、网络编程、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、消息中间件如RabbitMQ和Kafka、...

    JAVA面试题2019

    以上是对“JAVA面试题2019”中提及的一些核心知识点的总结,涵盖了项目介绍、Java基础知识、并发编程、Spring框架、Netty框架以及分布式系统等方面的知识点。这些知识点不仅对于准备Java面试至关重要,同时也是Java...

    Java 最常见的 208 道面试题.pdf

    Java 面试题解析 Java 是一种广泛应用的编程语言,了解 Java 的基础知识是面试的必备条件。本文将对 Java 面试中常见的问题进行解析,并提供详细的解释和示例代码。 JDK 和 JRE 的区别 JDK(Java Development Kit...

    最全java面试题及答案(208道).pdf

    "Java面试题及答案详解" Java是目前最流行的编程语言之一,在软件开发行业中广泛应用。以下是Java面试题及答案的详解: Java基础 1. JDK 和 JRE 的区别是什么? JDK(Java Development Kit)是Java开发工具包,...

    Java 最常见 200+ 面试题全解析:面试必备.pdf

    Java面试题全解析涉及的知识点非常广泛,覆盖了Java编程的多个重要模块和主题。在详细介绍前,我们首先要明白JDK和JRE的区别。JDK即Java Development Kit,是开发Java程序的环境,包含了编译器(javac)和运行环境...

    JAVA 面试题:常见17道面试题总结

    ### JAVA 面试题:常见17道面试题详解 #### 1. JDK 和 JRE 有什么区别? - **JDK (Java Development Kit)**:Java 开发工具包,提供了 Java 的开发环境和运行环境。它包含了 Java 编译器、Java 运行时环境以及其他...

    Java面试题,10万字208道Java经典面试题总结(附答案)

    以下是一些Java面试中常见的知识点: 1. JDK和JRE的区别: JDK(Java Development Kit)是Java开发工具包,它包含了编写、编译和调试Java应用程序所需的所有工具,包括JRE(Java Runtime Environment)。JRE则是...

    java面试题大全好多经典的试题

    ### Java面试题详解 #### 一、Core Java基础 **1. Java中对象的引用有哪些类型?** 在Java中,对象引用主要分为四种类型:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)以及...

    Java 最常见 200+ 面试题全解析:面试必备.docx

    ### Java 最常见 200+ 面试题全解析:面试必备 #### Java 基础 1. **JDK 和 JRE 的区别** - **JDK**(Java Development Kit):Java 开发工具包,包含了 Java 的运行环境(JRE)以及 Java 编译器和其他开发工具...

    计算机毕业生常见java面试题

    计算机毕业生常见java面试题 Java 是一种流行的编程语言,对于计算机毕业生来说,mastering Java 是非常重要的。在面试过程中, Java 相关的问题经常会被问到。下面我们将总结一些常见的 Java 面试题及其答案。 1....

    各大互联网公司常见java面试题

    【Java面试核心知识点详解】 ...以上是Java面试中常见的知识点,涵盖了核心概念、语法、设计模式、集合框架、异常处理、内存管理等多个方面。理解并掌握这些知识点,将有助于在面试中展现出扎实的Java技能。

    Java 面试题 Java 面试题

    根据给定的文件内容,我们可以总结出一系列与Java面试相关的知识点。下面将详细解析每一道题目涉及的关键概念。 ### 第一部分:基础知识 #### 1. final, finally, finalize的区别 - **final**: 用于声明变量、方法...

    Java 最常见200道面试题.pdf

    首先,文档描述了一个名为“Java 最常见200道面试题.pdf”的文件,它是一个集合了互联网公司面试题的集锦,主要针对后台、客户端、测试、数据、算法等职位。文档强调了这些面试题对于准备面试的程序员具有很高的价值...

    java面试题最新版

    以下是一些Java面试中常见的问题及其详细解答: 1. **Java源文件与类的关系**:一个.java源文件可以包含多个类,但只能有一个公共类(public class),并且文件名必须与这个公共类的名称相同。其他非公共类可以任意...

Global site tag (gtag.js) - Google Analytics