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)案例:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值