Java--String类

Java–String类

  1. String类声明为final,不能被继承
  2. String类实现了serializable接口,表示字符春是支持序列化的
  3. String类实现了comparable接口,表示String类可以比较大小
  4. String内部定义了final char【】value 用于储存字符串数据
  5. String代表不可变得字符序列
  6. 通过字面量的方式(区别于new)给一字符串赋值,此时的字符串值声明在字符串常量池中,字符串常量池中不会存储相同内容的字符串
String str1 = “abc”;
String str2 = “abc”;

此时是
s1==s2
存储地址相同

String不可变的 字符序列

/*
值传递+字符串
String 不可变性
基本数据类型传递的是存储数据
引用数据传递的是地址值
 */

public class StringTest {

        String Str = new String("good");
        char[] ch = {'t','e','s','t'};

        public void  change(String str ,char ch[]){
            str = "test ok";
            ch[0]='b';
        }

        public static void main(String[] args) {
            StringTest ex = new StringTest();
            ex.change(ex.Str,ex.ch);
            System.out.println(ex.Str);//String不可变性
            System.out.println(ex.ch);
        }
    }


String常用方法
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

常用类的转换
String–>char【】: 调用String的toCharArray()
char【】–>String: 调用String的构造器

编码:String–>byte【】:调用String的getBytes()
解码:byte【】–>String:调用String的构造器
编码:字符串–> 字节–>字符串(看得懂–>看不懂的二进制数据)
解码:编码的逆过程,字节–>字符串(看不懂的而进驻数据–>看得懂)
解码时,要求解码使用的字符集必须与编码时使用的字符集一致,否则出现乱码

String,StringBuffy和StringBuilder的使用
String:不可变的字符序列。
StringBuffy:可变的字符序列,线程安全,效率低
StringBuilder:可变的字符序列,jdk5.0新增,线程不安全,效率高

StringBuilder和StringBuffy一些常用的方法
在这里插入图片描述
在这里插入图片描述
StringBufferhe StringBuilder的内存解析
用StringBuffy为例
问题一:System.out.println(sb2.length());
问题2:扩容问题:如果要添加的数据底层数组放不下了,那就需要扩容底层数组
默认情况下,扩容为原来容量的二倍 +2 ,同时,将原数组中的元素复制到新的数组中
指导意义:发开中建议大家使用:StringBuffy(intcapacity)或者StringBuilder(intcapacity)

执行效率:StringBuilder>StringBuffer>String

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值