b站黑马Java就业班笔记P201-P300

Java笔记3

P201

如果一个事物内部包含另一个事物,则一个类包含另一个类

  1. 成员内部类
  2. 局部内部类

内用外随意访问,外用内需要内部类对象

P203

如何使用成员内部类

  1. 间接方式:在外部类的方法中使用内部类,main只是调用外部类的方法
  2. 直接方式:类名称 对象名=new 类名称() 外部类名称.内部类名称 对象名=new 外部类名称().new 内部类名称()

P205

如果一个类定义唉一个方法内部,这个类就是局部内部类

局部只有当前所属的方法才能使用,出了这个方法就不能用了

public>protected>default>private

定义一个类的时候权限修饰符规则:

  1. 外部类 public/default
  2. 成员内部类:public/protected/default/private
  3. 局部内部类:什么都不能写

P206

局部内部类如果希望访问所在方法的局部变量,那么这个局部变量必须是有效final的(Java8开始,final可以省略不写)

原因:new出来的对象在堆内存中,而局部变量是在栈内存中,方法运行结束立刻出栈,局部变量就会消失。但是new出来的对象在堆中持续存在直到垃圾回收

P207

如果接口的实现类或者是父类的子类只需要使用唯一一次

这种情况下可以省略该类的含义,使用匿名内部类

接口名称 对象名=new 接口名称() {

//覆盖重写所有的抽象方法

};

P208

  1. 匿名内部类在创建对象的时候只能使用唯一一次,如果希望多次创建对象,且类的内容一样的话,就必须用单独定义实现类了
  2. 匿名对象在调用方法的时候只能调用唯一一次,如果希望同一个对象调用多次方法,必须给对象起个名字
  3. 匿名对象类省略了实现类/子类,匿名对象省略了对象名称

P216

  1. 引用数据类型比较的是两个对象的地址
  2. 基本类型比较的是值

P218

Objects类的equals对两个对象进行比较,防止空指针异常

P219

Object介绍

  1. Object是所有类的父类,一个类会直接或者间接的继承自该类

toString作用

  1. 打印对象信息。
  2. 重写前打印包名类名@地址值
  3. 重写后打印的是对象中的属性值

equals作用

  1. 比较
  2. 重写前比较的是对象的地址
  3. 重写后比较的是对象中的属性值

Objects的equals方法

比较两个对象是否相同,加了一些健壮性判断

P222

DateFormate类

作用:

格式化(日期—>文本),解析(文本---->日期)

成员方法:

String formate(Date date) //按指定格式把Date日期转化字符串

Date parse(String source) //符合模式的字符串解析成Date日期

P229

  1. String类是字符串常量,他们的值在创建之后不能改变,底层是final修饰的数组,是一个常量
  2. StringBuilder类是字符串缓冲区,可以提高字符串操作效率,底层是数组,但没有final修饰,可以改变长度

P230

StringBuilder类是字符串缓冲区,可以提高字符串的效率

P232

String------>StringBuilder 用StringBuilder的构造方法

StringBuilder------->String 用StringBuilder中的toString

P233、P234、P235

包装类

基本数据类型没有方法来操纵,可以使用一个类把数据包装起来,操作基本数据类型

装箱:把基本类型的数据包装到包装类中(构造方法)

拆箱:在包装类中取出对应类型的数据

自动装箱与拆箱:基本类型的数据和包装类之间自动相互转换

P236

基本数据类型-------->字符串

  1. 包装类中的静态方法
  2. String类中的静态方法 toString
  3. 返回int参数的字符串表示形式 valueOf

字符串-------->基本数据类型

使用包装类的静态方法parsexx

Integer类:static int parseInt

Double类: static double parseDouble

P238

集合:java中提供的一种容器,用来存储多个数据

数组的长度固定,集合的长度可变

数组存储同一类型的元素,集合存储对象,对象的类型可以不一致

P260

