2005/09/24

JAVA Homework 2

Homework Problems
1. Explain bytecode, JVM
Bytecode
Java bytecode是不和硬體相關的一種指令集,由JVM載入後執行。由於Java Virtual Machine(JVM)必須保證Java應用程式的可移植性和安全性﹐所以Java的原始程式會被組譯成一種中間型式﹐稱為Java bytecode。
參考網站
JVM
JVM虛擬機器 (Java Virtual Machine、簡稱 JVM),程式設計師寫出來的稱為原始碼(Source Code),要編譯(Compile)成機器碼(Machine Code)才能執行。但Java的情況不同,Source Code編譯過的結果是Byte Code,機器或是OS是看不懂的,要靠JVM在執行時解譯為Machine Code,才能執行。也就是說,對一般程式而言,程式本身直接就接觸到OS或硬體資源層級,因此每遇到一種平臺,設計師就必須針對不同的平臺做出適當的設計,但Java則不然,程式本身面對的是JVM,只要JVM看得懂你寫的程式,它就能順利執行,因為Java的設計就是要求程式只開發一次,因此無論是那一個平臺上的JVM,在Java程式看起來都應長得完全一樣,就好像是一台虛擬的,只能執行Java的Byte Code的機器一樣,但這是一個軟體模擬成的機器,這就是Virtual Machine的名稱由來。
參考網站
2. Explain class, object
class
class 類別 (class) ,在物件導向設計或程式設計中,這是指一種模型或範本;建立該種模型或範本的實例,便可建立含有共用定義的物件,進而建立含有共用內容、作業及操作方式的物件。物件是類別的實例。
object
object 物件 (object),在物件導向設計或程式設計中,這是指類別的一種具體實現,此實現是由資料與資料相關作業所組成。
類別是物件的藍圖,
物件是類別的實例,
例如說車子,在類別只有車子的屬性,
例如:顏色、車型、馬力
而物件就有屬性的資料,
顏色:黃
車型:跑車
馬力:3000馬力
參考網站
3. Let i=2;
Print i;
Print 2 * (i++);
Print i;

Ans: 2, 4, 3

public class hw23
{
public static void main(String[] args)
{
System.out.println("Let i=2 ");
int i=2;
int j;
System.out.println("i="+i);
j=2 * (i++);
System.out.println("2 * (i++)="+j); System.out.println("i="+i);
}
}
程式執行結果
4. Let i=2;
Print i;
Print 2 * (++i);
Print i;

Ans: 2, 6, 3

public class hw24
{
public static void main(String[] args)
{
System.out.println("Let i=2 ");
int i=2;
int j;
System.out.println("i="+i);
j=2 * (++i);
System.out.println("2 * (i++)="+j);
System.out.println("i="+i);
}
}
程式執行結果
5. Let m=7, n=2;
Print (double) m/n;
Print m/ (double)n;

Ans: 3.5, 3.5

public class hw25
{
public static void main(String[] args)
{
System.out.println("Let m=7 , n=2 ");
int m=7 , n=2;
double i,j;
i= (double)m/n;
j= m/(double)n;
System.out.println("(double)m/n="+i);
System.out.println("m/(double)n="+j);
}
}
程式執行結果


0 Comments:

張貼留言

<< Home