Java运行环境有一个字符串池,由String类维护。执行语句String str="abc"时,首先查看字符串池中是否存在字符串"abc",如果存在则直接将"abc"赋给str,如果不存在则先在字符串池中新建一个字符串"abc",然后再将其赋给str。执行语句String str=new String("abc")时,不管字符串池中是否存在字符串"abc",直接新建一个字符串"abc"(注意:新建的字符串"abc"不是在字符串池中),然后将其付给str。前一语句的效率高,后一语句的效率低,因为新建字符串占用内存空间。
因些,在判断字符串相等时,
String a = "abc";
String b = "abc";
在这种情况下,a==b是返回true的。因为建第二个"abc"的时候,java内部是把已有的"abc"的地址给了b。因此,a和b的地址是相同的,此时a,b指向的是内存中的同一个"abc"。
而当判断 a=="abc"时,返回的是false。因为一个地址和一个字符串,一般是不相等的吧。
而如果用 a.equals(b) 或者 a.equals("abc") 都返回true。
分享到:
相关推荐
总之,"java自制string类例程"是一个很好的实践项目,可以帮助初学者巩固对Java字符串概念的理解,提高编程技能,并对面向对象编程的核心原则有更深入的认识。在实际编程中,虽然我们通常使用内置的String类,但这种...
因此,对`Object`类的理解是每个Java开发者的基本功。本文将深入探讨`Object`类,以及其核心方法`equals()`与Java中的`==`操作符之间的差异。 `Object`类位于Java的核心库`java.lang`包中,它提供了基本的方法来...
由标题“第一章认识Java”以及描述中的“Java发展”,我们可以从中提炼出关于Java的基本信息及其发展历程的关键点。 ##### 历史背景 - **开始研究**:Java项目始于1990年,最初由Sun Microsystems发起。 - **Oak**...
Java语言是一种广泛应用于服务器端开发、移动应用、嵌入式设备和云计算等领域的...通过这些实验,初学者将对Java语言有基本的认识,为后续深入学习面向对象编程、异常处理、集合框架、多线程等高级主题打下坚实基础。
这个“简单JAVA例程(绝对新手实例)”的压缩包文件提供了入门级别的Java代码示例,帮助新手逐步认识和了解Java编程。 首先,让我们来探讨Java的基础知识: 1. **Java语法基础**:Java的语法结构与C++类似,但更加...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。它的设计目标是具有简单性、面向...因此,对Java的初步认识和首个应用程序的发布是每个Java程序员的必经之路。
Java代码会被编译成字节码,可以在任何支持Java的平台上运行,无需重新编译。 在开始Java编程时,你需要先安装Java Development Kit (JDK),设置好环境变量。之后,你可以创建你的第一个Java程序,通常被称为"Hello...
"java中传值还是传引用的认识" Java 中的参数传递是值传递还是引用传递?这是一个经常引发讨论的问题。在 Java 中,参数传递是按值传递的,也就是说,传递给方法的参数是一个副本,而不是原始值本身。 当一个对象...
通过这份Java基础教程,你可以逐步建立起对Java编程的系统认识,掌握基本的编程技巧,并为进阶学习打下坚实的基础。无论是作为初学者的起点,还是作为对其他语言开发者的新挑战,这都是一个极好的资源。开始你的Java...
以下是对Java Class类的详细说明: 1. **Class类对象的创建**:在Java中,我们不能直接创建Class对象,因为它的构造函数是private的。当我们加载一个类时,Java虚拟机(JVM)会自动创建对应的Class对象。类的加载...
在本实验中,我们将探索如何使用Java语言来创建两种不同类型的程序:Java Application和Java Applet,以及如何...通过实践这些步骤,你可以更好地掌握Java编程的核心概念,并对Java在不同场景下的使用有更直观的认识。
在Java编程语言中,类和对象是核心概念,它们构成了面向对象编程的基础。本章将深入探讨这两个概念,以及如何在实际编程中运用它们。...同时,通过练习编写和运行这些代码,你将深化对Java类和对象的理解。
这一问题的出现,主要是由于开发者对Java系统中文处理的原理缺乏足够的认识和正确的处理方法。Java系统处理中文的能力,与其默认的字符编码集息息相关。因此,理解并统一Java系统输入、输出和操作系统三者的编码字符...
在"实战java反射机制-让你迅速认识java强大的反射机制"这个主题中,我们将深入探讨反射的核心概念和实际应用。 1. 反射基础: Java反射机制主要基于`java.lang.Class`类和`java.lang.reflect`包中的接口和类。`...
5. **String的声明方式**:Java中的字符串是不可变的,可以使用`String str = "Hello"`或`String str = new String("Hello")`来声明,两者区别在于内存分配的位置,前者在常量池,后者在堆内存。 6. **转义字符**:...
8. Java数据类型:文档包含基本数据类型(int、long)的声明和操作,这要求学生对Java的基本数据类型和数组有清晰的认识。 9. Java I/O操作:虽然文档中没有直接提及,但根据标题可以推断,这份试卷可能还涉及到...
本章内容主要涵盖了对Java桌面程序的认识,包括Eclipse IDE的使用,GUI开发包Swing的介绍,以及如何在IDE中开发和运行Java桌面程序。 1. **Eclipse IDE的使用**: Eclipse是一款强大的开源集成开发环境,支持多种...