List接口特点:

  1. 有序集合,存储和取出元素的顺序是一致的
  2. 有索引,包含了一些带索引的方法
  3. 允许存储重复的元素

List接口中的方法:

add

get

remove

set

注意:操作索引时防止越界

P261

LinkedList

List接口的链表实现

LinkedList特点:

  1. 底层是链表结构。查询慢,增删快
  2. 里面包含大量操作首尾的操作
  3. 使用LinkedList特有的方法,不能使用多态

方法

addFirst

addLast

push

getFirst

getLast

removeFirst

removeLast

pop

isEmpty

P264

set接口继承了collection接口

Set特点:

  1. 不允许重复元素
  2. 没有索引,也没有索引方法,也不能拿使用普通的for循环遍历

HashSet特点:

  1. 不允许存储重复元素
  2. 没有索引,也不能用普通for循环遍历
  3. 无序集合,存储顺序和取出顺序可能不一致
  4. 底层是哈希表

P265

哈希值是十进制的整数,由系统随机给出,是对象的逻辑地址值

hasHashCode返回对象的哈希值

HashSet是数组+红黑树/链表的结构

P269

LinkedHashSet底层是哈希表+链表

HashSet无序不允许重复,LinkedHashSet有序,不允许重复

P270

  1. 一个方法只能有一个可变参数
  2. 如果有多个参数,可变参数要放在参数列表的末尾

P272

comparable接口的排序规则

  1. this-参数 升序
  2. 参数-this 降序

P273

comparable和comparator的区别:

  1. comparable:自己this和别人比较,需要自己实现comparable接口,重写比较的规则compareTo方法
  2. comparator:相当于找一个第三方的裁判

P274

Map特点:

  1. Map是双列集合,一个集合包括key和value
  2. Map集合中的元素key和value的数据类型可以相同,也可以不同
  3. key不能重复,value可以重复
  4. key和value一一对应

HashMap特点:

  1. HashMap集合底层是哈希表,查询速度快
  2. HashMap无序集合,存储和取出的顺序可能不一致

LinkedHashMap特点:

  1. LinkedHashMap底层是哈希表+链表
  2. 有序集合,存储和取出的顺序是一致的

P279

Hashtable底层是哈希表,是一个线程安全的集合,速度慢

HashMap集合底层是哈希表,线程不安全的集合,速度快

HashMap可以存储空值空键,Hashtable不能存储空值空键

P285

Debug

f8:逐行执行程序

f7:进入到方法中

shift+f8:跳出方法

f9:跳到下一个断点,没有下一个断点就结束程序

ctrl+f2:退出debug模式,停止程序

console:切换到控制台

P289

Exception:编译器异常,进行编译java代码出现问题

RuntimeException:运行期异常,java程序运行期出现的问题

Error:错误,必须修改源代码程序才能继续执行

P293

throws:

当方法内部抛出异常对象时我们必须处理这个异常对象

使用throws关键字处理异常对象会把异常对象声明抛出给方法调用者处理,最终交给JVM处理

throws关键字必须写在方法声明处

throws关键字后边声明异常必须是exception或者exception的子类

方法内部如果出现了多个异常对象,throws后面也必须声明多个异常,如果有父子类关系,声明父类异常即可

调用了一个声明抛出异常的方法,必须处理声明的异常。要么throws抛出异常交给JVM处理,要么try catch自己处理

P295

Throwable类中定义了3个异常处理的方法

getMessage

toString

printStackTrace

P296

finally,无论是否出现异常都会执行

注意:

  1. finally不能单独使用,不许和try一起使用

  2. 一般用于资源回收,无论程序是否出现异常,都要资源回收

try{

//可能会产生异常的代码

}catch(){

//异常处理逻辑

}finally{

//无论是否出现异常都会执行

}

一个try多个catch的注意事项:

catch里面定义的异常变量如果有子父类关系,先写子类在写父类

如果finally里面有return语句,返回的永远都是finally里面的return语句

猜你喜欢

转载自blog.csdn.net/alike_meng/article/details/107694538