应用程序编程接口,就是java自己写好的程序,给程序员调用,方便完成一些功能
API文档:程序使用说明书
是什么?
String是字符串类型,它定义的变量可以指向一个字符串对象
String是不可变字符串
String创建对象的方式
方式一:
直接使用双引号围起来:String name = "黑马";
方式二:
new构造器
构造器
public String();创建一个空白字符串对象,不含有任何内容
public String(String original);根据传入的字符串内容,来创建字符串对象
public String(char[] chs);根据字符数组的内容,来创建字符串对象
public String(byte[] chs);根据字节数组的内容,来创建字符串对象
两种方式的区别:
双引号给出的字符串对象,存在于堆内存中的常量池中,相同形式只会存储一份
new字符串对象,每new一次都会在堆内存中产生一个字符串对象
String常用方法(常用API)
判断字符串内容
背景:==判断字符串对象是判断地址的,这样会引起很多业务问题
必要性:判断字符串,开发中更多时候希望判断内容一样就返回true,不在乎地址是否相同,此时需要用equals方法
public boolean equals(Object anObject);将此字符串与指定对象进行比较,只关心字符内容是否一致
public boolean equalslgnoreCase(String anotherString);将此字符串与指定对象进行比较,忽略大小写比较字符串,只关心内容是否一致
结论:
之后使用字符串进行内容比较,必须使用字符串的equals方法
什么时候==比较:基本类型比较的时候
ArrayList是什么?
一种集合
代表的是一种容器,类似于数组
元素可以重复,元素存在索引
特点:大小可变,类型可以不固定,功能更强大,适合做元素个数不确定,同时存在增删操作的业务场景
如何构建ArrayList的对象
public ArrayList();
ArrayList list = new ArrayList();
ArrayList的常用方法
方法 | 说明 |
---|---|
public boolean add(E e) | 将指定的元素追加到此集合的末尾 |
public void add(int index,E element) | 在此集合中的指定位置插入指定的元素 |
public E get(int index) | 返回指定索引处的元素 |
public int size | 返回集合中的元素个数 |
public E remove(int index) | 删除指定索引处的元素 |
public boolean remove(Object o) | 删除指定的元素,返回删除是否成功 |
public E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
泛型:集合都是支持泛型的
ArrayLIst<E>
约束集合在编译阶段只能操作某种数据类型
ArrayList<String> list = ArrayList<>();
ArrayList<Integer> list = ArrayList<>();
……
注意:集合和泛型都不支持基本数据类型,只能支持引用数据类型
注意:定义集合后都应该采用泛型
问题:就是要什么都存
ArrayList list = new ArrayList<>();
推荐这样写:ArrayList<Object> list = new ArrayList<>();
ArrayList遍历并删除元素:
从前往后遍历删除存在问题:可能后漏删元素
如何解决?
删除元素后,马上后退一步i--就可以了
从后往前遍历,也可以实现
ArrayList存储自定义类型的对象
注意:集合容器存储的每个对象是什么东西?
在堆内存中的地址