String字符串

String的本质是char数组

private final char value[];

默认数组长度是0

StringBuilder

线程不安全

本质是char数组

char[]value

默认数组长度是16

增长时int newCapacity =value.length * 2 + 2;

StringBuffer

线程安全

char[]value

默认数组长度是16

增长时int newCapacity = value.length * 2 + 2;

String占用字节数

Char c = “我”;//占用2个byte字节

String str = “我”;

byte [] bytes = str.getByte();

byte长度是3而不是2

因为str.getBytes(encoding)是获取指定编码的byte数组,通常GBK是2个字节,utf-8是3个字节。如果不指定,则去默认的encoding。

关于分隔

StringTokenizer(字符串分隔解析器,默认分隔符:空格、回车、Tab)

Token被分隔字符串中的一块,两端有分隔符

对象个数

String在方法区中有一个字符串池(常量)。每次都会在池中搜寻一次。

Stringa = “abc”; 如果池中有,则直接用池中的,如果没有在池中新建一个

所以String a = new String(“abc”);会建立两个对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值