Java八股文2024(基础篇)---- String类详解

1、String类源码

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {}

从源码上可以看到 String类是通过final修饰的,先浅聊一下final,用final修饰的类表明他是最终类,不能被继承,并且类中的所有属性和方法都默认是final修饰。

什么是String字符串?

如果直接按照字面意思来理解就是多个字符连接起来组合成的字符序列。 

1,String字符串是使用一对“”引起来表示;

2,String 用final表示,不可以被继承;

3,字符串的字符使用Unicode编码,一个字符(不区分字母还是汉字)都占两个字节;

4,String实现了Serializable:表示字符串是支持序列化的 表示可以在网络上传输;实现了Comparable接口,表示可以比较大小;

5,String类内部定义了 final char[] value 用于存储字符串数据;value是一个final类型,不可以修改;即value不能指向新的地址,但是单个字符内容是可以改变的;

6,String代表不可变的字符序列,简称不可变性;

7,当对字符串重新赋值的时候,需要重新指定内存区域赋值,不能使用原有的区域进行赋值;当对现有的字符串进行连接操作时,也需要重新指定区域进行赋值,不能使用原有的区域进行赋值;当调用String replace()修改指定字符或字符串时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值;

1.1、String类是final修饰的,使得它是一个不可变字符串 

不可变的字符串:当字符串对象创建完毕之后,该对象的内容(上述的字符序列)是不能改变的,一旦内容改变就会创建一个新的字符串对象;

2、String对象的创建:

方式一:通过字面量赋值创建,String s1 = “laofu”; 需要注意这里是双引号:“”,区别与字符char类型的单引号:‘’;

方式二:通过构造器创建, String s2 = new String(“laofu”);

2.1、String类的构造方法有很多 

 2.2、常用的构造方法

   void StringGouZao(){
        String aa ="aa";
        System.out.println(aa);
        String bb = new String("bb");
        System.out.println(bb);
        char[] chars = {'a','b','c'};
        System.out.println(chars);
    }

public class Test {
    public static void main(String[] args) {
        String str1 = "hello";
        String str2 = "";
        char[] arr = {'h','e','l','l','o'};
        System.out.println(str1.length());//求字符串度,打印5
        System.out.println(str2.length());//求字符串度。打印0
        System.out.println(arr.length);//主要数组求长度和字符串求长度的区别,一个调用方法,一个调用属性
    }
}

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

学做好人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值