1.对于类和继承类,如:
public
class
HelloB
extends
HelloA
{
public
HelloB()
{
}
{
System.out.println(
"I’m B class"
);
}
static
{
System.out.println(
"static B"
);
}
public
static
void
main(String[] args)
{
new
HelloB();
}
}
class
HelloA
{
public
HelloA()
{
}
{
System.out.println(
"I’m A class"
);
}
static
{
System.out.println(
"static A"
);
}
}
如执行HelloB b= new HelloB();
执行的顺序为:
父类静态代码块
子类静态代码块
(
父类的非静态代码块
子类的非静态代码块
)(该例子中没有)
父类构造方法
子类构造方法
2.对于i=i++
Java使用了中间缓存变量机制:
i=i++;等同于:
temp=i; (等号右边的i)
i=i+1; (等号右边的i)
i=temp; (等号左边的i)
而i=++i;则等同于:
i=i+1;
temp=i;
i=temp;
i=i++;等同于:
temp=i; (等号右边的i)
i=i+1; (等号右边的i)
i=temp; (等号左边的i)
而i=++i;则等同于:
i=i+1;
temp=i;
i=temp;
即如有int i=0;
i=i++;
System.out.println(i)的话,会输出0
3.关于classLoader
引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的
扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。
系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类
tomcat为每个App创建一个Loader,里面保存着此WebApp的ClassLoader。需要加载WebApp下的类时,就取出ClassLoader来使用
均正确