1.
getParameter()是获取POST/GET传递的参数值;
getInitParameter获取Tomcat的server.xml中设置Context的初始化参数
getAttribute()是获取对象容器中的数据值;
getRequestDispatcher是请求转发。
2.
B选项,在java中线程是有分优先等级的所以优先级不能相同,错误
C选项,Thread实现了Runnable接口是一个类不是接口,错误
D选项,实现多线程的三种方式,一种是继承Thread类使用此方式就不能继承其他的类了。还有两种是实现Runnable接口或者实现Callable接口
,所以D错误。
3.
4.
比如说int[] arr = new int[3]。空间分布是这样子的。
所以这句话其实应该改为,数组的引用存在栈内存中,而数组对象保存在堆里面。
5.
因为子线程的休眠时间太长,因此主线程很有可能在子线程之前结束也就是输出结果是12,但是子线程用了join函数,因此主线程必须等待子线程执行完毕才结束因此输出结果只能是21
join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行。
6.
局部内部类是放在代码块或方法中的,不能有访问控制修饰符,且不能用static修饰
7.
int main() {
int i,x;
i = 1;
x = 1;
x = i ++; //先让x变成i的值1,再让i加1
print("%d", x); //输出的x为1
print("%d", i); //输出的i为2
i = 1;
x = 1;
x = ++i; //先让i加1, 再让x变成i的值2
print("%d", x); //输出的x为2
}
8.
全局变量未初始化默认为0。
成员变量和静态变量是有默认值的。
这题考的是默认初始化问题,但是可以引出另外一个问题:局部变量参与运算前是必须要初始化的,比如下面的代码就会编译出错,提示y必须要初始化。
| public static void main(String[] args) { int x = 1; int y; int z = x + y; } |
9.
10.
A:java的访问权限有public、protected、private和default的,default不能修饰变量
B:native修饰方法,native修饰的方法简单来说就是:一个Java方法调用了一个非Java代码的接口。定义navtive方法时,并不提供实现体,因为其实现体是用非Java语言在外面实现的。native可以和任何修饰符连用,abstract除外。因为native暗示这个方法时有实现体的,而abstract却显式指明了这个方法没有实现体。
C:普通变量不能用abstract修饰,abstract一般修饰方法和类
D:被定义为abstract的类需要被子类继承,但是被修饰为final的类是不能被继承和改写的