昨天自已复习了一下JAVA基础,本来想将昨天回顾过的JAVA基础都写出来的,但想着又太基础了,于是,
现在将一些值得注意的要点写一下。
1. 首先我们来看一下JAVA中的常量定义--关键字:final
1.1变量定义: 在JAVA中,使用关键字final来表示常量,而C++使用const来定义常量,在JAVA中,const是
保留关键字。关键字final表示只能对变量赋一次值,其值一是设定,便不能更改。一般来说,常量名都使用
大写,如:final double CM_PER_INCH = 2.54; 在JAVA中,常常希望一个常量在某个类的多个方法中都是
可用的,这种常量通常称作类常量,使用关键字static final可设定类常量。
1.2类与方法使用关键字final定义:
类:使用final修钸类,表示该类不能被继承,在JDK API库中,String类就是一个final类
方法:使用final修钸方法,表示该方法不能裤override,可overload.
2:equals()方法与 == 之间的区别
equals 方法判断两个字符串是否想等,其背的含义是判断两个字符串的值是否相等,如果需要判断两个对象
是否相等,判断的是两个相同类型的对象的域数据相等则这两个类对象相等,一般情况下建议对toString()方法
进行override.
== 操作符来检测两个字符串是否相等,一般情况下,不建议使用==操作符来判断两个字符串是否相等,==
操作符只能判定两串是否存储在同一个内存区间位置。当然字符串在同一个内存位置,哪么它们必然相等。但
是也完全有可能把串的多个拷贝存在不同的内存空间。
String s = "hello";
if(s=="hello")//这是对的,
if(s.subString(0,4)=="hell")//可能错的
在JAVA 虚拟机中,只有字符常量会被共享,而+或subString等操作产生的结果串并不共享,因此,不要使用
==操作符来比较字符串。
3:String 与StringBuffer的区别
String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独
字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可
以把字符串设为共享的。
StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用
StringBuffer类的append方法追加字符 比 String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得
多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大
的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使
用StringBuffer类就避免了这个问题.
分享到:
- 2007-11-30 10:02
- 浏览 2169
- 评论(0)
- 论坛回复 / 浏览 (0 / 2142)
- 查看更多
相关推荐
"Java 中 String、StringBuffer 和 StringBuilder 的区别及用法" Java 中 String、StringBuffer 和 StringBuilder 是三个常用的字符串操作类,了解它们之间的区别对 Java 开发者来说非常重要。本文将详细介绍这三者...
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上...
了解 String 的特点和使用方法是 Java 开发者必备的技能之一。下面我们将对 10 个 Java 经典的 String 面试题进行详细解答。 1. String 是基本数据类型吗? 答案:String 不是基本数据类型。Java 中的基本数据类型...
本文将围绕 Java 基础知识面试题展开,涵盖 String、StringBuffer、StringBuilder 的区别、==和 equals 的区别、String 常量池等知识点。 一、String、StringBuffer、StringBuilder 的区别 String、StringBuffer、...
String a = "A" 和 String a = new String("A") 创建字符串的区别: * String a = "A":首先去常量池找 “A”,如果有,会把 a 指向这个对象的地址;如果没有,则在栈中创建三个 char 型的值 'A',堆中创建一个 ...
Java中的`String`、`StringBuilder`和`StringBuffer`都是用来处理字符串的类,它们各自有不同的特性和适用场景。在理解它们之间的区别之前,我们首先要知道它们的共同点。 **共同点:** 1. **都是字符串类**:这三...
6. **String、StringBuffer和StringBuilder的区别**:String是不可变的,而StringBuffer和StringBuilder是可变的。在多线程环境中,StringBuffer是线程安全的,适合多个线程同时访问;StringBuilder则没有线程安全...
这些面试题目涵盖了Java基础知识的多个方面,包括类集框架的理解,Spring框架的工作原理,源码阅读的重要性,动态代理的实现,JDK与JRE的区别,==与equals的区别,hashCode()和equals()的关系,final关键字的作用,...
2. String 和 StringBuffer、StringBuilder 的区别:String 定义的字符串不可改变,StringBuffer 和 StringBuilder 可以在原对象基础上进行操作,改变对象内容,StringBuffer 是线程安全的,StringBuilder 是线程不...
Java提供了String类、StringBuffer类和StringTokenizer类来存储和处理字符串。在大多数情况下,可以使用String类来创建字符串。 String类在存储和处理字符串时非常有效,但是创建对象后,字符串的内容一旦确定则不...
在Java编程语言中,`java.lang.String`是最重要的类之一,它是所有字符串操作的基础。这个类位于核心类库中,因此无需显式导入即可使用。本文将深入探讨`String`类的一些关键知识点,包括它的特性、构造方法、常用...
Java字符串是Java编程语言中最基本的数据类型之一,在Java面试中,字符串问题是非常常见的。本文将详细解释Java字符串面试问题,包括字符串的声明、字符串池、字符串的不可变性、字符串比较、字符串方法、字符串与...
本文将详细讲解java基础知识中的几个重要问题,包括JDK和JRE的区别、==和equals的区别、hashCode和equals的关系、final关键字的作用、Math.round函数的作用、String类的基本知识、抽象类和接口的区别、IO流的分类等...
以下是关于 Java 基础知识点的总结,包括 ==、equals 和 hashCode 的区别、基本数据类型、多态、字符串类、内部类等。 1. ==、equals 和 hashCode 的区别 在 Java 中,==、equals 和 hashCode 是三种不同的比较...
- **`StringBuffer` 和 `StringBuilder` 的区别**:`StringBuilder` 是非线程安全的,而`StringBuffer`是线程安全的,因此在单线程环境下推荐使用`StringBuilder`以获得更好的性能。 #### 4. `final` 关键字的使用 ...
**题目背景**:在Java编程中,`equals()`方法和`==`操作符经常被用于比较对象,但它们之间存在重要的差异。面试题通过一个具体的代码示例探讨了这些差异。 **题目解析**: - **equals()方法**:源于`Object`类,...
#### 问题二:“==”和equals方法究竟有什么区别? 在Java中,“==”操作符和`equals()`方法用于比较两个对象之间的相等性,但它们有着本质的不同: 1. **“==”操作符**:用于比较两个对象的引用是否指向同一个...
8. String str="i" 和 String str=new String("i") 的区别:String str="i" 的方式,Java 虚拟机会将其分配到常量池中;而 String str=new String("i") 则会被分到堆内存中。 _java 容器知识点_ 9. 如何将字符串...
- `java.lang`是最基础的包,包含了所有Java程序都会用到的基本类,如`String`、`Math`、`Integer`、`System`和`Runtime`,这个包下的类会被自动导入。 - `java.net`包提供网络通信所需类,如Socket和ServerSocket...