星期三, 9月 21, 2005

JAVA作業二

1. Explain bytecode, JVM

bytecode-Java原始程式經過不同平台的JVM編譯後產相同的byte code,然後將此byte code攜帶到其他的平台上,經該平台中的JVM直譯成該平台可執行的機器碼,所以經過JVM編譯過byte code不需任何修改即可在具有JVM的平台上執行。
JVM-Java Virtual Machine java虛擬機器。我們可以將 Java 程式於某一平台上編譯,並在另一個完全不同架構的平台上執行,只要該平台上具有 JVM 功能。因此才能將byte code各種平台都看的懂得machine code。
補充:
JVM 是一種抽象化的電腦, 我們可以在上頭執行 Java 預先編譯過的程式。它本身的設計原則是「小而簡單」, 因為其目的,是為了儘可能在所有機器上都能安裝。 這 樣的精簡原則,使得它機會能夠在現有的平台上都可以順利執行,有助於提供給所有人一個共通的軟體介面,針對異質網路的環境 (諸如 Internet),它可以解決不少可攜性的問題。 由此可知, 這項科技之所以能夠不斷推陳出新,其主要原因應該在此。僅管「虛擬機器」的概念, 不該只被視為是軟體介面,但如其名稱所示, 目前它已逐步邁向完整之電腦系統, 沒過多久,我們可以看到市面上會有 Java 晶片出現,用來支援真正的 Java 機器、信用卡、 電視解碼等。

參考資料:http://www.tldp.org/linuxfocus/ChineseBig5/July1998/article57.html

2. Explain class, object

class-所 謂的Class(類別),即是Java Program的基本組成單元,每個Java Program至少都要定義了一個Class,Class內可以包含Data Field(資料欄位)和Method(方法-如同C/C++的成員函式),而Class也可視為是一種使用者自訂型別(User Defined Data Type),Class主要是用來擴充Java原生Data Type的不足,這也是Java的OO技術中心所在。
object-每個原生Data Type都會有一個值,如整數變數可以內含數值100,而Class Data Type的變數的值就是物件。

參考資料:http://soho-hsh.com/Tutorial/Java/javagossip.htm

3. Let i=2;
Print i;
Print 2 * (i++);
Print i;

Ans: 2, 4, 3

public class HW2_1
{
public static void main(String[] args)
{


int i=2;
System.out.println("i="+i);
int answer;
answer=2* (i++);

System.out.println("2* (i++)="+answer);
System.out.println("(i++)="+i);


}
}
執行結果
i=2
2* (i++)=4
(i++)=3


4. Let i=2;
Print i;
Print 2 * (++i);
Print i;

Ans: 2, 6, 3

public class HW2_2
{
public static void main(String[] args)
{


int i=2;
System.out.println("i="+i);
int answer;
answer=2* (++i);


System.out.println("2* (++i)="+answer);
System.out.println("(++i)="+i);
}
}
執行結果
i=2
2* (++i)=6
(++i)=3


5. Let m=7, n=2;
Print (double) m/n;
Print m/ (double)n;

Ans: 3.5, 3.5

public class HW2_3
{
public static void main(String[] args)
{


int m=7;
int n=2;
double x,y;
x=(double)m/n;
y=m/(double)n;


System.out.println("(double)m/n="+x);
System.out.println("m/(double)n="+y);
}
}
執行結果
(double)m/n=3.5
m/(double)n=3.5

0 Comments:

張貼留言

<< Home