1 String a = new String("aha");
在编译时,会在常量池中先查找字面值是"aha"的String对象,叫做“拘留String对象”。
如果存在,则,根据关键字new,在堆上建立新的对象,将“拘留String对象”拷贝给新建立的对象,再引用到a上;
如果不存在,则,在常量池中建立字面值是"aha"的String对象,拷贝给由new建立在堆上的对象,再引用到a上。
2 String b = "aha";
在编译时,会在常量池中先查找字面值是"aha"的String对象,叫做“拘留String对象”。
如果存在,则,将“拘留String对象”引用到a上;
如果不存在,则,在常量池中建立字面值是"aha"的String对象,再引用到a上。
总结 1、2
String a = new String("aha");与 String b = "aha"; 的引用a,指向的是不同的地址,所以 a==b 的返回值是false。
而a.equals(b); 的返回值是true。
3 == 与 equals的区别:
在对象中,“==” 比较的是两个对象的引用地址是否相同。
在Object类中, equals方法中就是 “==”, 用户自定义类可以Override equals方法
在String类中, equals方法中,如果参数类型是String类型的对象,比较的就是两个对象的value是否相同;
分享到:
相关推荐
C++ deque 容器学习笔记 通过学习 deque 容器,我们可以更好地理解 C++ 的容器类库。deque 容器是双端数组,可以对头端进行插入删除操作。相比于 vector 容器,deque 容器在头部的插入删除速度更快,但是访问元素时...
自己写的java学习笔记,有完整的体系结构,有思维导图帮助理解和记忆
根据提供的信息,我们可以总结出这份文档是关于Go语言学习笔记的部分内容,主要涵盖了Go语言的基础概念、语法结构、数据类型以及并发模型等关键知识点。以下是对这些知识点的详细解析: ### Go语言概述 Go(也称作...
Go语言学习笔记.pdf 共174页 Go语言学习笔记.pdf 共174页是一本关于Go语言的详细学习笔记,涵盖了Go语言的基础知识、函数、数组、Maps、Structs、接口、并发、程序结构、标准库等方面的内容。本笔记共分为三大部分...
redis学习笔记redis 是一个开源的 key-value 数据库。它又经常被认为是一个数据结构服务器。 因为它的 value 不仅包括基本的 string 类型还有 list,set ,sorted set 和 hash 类型。当 然这些类型的元素也都是 string...
### LabVIEW学习笔记知识点梳理 #### 一、调试技巧与数据监测 - **探针工具**: 在调试过程中,可以通过右键菜单中的`probe`和`custom probe`功能来设置探针,用于实时监测数据流。这有助于理解数据如何在各个节点...
根据提供的标题、描述、标签及部分内容,我们可以提炼出关于J2ME的学习笔记中的关键知识点,主要聚焦于Java语言的基础概念,特别是与初始化和字符串相关的部分。 ### 初始化 #### 概述 - **成员变量初始化**:所有...
这个PDF学习笔记是开发者深入理解JDK 7特性和功能的重要参考资料。以下是对Java JDK 7的一些核心知识点的详细阐述: 1. **泛型改进**:在JDK 7中,泛型的使用更加灵活,引入了类型推断(Type Inference)特性,通过...
### JAVA中String与StringBuffer的区别 在Java编程语言中,`String` 和 `StringBuffer` 都是非常重要的类,它们用于处理字符串数据。虽然它们都实现了字符串操作的功能,但它们之间存在一些重要的区别,这些区别...
public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person("Jane"); System.out.println(p1.getName()); // 输出: John Doe System.out.println(p2.getName()); // 输出:...
这篇学习笔记主要探讨的是如何在C++ Builder中实现一个可新建文件夹的选择目录对话框。 选择目录对话框是许多应用中常见的功能,它允许用户浏览文件系统并选择一个文件夹。在C++ Builder中,我们可以利用Windows ...
### 瑜琅Java学习笔记概览 瑜琅的Java学习笔记涵盖了Java的基础概念与核心特性,从起源到高级特性均有涉及。以下是对该学习笔记各部分的深入解析: #### 1. Java起源 ##### 1.1 发展背景 - Java的诞生源于Sun ...
下面将详细讲解在给定的学习笔记中提到的一些关键概念。 1. **Scanner类**:Scanner类是Java中用于输入处理的类,它可以从键盘、文件或其他输入流读取基本数据类型和字符串。在示例中,`Scanner sc = new Scanner...
Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...
【Python学习笔记-王纯业】是一份专为Python初学者设计的教程,由王纯业编撰。这个教程深入浅出地介绍了Python编程的基础知识,帮助初学者快速上手。下面将详细阐述该教程中可能包含的重要知识点,以及Python入门者...
### SpringBoot学习笔记 #### 一、SpringBoot入门 ##### 1、SpringBoot简介 - **简化Spring应用开发**:SpringBoot是简化Spring应用开发的一个框架,它通过默认配置极大地减少了开发过程中的样板代码,使得开发者...
这篇“Excel VBA学习笔记”涵盖了多个关键知识点,下面将对这些内容进行详细讲解。 一、VBA基础 1. **环境介绍**:VBA开发环境包括VBE(Visual Basic Editor)编辑器,它提供了代码编辑器、项目浏览器、对象浏览器...
Redis作为一款高性能的键值存储数据库,支持多种数据类型,包括String、List、Set、ZSet和Hash,并且提供了数据持久化的机制,包括快照(Snapshot)和AOF(Append Only File)两种方式。在Java操作方面,可以利用...
本压缩包“C语言学习笔记.zip”包含了丰富的C语言学习资料,主要集中在“c-notes-master”这个子目录下,适合初学者和有一定基础的程序员进行深入学习。 在C语言的学习中,首先要掌握的基本概念包括变量、数据类型...