Java和C#語言有什麼區別?答案在這裏

JAVA是一種能夠跨平臺開發的語言,而C#目前只被Windows和Linux支持,Windows下的支持固然是由微軟本身開發的,而Linux下的支持則有MONO支持。實際上,MONO也是把C#應用轉化爲JAVA應用而已,因此本質上,C#仍然只是被微軟本身的操做系統支持。應用平臺受到限制,是它最大的缺點。Java語言是一種徹底的面嚮對象語言,雖然它的底層(運行時庫)是用C語言開發的,但是並不依賴於C。
由於Java的運行是在運行時庫的支持下進行的,因此運行效率比起能夠更接近底層的C/C++來講效率會有所影響,不過Java的類庫採用很好的設計理念設計,很是好用,也很是實用,已經成爲業界的一種標準開發語言。它的跨平臺的特性尤爲讓不少開發者歡迎,你只須要開發一次就能在全部安裝了Java運行時庫的系統上運行。Java發展了十幾年了,能夠應用領域很是之普遍,Web開發有JSP,J2EE,桌面領域如今有JavaFX。Java既能夠被編譯,也能夠被解釋。經過編譯器,能夠把Java程序翻譯成一種中間代碼 - 稱爲字節碼 - 能夠被Java解釋器,解釋的獨立於平臺的代碼。經過解釋器,每條Java字節指令被分析,而後在計算機上運行。只需編譯一次,程序運行時解釋執行。
經過上面的介紹,你們有必定的瞭解了,下面就具體的給你們分析一下:
一、關鍵字的不一樣a在Java中,若是導入其餘包,應該使用import關鍵字,而在C#中,使用using關鍵字來引用其餘的命名空間,但二者的做用同樣。b:namespace(命名空間)是C#中組織代碼的方式,而package(包)是Java中用到的,它們的做用就是能夠把緊密相關的一些代碼放在同一個命名空間中,大大提升管理和使用效率。c:在Java和C#中都是用class關鍵字表示類,並且編寫的任何代碼都應該包含在一個類裏面。類要包含在一個命名空間或包中,但不一樣的是在Java中,要求類名必須與源文件的名字同樣,而C#不要求。
二、Main方法的不一樣C#中的Main()方法和Java中的main()方法做用都是同樣的,都是程序運行的第一步。但Java中main()方法首字母小寫且只有一種寫法,而C#中的Main()方法首字母必大寫且有四種寫法。分別是:Static void Main(string [] args){}static void Main(){}Static int Main(string [] args){}static int Main(){}3. 源文件方面。C#能夠在一個.cs 文件中。出現多個name sapce(命名空間,有些相似於pacakage),並定義多個類。C#包含有預處理指令。
三、數據類型方面。a) C#定義了struct(結構),不能是抽象的,也不能被繼承,是值類型的。b) C#沒有基本類型的概念,所有是面向對象的類型,int是Int32的簡寫。c) 在Java中const是保留字,final與C#中的 const意思相同,C#中還有readonly容許運行時賦初值。d) 字符串比較,C#中能夠用=比較值,與Java同樣用 StringBuffer來減小內存開銷。
四、運算符方面。C#增長了Checked和Unchecked以 繞過編譯錯誤。好比「把一個long付給int32 ,若是高32爲零 則不會出錯,不然會有溢出錯誤,unchekced就是告訴編譯器不要去管溢出,盡你可能轉化」
五、分支語句方面。在Java中goto是保留字。C#中 switch中的case不會順序執行,末尾必須有break或者goto關鍵字。
六、訪問修飾符方面。在範圍放main,C#增長了internal和protected internal,前者表示只能從當前程序集內可見,便可以在編譯時可Assembly的DLL或EXE,相似於JAR;後者表示對當前程序集或者今後包 含類繼承的類可見。Sealed至關於Java中的final關鍵字。Java和C#都比較高級,能夠看做高級語言的高級語言,優勢是開發容易,但運行效率不如更爲底層的C/C++。具體選擇使用的時候,能夠根據實際的項目須要選擇。運行效率要求高的,底層控制要求高的用C/C++,不然能夠選擇Java或C#;跨平臺的要求高的能夠用Java。
七、輸入和輸出方法在Java中輸出方法爲:System.out.println();和另外一種System.out.println(要輸出的值);輸入方法爲:建立Scanner對象,如Scanner sa = new Scanner();再用對象點方法。如 String name = sa.nextString();在C#中輸出方法爲:Console.WriteLine();和Console.WriteLine(要輸出的值);及一種C#獨有的一種方法Console.WriteLine(「格式字符串」,變量列表);輸入方法爲:string name = Console.ReadLine();另外值得一提的是,java主要是J2EE和手機方面的應用比較多,c#主要是用於.net網站或web系統開發,從這一點上看,java比.net的市場需求和就業待遇都要稍高一些。另外,java的學習難度比.net的學習難度大一點,至於哪一個更有前途,我想這個可能部分伯仲吧。
 java

相關文章
相關標籤/搜索