.NET碼農學Java - 1. 起步

來源:互聯網
上載者:User

標籤:

因為各種原因,計劃學習Java。自己已經做.NET開發幾乎10年了,把語言層級的東西擼一遍估計不難。由於.NET和Java的相似性,準備比較著.NET/C#來學,一來自己容易理解,同時也鞏固下.NET的知識。選擇的參考書是《Java核心技術》。

 

第一個程式

第一個程式,hello world,代碼很簡單,更重要的是看清楚代碼執行的原理。

先從C#開始,建立檔案FirstSample.cs,寫入以下代碼並儲存:

using System;public class FirstSample{  public static void Main(string[] args)  {    Console.WriteLine("Hello C# World!");  }}

  

HelloWorld的代碼總是很簡單的,接下去可以編譯了。開啟一個shell視窗,定位到FirstSample.cs的同級目錄,敲入

csc FirstSample.cs

同級目錄下會產生一個新的檔案,FirstSample.exe,直接執行,就可以在shell視窗看到“Hello C# World!”字樣了。

Java的Hello World會非常類似,首先,建立檔案FirstSample.java,寫入代碼:

public class FirstSample{    public static void main(String[] args)    {        System.out.println("Hello Java World!");    }}

接下去同樣是編譯。開啟shell視窗,定位到FirstSample.java的同級目錄,敲入

javac FirstSample.java

同級目錄下同樣產生一個新的檔案,FirstSample.class。跟C#不一樣,這個不能直接執行,繼續在shell視窗敲入

java FirstSample

成功執行後,在shell視窗看到“Hello Java World!”

 

發生了什嗎?

Java和.NET的工作原理,都是把原始碼編譯成中繼語言(bytecode和IL),然後由虛擬機器(JVM和CLR)編譯為native code。老生常談的內容,這裡不多說。這裡想談談我對Java和.NET工作原理的理解。

想要執行中繼語言,首先得啟動JVM/CLR,所謂的啟動,實際上是在OS上建立進程,然後把JVM/CLR host到該進程上。

回顧兩個hello world,C#編譯成的exe,執行的時候實際上做了這麼些事情:建立一個新的進程,在進程上host一個CLR執行個體,把IL code載入到CLR裡,然後開始由執行IL code。

Java的其實類似,只不過host JVM的進程是有java.exe(而不是FirstSample.class)建立。

 

到這裡第一天的學習結束,接下去準備看資料類型。

 

.NET碼農學Java - 1. 起步

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.