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中,一次性转为数组。
“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中,一次性转为数组。
相关文章推荐
- 传智博客学习笔记15--JAVA网络编程
- Java中对象的比较 == 和 equals() -Java 学习笔记 (15)
- java 设计模式 学习笔记(15) 组合模式
- 黑马程序员—15—java基础:有关泛型的学习笔记和学习心得体会
- java学习笔记15--多线程编程基础2
- Java学习笔记_15_冒泡排序、插入排序
- 毕向东的Java学习笔记Day 15
- 15. JAVA 反射机制 Part 2(动态代理、类的生命周期、工厂设计模式) ----- 学习笔记
- 黑马程序员_JAVA 学习笔记28 WEB篇15
- java学习笔记—校验码的实现(15)
- Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口
- 【Java学习笔记】基础知识学习15【文本输入】
- Java 学习笔记15:关于web开发中,全局变量的一点想法
- Java并发学习笔记(15)信号量(Semaphore) 关卡((2)CyclicBarrier)
- Java学习笔记15
- 学习笔记15—Java高新技术3
- java学习笔记15--引用传递
- java学习笔记15--引用传递
- Java学习笔记15
- Java学习笔记 11/15:一个简单的JAVA例子