`

java String之我见

    博客分类:
  • java
阅读更多

一、java中的String类为什么不可以被改变?

public class StringTest {
public static void main(String[] args) {
String str = new String ("abcdef");
str.replace('c', 'C');
System.out.println(str);
}
}

 

这里面的代码,试图将字符串中的字符'c'替换成大写字母'C',使用的是String类的replace方法,调用这个方法之后,再重新输出字符串str,发现并没有改变str的值。这是怎么一回事呢?

大家只要查看一下String的API就知道,这个类的replace()方法,它返回的是一个新的String,也就是说,调用String的replace()方法之后,它会在内存堆中新创建一个String对象,而不会去改变之前在堆中创建的String对象。

 

总之,大家可以查看String的API,只要是试图改变一个字符串的方法,它最终都会返回一个新的String,也就是说在内存堆中开辟一个新的空间来存放这个新的字符串。这也就是不能改变原String对象的值的根本原因。也就是说,无论你调用String的什么方法,改变原String对象的值,它都会产生一个新的字符串返回。

 

二、java中的String类为什么是不可以继承的?

    查看jdk你就可以清楚的看到String是final类型的,表明它是一个终态类,大家都清楚final作用在类上,就表示这个类是不能够被子类继承的。下方是String类的类定义:

    public final class String

    extends Object
    implements java.io.Serializable, Comparable<String>, CharSequence
    为什么final作用在类上面,这个类就不能够被子类继承,也就是被子类扩展呢?
    因为类上面如果添加了final修饰,则这个类里面的方法就默认会加上final修饰符,我们知道,final作用在方法上面的时候,在子类中是无法重写这个方法的。所以,如果类里面所有的方法都加上final之后,那么子类就无法重写这个类里面所有的方法,继然重写不了,也就谈不上继承了。
分享到:
评论

相关推荐

    java String 使用详解

    Java String 使用详解 Java String 使用详解是 Java 编程语言中最基础也是最重要的一部分,对于 Java 程序员来说,了解 String 类的使用方法是必不可少的。本文将详细介绍 Java String 的使用方法,包括 String ...

    5.javaString类.zip

    5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5.javaString类.zip5....

    java String 数据结构

    在Java编程语言中,`String`类是处理文本字符串的核心工具。它是一个不可变对象,意味着一旦创建,其内容就不能更改。这是因为`String`在Java中被实现为一个特殊的类,存储在一个连续的字符数组中,这个特性对于理解...

    java基础String类选择题练习题

    根据提供的信息,我们可以总结出这份Java基础String类选择题练习题主要聚焦于String及StringBuffer类的使用。尽管具体的题目内容未给出,但从所展示的信息中可以推断出该练习题集涵盖了以下几方面的知识点: ### 一...

    StringUtil.java

    java编程中对字符串的各种方式的处理,包括(空字符串处理、判断是否是空字符串 null和"" 都返回 true、 把string array or list用给定的符号symbol连接成一个字符串、 判定第一个字符串是否等于的第二个字符串中的某...

    Java 之 String 类型

    在Java编程语言中,String类型扮演着至关重要的角色。它被广泛用于表示和操作文本,因为它是不可变的,这确保了字符串的安全性和效率。本文将深入探讨Java中的String类,包括其特性、构造方法、常用方法以及与其他...

    java中String类型转换方法.pdf

    Java 中 String 类型转换方法 Java 中 String 类型转换方法是一种常见的编程操作,涉及到各种数据类型之间的转换,包括整型、浮点型、长整型、浮点型等。本文将详细介绍 Java 中 String 类型转换方法的各种形式。 ...

    java字符串转String数组简单实例

    java字符串转String数组简单实例,简单但很实用

    我们一起学Java之String

    Java中的String类是一个重要的数据类型,用于存储和操作字符串数据。String类的特点是不可变性,也就是说,一旦String对象被创建,其值就无法改变。这一特性对于Java内存管理有着重要影响,因为String对象会存储在...

    Java String与Byte类型转换

    Byte类型是Java的八种基本数据类型之一,用于存储8位二进制值,范围是-128到127。 1. **String转Byte**: - **字面量转换**: 直接使用`getBytes()`方法将字符串转化为字节数组。例如,`byte[] bytes = "Hello"....

    JAVA String.format方法使用介绍

    在JDK1.5中,String类增加了一个非常有用的静态函数format(String format, Objece... argues),可以将各类数据格式化为字符串并输出。其中format参数指定了输出的格式,是最复杂也是最难掌握的一点,而argues则是一...

    java String类的实现

    Java中的`String`类是编程中最常用的类之一,它在Java的`java.lang`包中,无需显式导入即可使用。`String`类代表不可变的字符序列,这意味着一旦创建了`String`对象,它的值就不能改变。这个特性使得`String`在处理...

    小心String的陷阱——深入剖析Java中String的处理机制

    标题和描述均强调了在Java中处理`String`对象时可能遇到的陷阱,尤其是在理解和使用`String`的处理机制上。文章由天津工业大学软件工程专业的翁龙辉撰写,旨在深入剖析`String`在Java中的独特行为及其潜在的陷阱。...

    java里的string

    讲解java中的String和StringBuffer的基本应用

    String1.java

    ### Java字符串操作详解:String1.java程序分析 在Java编程语言中,字符串处理是一项非常重要的技能,无论是进行数据处理还是用户交互,字符串都是一个不可或缺的数据类型。本篇将基于提供的`String1.java`代码示例...

    java中Blob转String

    分享在JAVA中Blob转换成String实例

    java中String_十六进制String_byte[]之间相互转换

    ### Java中String、十六进制String与byte[]之间的相互转换 在Java开发中,字符串(String)、十六进制表示的字符串以及字节数组(byte[])之间的转换是非常常见的需求,尤其是在处理网络通信、文件读写等场景下。...

    java中string和int型的相互转换.doc

    Java 中 String 和 int 类型的相互转换 Java 中 String 和 int 类型的相互转换是一个基本的数据类型转换操作。下面我们来详细介绍这两种类型的相互转换。 String 转换为 int 在 Java 中,将 String 类型转换为 ...

Global site tag (gtag.js) - Google Analytics