一.API
API目的是提供应用程序与开发人员基于某软件可以访问的一些功能集
API是一种通用功能集,有时公司会将AP作为其公共开放系统,也就是公司制定自己的系统接口标准,公司所有成员都可以通过该接口标准调用源代码
二.Object
1.概念
Object类是所有java的祖先,也就是我们说的顶级父类
它存在于java.long.Object这个包不需要我们手动导包
需要注意的是:每个类Object作为超类,所有对象(包括数组)都实现这个类的方法
在不明确超类的情况下,java会自动把object作为定义类的超类
2.常用方法介绍
toString()
本方法用于返回对应对象的字符串表示
hashCode()
本方法用于返回对应对象的哈希码值
有时候会出现不同对象哈希码值相同的情况,我们称为哈希碰撞
equals()
本方法用于指示其他某个对象是否与当前对象相等
二.String
1.特点
String是一个封装char【】数组的对象,字符串不可变
2.创建String对象的方式
方式一:
String(char【】 value)分配一个新的String,使其表示字符数组包含的字符序列
方式二:
String str=“abc”
- 如果是第一次使用字符串,java会在字符串堆中常量池创建一个对象。
- 再次使用相同的内容时,会直接访问堆中常量池中存在的对象。
三.StringBuilder/StringBuffer
1.特点
1.封装的char数组
2.是可变的字符序列
3.提供了一组可以对字符内容修改的方法
4.常用append()来代替字符串做字符串连接“+”
5.内部字符数组默认的初始容量是16:super(str.length()+16)
6.如果大于16会尝试将扩容,新数组大小原来的变成2倍+2,容量如果还不够,直接扩充到需要的容量大小。int newCapacity = value.length * 2 + 2;
7.StringBuffer 1.0 出道线程安全,StringBuilder1.5 出道线程不安全
四.==和equals的区别
1.当用==比较时,如果想比较的两个变量是引用类型,那么比较的是两者物理地值,
如果想比较的两个变量是数值类型,那么比较的是数值是否相等
2.当使用equals()方法进行比较时,比较结果实际上取决于equals()方法的具体实现
五.StringBuilder和StringBuffer的区别
1.在线程安全上:
StringBuffer是旧版本提供的 是安全的
StringBuider是jdk1.5后产生,线程不安全
2.在执行效率上StringBuilder>StringBuffer>String
3.源码体现:本质上都是在调用父类抽象类AbstractStringBuilder来干活,只不过Buffer把代码加了同步关键字,使得程序可以保证线程安全问题