1. date
2. integer
3. properties
4. string
a. 是Java中表示字符串的一种类型,但是是我们运用最多的一种字符串类型
b. 所有的输入输出都是真的字符串,类型的变化是程序内部的需要。
c. 因为string是用的最多的数据类型,所有Java中有许多针对他的特殊设计
i. 语法上
1. 他是一个可以直接赋常量值的引用数据类型
2. string 常量在类型中有特殊常量
a. string 常量是对象。可以点 . 出来
b. string 常量在加载期即放入内存中(数据段的字符串常量池)
c. new 的在堆 ,局部变量在栈
d. String 对象内容不可变 ,对String对象做任何内容改变都是得到一个新的String对象
e. String提供了非常丰富的API
i. String与字符数组相关的操作
ii. String与比较相关的操作
1. 。toUpperCase() 把String 转为大写
2. 。toLowerCase()把String转为小心
3. 。replace ('l','L')把String 中的某个字符换成另外的字符
4. 。replaceAll()根据郑则表达式进行替换
5. ().contains() ---查看一个字符串是否在另一外一个字符串当中---在输出中打印
iii. 3个特殊方法
1. .trim()--去掉字符串前后的空格
2. matches()---正则表达式(regex)
a. 用来规定一个字符串样式的模板,其它本身也是字符串形式---任何一个字符串都是一个正则表达式
b. 掌握3中正则表达式就是3个括号
i. 方括号 [ ] 一个方括号表示一个字符 里面写上字符允许的符号
ii. 花括号 { } 表示次数 表示前面表达式重复的次数
iii. 圆括号 () 表达式1 | 表达式2 | 表达式3 。。。。。可选 的意思.....
3. split()--字符串拆分--
a. 如果以分隔符开头,会正常拆分,如果已分隔符结尾,则最后面不会拆分
b. 分隔符可以用正则表达式表示
iv. 当需要操作到大量的字符串拼接时,String 就会对性能产生影响
5. String Builder
a. 是JDK 中提供的字符串类型,专门用来解决内容不可变的问题,它与String 没有任何继承关系
b. String Builder不能 够进行+号的字符串拼接,只能支持它自己的方法
c. .append (“ ”) 在尾部进行拼接
d. . insert(数字几的位置,“ ”) 在中间进行拼接
e. 当我们做大量的String 的拼接的时候,会出现性能消耗
f. String Builder 是线程不安全的,没有同步动作,效率相对较高
g. 线程安全性问题,只会在多线程的特殊情况下才会出现(不是说多线程一定会出现),所以没有安全问题的多线程情况或单线程情况优先使用String Builder
(String 内容不可变)因此,我们选择内容可变的String Builder
6.String Buffer
String Buffer 也跟 String Builder 一样,内容可变,用来解决String 拼接的问题
两个提供的API 都是一摸一样的。
String Buffer 是线程安全,凡是线程都是安全的,但由于同步动作,导致效率低,