Java中的String类

目录

一、String类介绍

二、String类的构造器

三、String类的体系图 

四、创建String对象的两种方式

1、直接赋值

2、调用构造器

3、两种方式的内存布局图

五、String中的常用方法(需要的时候,再上网搜就行)


一、String类介绍

1、String类是干嘛的?

  • String类是lang包下的类,即java.lang.String。
  • 该类的实例对象用于保存字符串,即用双引号括起来的字符序列:"hello", "你好"。
  • 字符串的字符采用Unicode字符编码,一个字符占两个字节(不论是字母还是汉字)。
  • 该类有很多构造器。

2、详细介绍String类

package com.hspedu.Wrapper;

public class String01 {
    public static void main(String[] args) {
        //1.String对象用于保存字符串
        //2.字符串中的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节
        //3.String类有很多构造器,形成构造器的重载
        //4.String类实现了Serializable接口,说明String类可以串行化,可以进行网络传输。
        //5.String类实现了Comparable接口,说明String对象可以进行比较。
        //6.String类是final类,不能被其他的类继承
        //7.String有属性private final char value[];用于存放字符串内容
        //8.注意value是final类型,不可以修改(这里指的是value指向的地址不可以修改,而Value中的字符内容可以修改)
        String name = "jack";
    }
}

3、String类是final类,无法被继承。

 4、String类是在char数组中,保存字符串。注意:该char类型数组是final类型,因此无法修改。(指的是地址无法修改,而非内容,一旦内容更改,该final数组就指向了另一个地址)

二、String类的构造器

该类有很多构造器,下面列举部分:

三、String类的体系图 

 简单解释:1、String类实现了Serializable接口,说明String类可以串行化,可以进行网络传输。2、String类实现了Comparable接口,说明String对象可以进行比较。

四、创建String对象的两种方式

1、直接赋值

String s = "hsp";

流程:

先从常量池中查看是否有"hsp"数据空间,如果有,s直接指向该空间;如果没有则重新创建,然后再指向。不管怎样,s最终指向的是常量池的空间地址

2、调用构造器

String s = new String("hsp");

流程:

先在堆中创建空间,里面维护了value属性,指向常量池中的hsp空间。如果常量池中没有"hsp",重新创建;如果有,直接通过value指向。不管怎样,s最终指向的是堆中的空间地址

3、两种方式的内存布局图

Tips:从上面可以看出String类,每次更新内容都需要重新开辟空间,效率较低,因此java设计者提供了StringBuffer类和StringBuilder类来增强String类的功能,以此提高效率。

五、String中的常用方法(需要的时候,再上网搜就行)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m1m-FG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值