常用类:String类、StringBuffer类、StringBuilder类

String类

2.String实现了Serializable接口,表示字符串是支持序列化的
        实现了Comparable,表示String可以比较大小
3.String内部定义了final char[] vaiue用于储存字符串数据
4.String代表不可变的字符序列
        体现:当对字符串重新赋值时,需重写指定内存区域赋值
5.通过字面量的方式给一个字符串赋值,此时的字符串值声明在字符串常量池中

String类的常用方法:添加链接描述

String 与 byte转换

//编码String —> byte
//解码byte —> String
例题

public void test1() throws UnsupportedEncodingException {

        String str = "abc123中国";

        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));//[97, 98, 99, 49, 50, 51, -28, -72, -83, -27, -101, -67]

        byte[] gbks = str.getBytes("gbk");
        System.out.println(Arrays.toString(gbks));//[97, 98, 99, 49, 50, 51, -42, -48, -71, -6]

        System.out.println(new String(bytes));//abc123中国

        System.out.println(new String(gbks));//乱码//abc123�й�
        System.out.println(new String(gbks, "gbk"));//abc123中国

    }
字符串对象是如何存储的
1.常量与常量的拼接结果在常量池,且常量池中不在存在相同内容的常量
2.只要其中有一个是变量,结果就在堆中
3.如果拼接的结果调用intern()方法,返回值就在常量池中

String类、StringBuffer类、StringBuilder类,此三类异同

StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列, 而且
提供相关功能的方法也一样

面试题:对比String、 StringBuffer、 StringBuilder
String(JDK1.0): 不可变字符序列
StringBuffer(JDK1.0): 可变字符序列、效率低、线程安全
StringBuilder(JDK 5.0):可变字符序列、效率高、 线程不安全
注意:作为参数传递的话,方法内部String不会改变其值, StringBuffer和StringBuilder
会改变其值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值