您的位置:首页 > 编程语言 > Java开发

java学习笔记15

2014-09-16 20:50 288 查看
1、String类的特点

“abs”一加双引号就变成对象了,注意字符串是字符串类的一个对象,一旦被初始化,就不会被改变了。 内存中有个字符串池,当没有的时候就重新new一个字符串,有相同的字符串的时候就不在创建新的了,而是直接把已有的字符串的引用返回给字符串类变量。





索引时字符串第一个角标为0





5、中文在java是占2个字节,本质也是数字,由于最高位是1,所以显示为负数。



String.valueOf()





s是在字符串常量池中的,s.intern()返回的是abc在常量池的地址给s2,s3是在堆中new出一个abf,而s3.intern()则是因为s3的abf字符串不在字符串常量池中,所以在字符串常量池中又生成一个abf字符串,并将这个常量池中的abf字符串返回给s4,所以s3和s4的引用是不同的。

9、字符串数组比较大小



10、子串出现的次数



第一种查找子串的方法会在字符串常量池中产生很多新的字符串,所以不太好,建议第二种。第一种方法每次变化的是str,第二种方法每次变化的是index。

11、查找两个字符串中的最大子串





12、去除两端的空白

写一个类似trim()的方法去掉字符串前面和后面的空格



13、java中String的valueOf(。。。)方法就是把传入的各种参数转换为字符串,所以这个方法的返回值都是字符串。



17、StringBuff

StringBuffer是字符串缓冲器,是容器的一种,用来存放数据。支持存放很多类型。你想用存进去的数据,都要把存进去的数据转为字符串(自动转为),所以输出字符串缓冲区对象时,输出的都是字符串。





sb.append(4)返回的还是字符串缓冲器对象,所以还可以继续调用append。字符串数组是固定大小的,但是字符串缓冲区对象的大小是可以变化的。





19、可变数组长度的原理:



StringBuffer的构造方法,如果知道要放入数据的大小,事先指定好大小,比默认16个字符的这种做法效率要高。



StringBuffer内部其实还是数组容器的原理,只不过是可变大小的,怎样做到的?

当容量不够时,把长度翻倍,把旧的数据遍历copy到新的数组中去,把之前放不下的数据接着老数据放在新数组中。

12、StringBuffer与StringBuilder的异同





13、StringBuilder的练习





方法1比方法2好,因为方法二每一次都生成一个新的不同的字符串放在字符串常量池中,比较耗空间,而第1种方法则是把数组中的所有元素都装进StringBuilder中,一次性转为数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: