一、字符串:在java中将与字符串有关的内容面向对象了,形成的类叫String,字符串表示的方法--""
二、分两类:对于字符串整体有两个地方可能会发生变化:1.引用的指向 2.字符串本身
1.不可变字符串:String:说的是字符串本身没有发生变化,与引用无关
2.可变字符串:StringBuffer/StringBuilder:说的是字符串本身发生了改变,与引用无关.
三、字符串常量的保存位置:放在了常量区,常量区可以认为是堆区中一块儿特殊的区域.
常量的特点:同一个名字的字符串在内存中只允许存在一个.
四、==和equals()方法:
①“==”比较两个字符串的地址
②equals()比较的是内容:对object方法的重写
- public boolean equals(Object anObject) {
- if (this == anObject) {
- return true;
- }
- if (anObject instanceof String) {
- String anotherString = (String) anObject;
- int n = value.length;
- if (n == anotherString.value.length) {
- char v1[] = value;
- char v2[] = anotherString.value;
- int i = 0;
- while (n-- != 0) {
- if (v1[i] != v2[i])
- return false;
- i++;
- }
- return true;
- }
- }
- return false;
- }
五、String常用的方法:
1. contains();
2.equals();
3.equalsIgnoreCase();
4.startsWith();
5.endsWith();
6.String(char[] value);
7.String(char[] value, int offset, int count);
8.static String copyValueOf(char[] data);
9.String(byte[] bytes);
10.String(byte[] bytes, int offset, int length);
11.String.valueOf();
12.String replace(char oldChar, char newChar);
13.String substring(int beginIndex) ;
14.String trim() ;
15.String[] split(String);
六、可变字符串:
1.StringBuffer(jdk1.0):可变字符串,本身是可变的.与引用无关.是线程安全的,要考虑 线程安全问题.
2.StringBuilder(jdk1.5):可变字符串,本身是可变的.与引用无关.是线程不安全的,不 需要考虑线程安全问题.
3.区分: 在不考虑线程安全的前提下尽量使用StringBuilder,因为他的效率更高,速度 更快
七、方法的使用:
八、包装类:
简单数据类型 包装类
* byte Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* boolean Boolean
* char Charactor
*
作用:1.可以更加方便对简单数据类型的操作
* 2.可以方便实现简单数据类型与字符串之间的转换
* 3.便于在集合中存储
注意:只有数值型的字符串才能转成简单数据类型,否则报异常 NumberFormatException