基础API(APPLICATION PROGRAMMIMH INTERFACE)
应用编程接口
一切可以调用的东西
Object
java所有类的顶层父类
一个类如果不继承其他类,默认继承Object
方法
·to String()
获得一个对像的字符串表示,
如果需要,可以在子类重写这个方法
·equals(Object obj)
当前对象与参数对象obj比较是否相等
Object的默认实现是:
用双等号,比较内存地址this==obj
如果要比较对象的属性,可以在子类中重写这个方法。
String
创建String对象
char[] a={‘a’, ‘b’, ‘c’};
String s= new String(a);
第一种创建方式的简化语法
String s =”abcd”;
字符串的字面值
第一次使用字面值时,在“字符串的常量池”中新建对象
再次使用相同的字面值时,直接访问在“常量池”中存在的对象,而不新建
字符串不可变
每次加号连接运算都会新建字符串对象
字符串的加号连接效率低
String s1=”aaa”
String s2=”bbb”
String s3=”ccc”
String s4=s1+s2+s3
String s4=”aaa”+”bbb”+”ccc”
编译器在编译时,把代码优化成:
String 4=”aaabbbccc”
比变量连接要快
字符串的方法
·charAt(i)
取i位置的字符
·length()
字符串长度,字符的个数
·indexOf(字串)
查找第一个子串的起始下标位置
String s=”abcdef”
int index=s.indexOf(“bc”)
如果字串不存在,返回特殊值-1
·indexOf(子串,起始位置)
从指定位置向后查找
·lastindexOf()
从后向前找
·substring(from)
·截取字串[ from,to
StringBuilder & StringBuffer
可变的字符序列
常用来代替字符串,做高效率字符串连接运算
append(数据)追加内容
内部的数组默认初始容量是16
存满,容量翻倍
追加过程不会重复创建StringBuilder对象
新建数组次数非常少,一次次翻倍,容量很容易很快变得很大
StringBuilder和StringBuffer的区别
StringBuilder线程不安全,效率高(多数情况下是单线程环境,不用考虑安全问题)
StringBuffer线程安全,效率低