类内部有类
方法(局部)内部类
可以定义非静态的属性和方法,可以定义静态常量
可以被final和abstract修饰
不能被访问权限修饰符修饰
可以继承和实现
可以拿到外部类的所有属性和方法
只能拿到本方法中的常量–final修饰
在jdk1.8以前需要手动添加final—显式常量
jdk1.8后底层默认添加
成员内部类
可以定义非静态的属性和方法以及静态常量
可以被访问权限修饰符以及final,abstract·修饰
可以继承和实现
可以拿到外部类的所有属性和方法
静态内部类—
static只有在内部类才修饰类
可以定义所有属性和方法以及静态常量
可以被访问权限修饰符以及final,abstract·修饰
可以继承和实现
可以拿到外部类的所有属性和方法
匿名内部类
主要适用与方法的重写
所有能被继承的
A.B.i-----
A可能是对象,B可能是属性,i是B的属性;
A可能是类,B可能是静态属性,i是B的属性;
A是外部类,B是静态内部类,i是静态属性
接口内部有类
内部接口都是静态
声明包–package位置 只有一个且在首行
导入包–import 其他类的位置 导入和本类不在一个包下的类
可以有多个导入包 可以多个
*通配符,但是只能匹配一级的类
java—java原生包
lang—核心类,都不需要导包,就是在程序启动时会把lang包下的所有内容加载到方法区内
util–提供大量的操作对象和类的工具包
applet–小型应用程序—迁移网页
awt–图形界面
beans–类
io—数据流
Math–提供了简单的数学运算
net–网络
nio—分布式
security–安全
sql–操作数据库
text–格式化
time–时间和日期
javax–java的扩展包
org–第三方提供的包
垃圾分代回收机制
栈–代码的执行 用完就立即清除
方法区—类的信息
堆—无用对象在某个时间进行回收—针对的是堆
java中规定相应数据就要占用固定的内存 C语言占用内存不固定,java程序员控制不了内存管理
int i=1;
int k=10;
在程序刚启动的时候,会有GC(Garbage Collector垃圾回收器)会自动检测堆内存的使用情况,一旦发现内存的
使用率超过0.7(默认)就会通知系统进行垃圾回收
100 75 50