字符串:String,StringBuilder,StringBuffer
String: 底层是char[],长度不可变(追加字符时,会重新开辟空间存储),实现了Comparable接口
创建原理:
1. 无论以何种方式创建String字符串,jvm首先会去查找String字符串缓存池是否存在相同的内容
2. 使用new创建对象或包含变量的表达式创建String对象(除被final修饰的变量)时,都会在堆或栈区开辟空间。(运行期)
3. 使用直接指定或者使用纯字符串串联来创建String对象,无论String缓冲池是否存在相同内容,都不会在堆栈区开辟空间。
equal方法:重写父类Object的equal方法,仅比较字符串的内容是否相同,不比较地址。
intern方法:在运行期动态的在方法区创建对象,先去String池中去找是否有相同内容的,如果有直接引用,否则再池中新增.
spilt方法: 分割字符串,如果字符串中没有指定的分隔符,则返回String[]{原字符串}
StringBuilder/StringBuffer: 默认分配16个字符长度,长度可变,继承AbstractStringBuilder类。
StringBuilder:异步,效率高
StringBuffer:同步线程安全
三者比较:三者均被final修饰不可被继承,StringBuilder 效率高,耗时最短
效率:StringBuilder > StringBuffer > String
字符串处理类:StringTokenizer 字符串分隔解析:
默认分隔符:“空格”,“制表符(‘\t’)”,“换行符(‘\n’)”,“回车符(‘\r’)”。
常见方法:
nextToken():返回当前位置到下一个分隔符之前的字符串。
countTokens():分隔符总量
Math:数字工具类
产生随机数:Math.random()[0,1)之间的随机数
Random:专业生产随机数
new Random(可指定随机数范围).nextXxx(可指定随机数范围)
网友评论