1.内部类
Java的内部类可分为Inner Class(内部类)、Anonymous Class(匿名类)和Static Nested Class(静态内部类)三种:
Inner Class和Anonymous Class本质上是相同的,都必须依附于Outer Class的实例,即隐含地持有Outer.this实例,并拥有Outer Class的private访问权限;
匿名类定义方法:
//例子
Runnable r = new Runnable(){
@override
public void run(){
System.out.println("f**k U MM!");
}
}
Static Nested Class是独立类,无法访问外部类的实例Outer.this,但拥有Outer Class的静态字段、静态方法的private访问权限。
2.classpath
classpath即一个JVM用来决定搜索class的路径和顺序的环境变量;classpath是一组.class文件存储路径的集合。
不推荐设置系统环境变量classpath,建议在启动JVM时,通过-cp命令或-classpath命令传入;
java -cp .:/usr/local/bin xxx.xxx
3.jar包
jar包相当于目录,可以包含很多.class文件,方便下载和使用;
jar包中包含的MANIFEST.MF文件可以提供jar包的信息,如Main-Class,这样可以直接运行jar包,无需在启动JVM时指定启动类。
java -jar xxx.jar
classpath和jar包从一定意义上来说,都是用来告诉JVM去哪里找待执行的字节码文件(.class)。