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