1.局部变量在使用的时候必须已经被初始化
2.byte b=2,e=3
byte c=b+c; 会编译不通过,应为b+c会自动 类型提升位int 如果想得到 byte c 必须强制转型 byte c=(byte)b+c;
3.final、finally、finalize三者区别
final用来修饰成员变量、方法、或者一个类,修饰变量的时候表示该变量不可以在修改、修饰方法的时候表示该方法不可以被子类重写、
修饰类的时候表示该类不允许被继承是一个叶子类。finally是对异常处理的最佳补充,无论有无异常都会执行finally。finalize是jvm保证在调用该方法之前,该对象是不可到达的,及将要进行垃圾回收。但jvm不保证一定调用该函数。
4.什么事反射,反射的定义
反射的感念主要是指程序可以访问,检测和修改它本身状态和行为的一种能力。
5.说有引用本质上都是按值传递的,只不过对象参数传送的是引用而已。String对象特殊
例子
public static void main(String[] args) {
// TODO Auto-generated method stub
String aa="似懂,非懂,是发的,说,法,是";
dealstr(aa);
System.out.println(aa);
}
public static void dealstr(String str){
str.replaceAll(",", "_");
}
输出结果会是"似懂,非懂,是发的,说,法,是
6.静态变量只能用在方法、成员变量、内部类
7.wait() 和sleep的区别
sleep是让线程停止一段时间,在sleep结束后,线程不一定立即回复执行。这是因为 在那个时刻,其他的线程可能正在运行而且没有被调度成放弃执行。除非醒来的线程优先级最高。或者其他的正在运行线程发生堵塞。如果对一个线程发出wait命令,被调对象进入等待状态,除非被欢迎或者时间到。
8为什么stop()和supspend()方法,不推荐使用
主要因为stop不安全,他会解除由线程获取的全部锁定,supspend使用的时候目标线程会停下来,但却仍然持有在这之前或得全部锁定,如果其他线程试图恢复目标线程或解锁就会照成死锁
9,数据库优化
1.简历索引,2,建立分区,3,尽量使用固定长度字符串,4,限制字段长度。