一、java内部类
1、内部类的分类
- 成员内部类
- 静态内部类
- 局部内部类
- 匿名内部类
2、内部类的概念
- 概念:在一个类的内部再定义一个完整的类
class Outer{
class Inner{
}
}
- 内部类是否会生成class文件? 会生成class文件的
- 特点:
-
编译之后可以生成独立的字节码文件
-
内部类可直接访问外部类的私有成员,而不破坏封装
-
可为外部类提供必要的内部功能组件
3、成员内部类
如果要访问外部的话,应该使用这种方法:
-
成员内部类中不能定义静态成员,但是可以定义静态常量
-
当内部类和外部类重名的时候,会优先访问内部类的属性
4、静态内部类
5、局部内部类
定义在方法内部
6、匿名内部类
匿名内部类是有名字的,可以看到下面的class文件中:
(但是名字不是我们取的,是系统给的)
二、Object类
1、概述
位于java.lang包中
2、getClass方法
返回当前对象的实际对象类型
3、hashCode()方法
4、toString()方法
默认的toString方法:
生成toString的idea的快捷键:
alt + insert键,找到toString选项
5、equals()方法
比较的是地址
如果要比内容,需要重写:
6、finalize()方法
重写:
三、包装类
1、概述
基本数据类型所对应的引用数据类型
位于java.lang包中
2、装箱、拆箱
栈中引用,堆中才是数据
栈-》堆 基本类型-》引用类型 装箱
堆-》栈 引用类型-》基本类型 拆箱
自动装箱和拆箱实现机制
3、基本类型和字符串转换
-
基本类型->字符串转换
-
字符串->基本类型转换
-
布尔类型的字符串转化为基本类型:“true”->true 非"true"->false
4、Integer缓冲区
valueof:
四、String类
1、概述
栈中存放基本类型的数据,堆中存放对象,字符串池在方法区中
2、常用方法
案例演示:
3、StringBuffer和StringBuilder 可变字符串
StringBuilder效率高于string