java.exe是JVM,执行编译好的文件
javadoc.exe是用来制作Java文档的
jdb则是Java调试的工具
以下代码执行的结果显示是多少( )?
public class Demo {
class Super {
int flag = 1;
Super() {
test();
}
void test() {
System.out.println("Super.test() flag=" + flag);
}
}
class Sub extends Super {
Sub(int i) {
flag = i;
System.out.println("Sub.Sub()flag=" + flag);
}
void test() {
System.out.println("Sub.test()flag=" + flag);
}
}
public static void main(String[] args) {
new Demo().new Sub(5);
}
}
这里出错的一个问题是,我想到了父类的构造函数被调用了,里面有个test()方法,我认为调用的是父类的test()因为必须是从父类的构造函数中调用的,没想到调用的还是子类的test()方法,所以说,只要没有显式的调用父类方法的情况下,一定是优先使用子类方法的,无论是在哪里进行调用的。
this表示的是当前在运行的对象,所以static和this是不能混一起用的。而第一个选项虽然有点奇怪,但是其实是没问题的,虽然他访问的是private的值,但是实际上因为这是在同一个类里访问的,所以是完全没问题的。
下面代码输出是?
double d1=-0.5;
System.out.println("Ceil d1="+Math.ceil(d1));
System.out.println("floor d1="+Math.floor(d1));
ceil:获取大于等于当前值的整数
floor:获取小于等于当前值的整数
解释一下StringBuffer,他也是被Final所修饰的,所以引用地址不能被修改,但是内部的字符数组不是被Final所修饰的,所以他是可以修改字符的。