22、JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?
动态 INCLUDE 用 jsp:include 动作实现 <!--include file="included.htm"-->
23、什么时候用 assert。
assertion (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,
assertion 就是在程序中的一条语句,它对一个 boolean 表达式进行检查,一个正确程序必须保证这个
boolean 表达式的值为 true;如果该值为 false,说明程序已经处于不正确的状态下,系统将给出警告或退
出。一般来说,assertion 用于保证程序最基本、关键的正确性。assertion 检查通常在开发和测试时开启。
为了提高性能,在软件发布后,assertion 检查通常是关闭的。
24、GC 是什么? 为什么要有 GC?
GC 是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者
错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java 提供的 GC 功能可以自动监测对象是否超过
作用域从而达到自动回收内存的目的,Java 语言没有提供释放已分配内存的显示操作方法。
25、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1; (s1+1 运算结果是 int 型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)
26、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round 方法返回与参数最接近的长整数,参数加 1/2 后求其 floor.
27、String s = new String("xyz");创建了几个 String Object?
两个(一个是“xyx”,一个是指向“xyx”的引用对象 s)
28、设计 4 个线程,其中两个线程每次对 j 增加 1,另外两个线程对 j 每次减少 1。写出程序。
以下程序使用内部类实现线程,对 j 增减的时候没有考虑顺序问题。
public class ThreadTest1{
private int j;
public static void main(String args[]){
ThreadTest1 tt=new ThreadTest1();
Inc inc=tt.new Inc();
Dec dec=tt.new Dec();
for(int i=0;i<2;i++){
Thread t=new Thread(inc);
t.start();
t=new Thread(dec);
t.start();
}
}
private synchronized void inc(){
j++;