JAVASE笔记20210105
1、接口
(1)面向接口编程
(2)什么是接口:接口是特殊的抽象类,接口中全部都是抽象方法
(3)接口的定义公式:(interface)
[访问修饰符] interface 接口名{
//抽象方法 + 常量
}
备注:访问修饰符 一般都用:public、default
(4)如何实现接口:implements
public class 子类 implements 接口1,接口2,...{
//-重写接口中所有的抽象方法
}
(5)接口支持多实现,弥补类单继承的缺点
(6)接口中只能包含两部分:
①抽象方法
1)Abstract关键字可以省略
②静态常量
1)Public static final 可以省略
(7)接口中没有构造方法
(8)接口可以继承接口,类可以实现接口,类可以继承类
(9)接口不能直接被实例化,想使用接口,只能通过子类进行实现
(10)案例:
2、接口 与 抽象类 的区别
(1)抽象类中可以有抽象方法 和 非抽象方法,而接口中只能有抽象方法
(2)抽象类中有构造方法,而接口中没有构造方法
(3)接口与接口之间是多继承,类与类之间是单继承
(4)接口中只能有 抽象方法 和 常量,类中包含的内容比较多
3、String
(1)String字符串类型,属于引用数据类型
(2)Java中字符串是用双引号引起来
(3)Java中字符串是存储在JVM的方法区的字符串常量池中
①为什么存储在字符串常量池中,因为字符串在开发中使用频率最高
(4)案例:==》分析字符串在内存中如何存储
(此处str_1指向的应该是“abc”,str_2指向的应该是"bcd")
(5)字符串常见面试题(3个对象:new两个对象,hello一个对象)
4、StringBuffer
(1)问题:String字符串拼接或链接时,会大量浪费内存空间
(2)StringBuffer类似于String的字符串缓冲区
(3)StringBuffer 会默认创建字符数组,默认长度16,当追加的内容超出16的长度,则StringBuffer会自动扩容
(4)StringBuffer 追加内容:append()
(5)StringBuffer 是线程安全的,可以进行多线程使用
5、StringBuilder
(1)操作和StringBuffer都一样
(2)不同的是:
①StringBuffer是线程安全的
②StringBuilder是线程不安全的
6、包装类、自动拆装箱
(1)基本数据类型与引用数据类型之间的转换
(2)在泛型中不能使用基本数据类型,必须使用基本数据类型的包装类
(3)整理:
①byte java.lang.Byte
②short java.lang.Short
③int java.lang.Integer
④long java.lang.Long
⑤float java.lang.Float
⑥double java.lang.Double
⑦boolean java.lang.Boolean
⑧char java.lang.Character
7、常用类
(1)日期类型
(2)日期格式
(3)数字格式化
(4)随机数
(5)等
8、异常
(1)什么是异常
(2)异常的作用:增强程序的健壮性
(3)处理异常的方式
①捕获异常
②抛出异常
③自定义异常
(4)异常的结构(分类)
(5)异常处理方式=》异常捕获:(在方法中使用)
定义公式:
try{
//-有可能出现异常的代码块
}catch(异常的类型){
//-出现异常的处理方式
}finally{
//-最终、最后都要被执行的
// 资源释放、流的关闭
}
(6)异常对象的常用方法:例如:exception
①getMessage()
1)获取错误信息的简单描述
②printStackTrace()
1)打印异常追踪的堆栈信息
(7)异常处理方式=》throws
①throws 用到方法上
②作用:将 方法中有可能出现的异常,进行抛出
(8)异常处理方式=》throw (用在方法体内)
①抛出异常对象,可以是自定义的异常对象,也可以是jdk提供的异常对象
1)例如:throw new Exception();
②异常也是类,也可以生成对象
(9)自定义异常(较少使用)
①创建类,类需要继承Throwable 或者 Exception
②重写有参的构造方法
1)重写message 提示信息
9、集合
(1)什么是集合
①集合理解为容器,存储数据的容器
②数组可以理解为集合
(2)为什么有数组,还需要集合?
(3)集合中不能存储基本数据类型
(4)集合中存储的是对象或数据的引用
(5)Java集合的分类:
①Collection:线性集合
②Map:非线性集合
(6)Collection 继承结构图
(7)Map 继承结构图
10、Collection接口
(1)集合:与泛型结合使用
(2)作用:数据的载体
(3)Collection如何使用?
①Collection接口,是一个其实现类(ArrayList)
②Collection c = new ArrayList();
(4)Collection接口中常用的方法:
①boolean add(E e)
②int size()
③void clear()
④boolean remove(Object o)
⑤Object[] toArray()
⑥boolean isEmpty()
⑦boolean contains(Object o)
⑧Iterator iterator() =>遍历(可以使用 foreach)
案例:
11、List接口
(1)List集合存储元素特点:有序、可以重复
①有序:list集合中的元素是有下标,下标从0开始,以1递增
②可以重复:集合中可以存储重复的数据
(2)List是collection子接口,list会有自己“特有”的方法
①void add(int index,E element)
②E get(int index)
③int lastIndexOf(Object o)
④E remove(int index)
⑤E set(int index,E element)
⑥Iterator iterator()
(3)注意:
①remove(1) 指的的删除下标为1的数据,如果删除集合中数值1的内容,应该:remove(new Integer(1))
(4)List:遍历方式
①For
②Foreach
③iterator
(5)案例
(6)ArrayList 集合:List 子类
①ArrayList默认创建的集合容量 10
(7)LinkedList 单向链表
①特有方法
1)void addFirst(E e)
2)void addLast(E e)
3)等
②实现原理
12、Set集合
(1)特点:无序唯一
(2)主要方法的使用
①与collection接口里的方法类似
(3)Set遍历方式
①Foreach
②Iterator
(4)HashSet、TreeSet
(5)Set里面存储的数据唯一,如何判断存储数据的唯一?
①String类型 与 基本数据类型,自动判断
1)String类重写了 equals与hashcode方法
②自定义数据类型如何判断数据的唯一?
1)自定义数据类型,必须重写equals 与 hashCode方法
a.要求:如果两个对象相同,则equals返回true,否则返回false
b.要求:如果两个对象相同,则hashCode返回的数据相等
(6)案例:
本文地址:https://blog.csdn.net/yishangbing/article/details/112252452
上一篇: java学习--静态变量以及静态方法
下一篇: 算法--有序数组的平方(977)