`
janmy
  • 浏览: 5902 次
  • 性别: Icon_minigender_1
  • 来自: 中国广东省广州市
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java基本编程要点之final、equals和==、String 与StringBuffer的区别

阅读更多

昨天自已复习了一下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类就避免了这个问题.

分享到:
评论

相关推荐

    Java 中 String,StringBuffer 和 StringBuilder 的区别及用法

    "Java 中 String、StringBuffer 和 StringBuilder 的区别及用法" Java 中 String、StringBuffer 和 StringBuilder 是三个常用的字符串操作类,了解它们之间的区别对 Java 开发者来说非常重要。本文将详细介绍这三者...

    Java面试题大全2023版.docx

    String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上...

    10个Java经典的String面试题

    了解 String 的特点和使用方法是 Java 开发者必备的技能之一。下面我们将对 10 个 Java 经典的 String 面试题进行详细解答。 1. String 是基本数据类型吗? 答案:String 不是基本数据类型。Java 中的基本数据类型...

    java基础知识面试题

    本文将围绕 Java 基础知识面试题展开,涵盖 String、StringBuffer、StringBuilder 的区别、==和 equals 的区别、String 常量池等知识点。 一、String、StringBuffer、StringBuilder 的区别 String、StringBuffer、...

    Java面试题一站式全收录

    String a = "A" 和 String a = new String("A") 创建字符串的区别: * String a = "A":首先去常量池找 “A”,如果有,会把 a 指向这个对象的地址;如果没有,则在栈中创建三个 char 型的值 'A',堆中创建一个 ...

    java String、StringBuilder和StringBuffer的区别详解

    Java中的`String`、`StringBuilder`和`StringBuffer`都是用来处理字符串的类,它们各自有不同的特性和适用场景。在理解它们之间的区别之前,我们首先要知道它们的共同点。 **共同点:** 1. **都是字符串类**:这三...

    10个Java经典的String面试题!.pdf

    6. **String、StringBuffer和StringBuilder的区别**:String是不可变的,而StringBuffer和StringBuilder是可变的。在多线程环境中,StringBuffer是线程安全的,适合多个线程同时访问;StringBuilder则没有线程安全...

    java基础面试题目,常见的几个java面试题目:说一下java类集;JDK 和 JRE 有什么区别

    这些面试题目涵盖了Java基础知识的多个方面,包括类集框架的理解,Spring框架的工作原理,源码阅读的重要性,动态代理的实现,JDK与JRE的区别,==与equals的区别,hashCode()和equals()的关系,final关键字的作用,...

    2022最新java面试题大全

    2. String 和 StringBuffer、StringBuilder 的区别:String 定义的字符串不可改变,StringBuffer 和 StringBuilder 可以在原对象基础上进行操作,改变对象内容,StringBuffer 是线程安全的,StringBuilder 是线程不...

    JAVA小论文(浅谈String类)

    Java提供了String类、StringBuffer类和StringTokenizer类来存储和处理字符串。在大多数情况下,可以使用String类来创建字符串。 String类在存储和处理字符串时非常有效,但是创建对象后,字符串的内容一旦确定则不...

    Java类库复习——java.lang.String

    在Java编程语言中,`java.lang.String`是最重要的类之一,它是所有字符串操作的基础。这个类位于核心类库中,因此无需显式导入即可使用。本文将深入探讨`String`类的一些关键知识点,包括它的特性、构造方法、常用...

    Java String Interview Questions.pdf

    Java字符串是Java编程语言中最基本的数据类型之一,在Java面试中,字符串问题是非常常见的。本文将详细解释Java字符串面试问题,包括字符串的声明、字符串池、字符串的不可变性、字符串比较、字符串方法、字符串与...

    java必刷面试题答案

    本文将详细讲解java基础知识中的几个重要问题,包括JDK和JRE的区别、==和equals的区别、hashCode和equals的关系、final关键字的作用、Math.round函数的作用、String类的基本知识、抽象类和接口的区别、IO流的分类等...

    大厂真题之菜鸟网络-Java初级.pdf

    以下是关于 Java 基础知识点的总结,包括 ==、equals 和 hashCode 的区别、基本数据类型、多态、字符串类、内部类等。 1. ==、equals 和 hashCode 的区别 在 Java 中,==、equals 和 hashCode 是三种不同的比较...

    java六大必须理解的问题 文档

    - **`StringBuffer` 和 `StringBuilder` 的区别**:`StringBuilder` 是非线程安全的,而`StringBuffer`是线程安全的,因此在单线程环境下推荐使用`StringBuilder`以获得更好的性能。 #### 4. `final` 关键字的使用 ...

    50个Java面试题.pdf

    **题目背景**:在Java编程中,`equals()`方法和`==`操作符经常被用于比较对象,但它们之间存在重要的差异。面试题通过一个具体的代码示例探讨了这些差异。 **题目解析**: - **equals()方法**:源于`Object`类,...

    学习java这些你搞懂了吗

    #### 问题二:“==”和equals方法究竟有什么区别? 在Java中,“==”操作符和`equals()`方法用于比较两个对象之间的相等性,但它们有着本质的不同: 1. **“==”操作符**:用于比较两个对象的引用是否指向同一个...

    JAVA面试题汇总(基础、容器、多线程等等).docx

    8. String str="i" 和 String str=new String("i") 的区别:String str="i" 的方式,Java 虚拟机会将其分配到常量池中;而 String str=new String("i") 则会被分到堆内存中。 _java 容器知识点_ 9. 如何将字符串...

    java教程课件5基本数据类型与引用类型

    - `java.lang`是最基础的包,包含了所有Java程序都会用到的基本类,如`String`、`Math`、`Integer`、`System`和`Runtime`,这个包下的类会被自动导入。 - `java.net`包提供网络通信所需类,如Socket和ServerSocket...

Global site tag (gtag.js) - Google Analytics