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



