java/android 做题中整理的碎片小贴士(18)
1、类中的成员变量存放在堆区, 方法中的局部变量存放在栈区。
2、&不短路,&&短路(用于if语句嘛)。
3、数组赋值,从速度上看:System.arraycopy > clone > Arrays.copyOf > for。
4、obj.wait() 和 mThread.sleep()都需要try catch 异常捕捉。
5、调用wait 或nofity方法必须采用当前锁调用,即采用synchronized中的对象。
6、java反射机制提供的功能:①在运行时判断一个对象所属类;②运行时构造一个类的对象;③在运行时判断一个类具有的成员变量和方法;④在运行时调用任意对象的方法;⑤生成动态代理。
7、ResultSet索引从1开始。
8、java的HashMap中使用链地址法解决哈希冲突。
9、父类没有无参构造函数,所以子类需要在自己的构造函数中显式地调用父类的构造函数,否则编译错误。就是说父类没有显式写任何构造函数或写了无参构造函数了,子类就不用调用父类构造函数了吧。
10、线程中抛出一个异常会终止此线程的运行。
11、Map没有继承Collection接口。Collection的主要子接口有List、Set、Queue等。
12、JDBC使用了桥接模式。
13、使用效率:String<StringBuffer<StringBuilder;StringBuffer每次结果都会对StringBuffer对象本身进行操作,而不会生成新的对象再改变对象引用。
14、JSP内置对象:request、response、session、out、page、application、exception、pageContext、config。
15、Properties实现了Map接口,是线程安全的。
16、Iterator支持从源集合上安全地删除对象,只需在Iterator上调用成员方法remove()即可。不需要知道下标。
17、double d = 5.3e12 ;是对的,其中5.3e12表示5.3乘10的12次方;Double d = 3不行,但Double d = 3.0会自动装箱。
18、线程优先级高只能说明它获得CPU时间片的概率更高,不能说明它就运行地更快,或更早结束。