Java之String类常用操作

![在这里插入图片描述](https://pic.it1024doc.com/csdn/202412/451d6264b111e3d7712779fbb678408d.gif)

* * *

#### Java中的String类探索

* [一、深入理解String类](#一深入理解String类)
  * [1、类的声明与特性](#1类的声明与特性)
  * [2、内部属性的探讨](#2内部属性的探讨)
  * [3、字符串常量的存储机制](#3字符串常量的存储机制)
  * [4、不可变性的深远影响](#4不可变性的深远影响)
  * [5、实例化String的途径](#5实例化String的途径)
  * [6、字符串拼接的艺术](#6字符串拼接的艺术)
* [二、String的构造器详解](#二String的构造器详解)
  * [1、构造器的多样性](#1构造器的多样性)
  * [2、String与char数组的转换](#2String与char数组的转换)
  * [3、String与byte数组的转换](#3String与byte数组的转换)
* [三、String的常用方法概览](#三String的常用方法概览)

## 一、深入理解String类

### 1、类的声明与特性

```java
public final class String
    implements java.io.Serializable, Comparable, CharSequence {

final 关键字表明String类是封闭的,不允许被继承;
实现了 Serializable 接口,使得String对象可以在网络上传输或存储;
实现了 Comparable 接口,允许String对象进行大小比较。

2、内部属性的探讨

private final char value[];

这是存储字符串数据的核心容器。

final 关键字确保一旦value数组被初始化,其引用地址将不可更改。

3、字符串常量的存储机制

字符串常量被统一存储在字符串常量池(StringTable)中,该池不允许存放重复的字符串常量。不同JDK版本中,字符串常量池的存放位置有所差异。

4、不可变性的深远影响

  • 重新赋值字符串变量时,需要指定一个新的字符串常量位置,不能在原位置进行修改。
  • 进行字符串拼接时,需要开辟新的空间来保存结果。
  • 使用replace方法替换字符时,也需要新的空间来保存修改后的字符串。
public class StringDemo {

    public static void main(String[] args) {
        StringDemo s = new StringDemo();
        s.test2();
        s.test3();
    }

    public void test2() {
        String s1 = "hello";
        String s2 = "hello";

        s2 = "hi";
        s2 += "world";
        System.out.println(s1);  // 输出: hello
        System.out.println(s2);  // 输出: hiworld
    }

    public void test3() {
        String s1 = "hello";
        String s2 = "hello";

        String s3 = s2.replace('l', 'o');
        System.out.println(s1);   // 输出: hello
        System.out.println(s2);   // 输出: hello
        System.out.println(s3);   // 输出: heooo
    }
}

5、实例化String的途径

可以通过直接赋值或使用new关键字来实例化String对象。

public class StringDemo1 {
    public static void main(String[] args) {
        StringDemo1 s = new StringDemo1();
        s.test1();
    }

    public void test1(){

        String s1 = "hello";
        String s2 = "hello";

        String s3 = new String("hello");
        String s4 = new String("hello");

        System.out.println(s1 == s2);  // 输出: true
        System.out.println(s1 == s3);  // 输出: false
        System.out.println(s1 == s4);  // 输出: false
        System.out.println(s3 == s4);  // 输出: false

        System.out.println(s1.equals(s2));  // 输出: true
        System.out.println(s1.equals(s3));  // 输出: true
        System.out.println(s1.equals(s4));  // 输出: true
        System.out.println(s3.equals(s2));  // 输出: true
    }
}

6、字符串拼接的艺术

- 常量与常量的拼接结果存储在字符串常量池中。

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4605.html

(0)
LomuLomu
上一篇 2024 年 12 月 28 日
下一篇 2024 年 12 月 28 日

相关推荐

  • SpringMVC-08-拦截器

    1、拦截器概述 在SpringMVC框架中,处理器拦截器扮演着与Servlet过滤器(Filter)相似的角色,它们负责对处理器(Handler)进行预处理和后处理。开发者可以自定义拦截器以实现特定的业务需求。 过滤器与拦截器的主要区别: 过滤器 是servlet规范的一部分,适用于任何JavaWeb项目。 通过在url-pattern中配置/*,可以对所有…

    未分类 2024 年 12 月 24 日
    21500
  • 最新IDEA 2024激活破解教程,附IDEA激活码

    引言 在现代软件开发中,集成开发环境(IDE)是不可或缺的工具,特别是对于Java程序员来说,选择一个高效、智能的IDE至关重要。IntelliJ IDEA作为JetBrains公司推出的旗舰产品,以其强大的功能和卓越的用户体验,成为众多Java开发者的首选。 给大家整理了IDEA永久激活码,IDEA破解教程,需要的直接浏览器访问: docs.qq.com/…

    未分类 2024 年 7 月 31 日
    1.8K00
  • Intellij IDEA激活破解教程(IDEA激活破解码)

    IntelliJ IDEA 是业内公认的高级 Java 集成开发环境,被许多专业人士视为 Java 开发的首选工具。此篇指南将引导您使用脚本方法免费激活 IntelliJ IDEA 和 Jetbrains 其他产品,适用于 2021 年及以后的版本,包含最新版本。 安装过程 您可直接在 JetBrains 官方网站获取 IntelliJ IDEA 的最新版本…

    未分类 2024 年 7 月 10 日
    58600
  • 【创新毕设】基于SpringBoot的校园二手交易系统设计与实现(附源码)支持多语言开发

    目录架构 研究背景与意义国内外研究综述论文框架说明系统可行性论证功能需求解析数据库设计方案核心功能实现系统测试方案 研究背景 在数字经济高速发展的当下,校园内闲置物品流转需求日益增长。传统交易模式存在信息不对称、交易效率低下等问题。本系统采用SpringBoot框架构建,通过线上平台实现二手物品的高效流通,既促进资源循环利用,又能培养学生环保意识。系统支持J…

    未分类 2025 年 5 月 19 日
    33700
  • Java 之生产者和消费者模式详解

    1. 生产者和消费者模式概述 生产者和消费者模式是一种经典的并发设计模式,用于解决生产者和消费者之间数据共享问题。它主要涉及三个角色: 生产者 (Producer) :负责生产数据,例如将数据写入文件、读取数据库数据等。 消费者 (Consumer) :负责消费数据,例如将数据从文件中读取出来、对数据进行处理等。 缓冲区 (Buffer) :用于存放生产者生…

    未分类 2025 年 1 月 6 日
    27400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信