Strings of Java

Core Java Reading Notes

Strings

java的string本质上是unicode字符序列;java没有内置的string类型,java的string类是定义在java标准库里的;

 

part 1 Substrings

顾名思义,子字符串是从更大的字符串中提取出来的字符串;

String greeting = "Hello";
String s = greeing.substring(0,3);

那么其实字符串提取出来的就是"Hel",很容易理解,字符串从左往右数,从index 0 截取到index 3,包含index 0的元素,但是不包含index 3的元素。左闭右开。

 

part 2 Concatenation

     part2主要讲解java字符串拼接,直接上code进行解释:

String expletive = "Expletive";
String PG13 = "deleted";
String message = expletive + PG13;

      那么其实message它所引用的对象就是"Expletivedeleted";当然,当字符串和数值型变量进行凭借,自动转化为字符串;

 

Part 3 Strings Are Immutable

       java的字符串是不可变的,对于字符串的修改,本质是生成新的字符串;但是要注意的是:Java的编译器,能够统筹,使得某些已有的字符串能够共享,减少内存消耗。举个例子,对于某个字符串变量进行一个拷贝,那么拷贝后的变量和被拷贝的变量其实是引用同一个字符串对象;

 

Part 4 Testing Strings for Equality

       这节内容很简单,主要明白字符串的equals方法和==的区别,equals方法比较的是字符串的值,而==比较的是字符串的地址;

 

Part 5 Empty and Null Strings

字符串为空字符串也就是"",空字符串其实长度为零的字符串对象;但是null string其实是字符串变量没有引用任何字符串对象;

 

Part 6 Code Points and Code Units  

      要理解code point和code unit其实很容易,要明白其实计算机表示文本主要把文本映射成数字,再把数字用对应的比特(byte)表示出来。UTF-8或者是UTF-16指的是一种编码方式。把字符映射成数字,这个数字其实成为code point,那么对code point以utf-16的编码方式进行编码。最小的单元是16位,这个16位或者是两个byte称为一个code unit。

 

 Part 7 Building Strings

这个部分主要讲解是,如果通过很多很短的字符串生成大的字符串,那么是相当的浪费时间和内存,因为小字符串形成目标大字符串的过程中,中间会不断生成字符串。可以形象理解为merge sort的merge 过程,所以在merge成大字符串的过程中,每次的拼接都会形成新的字符串,非常浪费资源。那么使用StringBuilder类就可以避免这个问题;show demo code:

StringBuilder builder = new StringBuilder();
builder.append("c");
builder.append("a");
String completedString = builder.toString();

这里的toString(),是把StringBuilder类型转变为String类型;值得注意是,StringBuilder的前继StringBuffer是支持多线程的。

reference: core java volumn 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值