关于以下application,说法正确是什么?
public class Test {
static int x=10;
static {x+=5;}
public static void main(String[] args) //4
{
System.out.println("x="+x);
}
static{x/=3;};
}//9
正确答案: B 你的答案: D (错误)
4行与9行不能通过编译,因为缺少方法名和返回类型
编译通过,执行结果是:x=5
编译通过,执行结果是:x=3
9行不能通过编译,因为只能有一个静态初始化器
注:一个静态代码块在整个程序执行的过程中只执行一次,但一个class可以有多个静态代码块,且都会被执行。所以此题static{x/=3;};也会执行。
class A{
static {
System.out.print("--父类静态代码块--");
}
public A(){
System.out.print("--父类构造方法--");
}
{
System.out.print("--父类初始化块--");
}
}
public class demo8 extends A{
static{
System.out.print("--子类静态代码块--");
}
public demo8(){
System.out.print("--子类构造方法--");
}
{
System.out.print("--子类初始化块--");
}
public static void main(String[] args){
new demo8();
}
}
//–父类静态代码块----子类静态代码块----父类初始化块----父类构造方法----子类初始化块----子类构造方法–
//静态代码块 优先于 main 优先于 构造代码块 优先于 构造方法
ResultSet中记录行的第一列索引为?
正确答案: C 你的答案: B (错误)
A.-1
B.0
C.1
D.以上都不是
注:**结果集(ResultSet)**是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等。 ResultSet跟普通的数组不同,索引从1开始而不是从0开始。
假设如下代码中,若t1线程在t2线程启动之前已经完成启动。代码的输出是()
public static void main(String[]args)throws Exception {
final Object obj = new Object();
Thread t1 = new Thread() {
public void run() {
synchronized (obj) {
try {
obj.wait();
System.out.println("Thread 1 wake up.");
} catch (InterruptedException e) {
}
}
}
};
t1.start();
Thread.sleep(1000);//We assume thread 1 must start up within 1 sec.
Thread t2 = new Thread() {
public void run() {
synchronized (obj) {
obj.notifyAll();
System.out.println("Thread 2 sent notify.");
}
}
};
t2.start();
}
正确答案: