A. 求下列程序編譯運行後的輸出結果,求詳細解釋,在線等
1.首先 class A implements Runnable表示A繼承了Runnable介面,所以a是一個線程類,需要實現
public void run() 函數。
Thread t = new Thread(a);
t.start(); //啟動線程
表示新new了一個線程,然後啟動線程。
public void run() {
while(true) {
try{
Thread.currentThread().sleep(1000); //表示將當前線程休眠1000ms。
}catch(InterruptedException e){ //錯誤處理部分,不用管
System.out.println(e.toString());
}
程序不會輸出,表示新生產一個線程,每1000ms休眠一次。
2.
interface B{ // 表示一個介面B
int k = 10;
}
A c1 = new A();
i = c1.k; //這里A實現了介面B,所以A中有成員變數k=10
System.out.println("i="+i);
因此輸出i=10.
B. 編譯和運行下面這段java代碼後,控制台輸出的結果是
選D ,列印結果為3
public class Test {
static {
int x = 5;//形參x 賦值為5,沒有調用
}
static int x, y;//本類屬性,x,y默認為0
public static void main(String args[]) {
x--;// 本類屬性x-- this.x=-1
myMethod();
System.out.println(x + y + ++x);//x = this.x = 1 ,y = 0, ++x = 2
//列印結果為 3 x + y + ++x = 1+0+2 = 3
}
public static void myMethod() {
y = x++ + ++x;
// x++ = -1 , this.x = 0
// ++x = 1 , this.x = 1
//y = -1 + 1 = 0
}
}
C. 編譯運行如下 Java 代碼,輸出結果是 ()。
答案是C、 7、12 代碼是按照從上往下順序執行,依次旅者邏輯即可
D. 在java中,編譯運行的結果是什麼
第一個是:two。錯了,第一個列印不出結果的。呵呵
E. 這段C語言代碼運行後會是什麼輸出結果
編譯無誤,可以運行。運行結果:
F. 編譯並運行如下代碼時將會出現什麼結果:
1、這個程序編譯會出錯,c+=s; c是char類型,s是String類型。
2、public class Test3{
public static void main(String[] args) {
String s1="abc";
String s2="bcd";
String s3="bdef";
String s4="bghi";
String s5="bmn";
String s="b";
if(s1.substring(0, 1).equals(s)){
System.out.println(s1);
}
if(s2.substring(0, 1).equals(s)){
System.out.println(s2);
}
if(s3.substring(0, 1).equals(s)){
System.out.println(s3);
}
if(s4.substring(0, 1).equals(s)){
System.out.println(s4);
}
if(s5.substring(0, 1).equals(s)){
System.out.println(s5);
}
}
}
G. 求編譯運行下面的程序,結果是什麼
答案是B:先輸出A,再輸出B
A的main方法new了B,調用B的test方法;B的test方法裡面,先調用父類(super)的test,也就是輸出A,然後輸出B
H. 為什麼運行這段Java代碼後輸出的結果是 0 而不是10
這里涉及到的是Java的初始化過程;
如上圖所示,增加第9行,這樣子你就可以看得明白一些了;
基本的初始化過程:首先運行構造方法,然後從第6行開始進行初始化,此時第7行還沒有初始化,所以此時 j的值為0,因此i也就為0了;
如果把第6行和第7行的位置互換一下,運行一下 ,估計就能明白了。