1. 程式人生 > >Java 和 C# 最大的不同是什麼?

Java 和 C# 最大的不同是什麼?

說到Java 和 C#的不同嘛~

泛型不一樣,Java泛型只是編譯時的,但C#的泛型在執行時也被維持,而且適用於value types 和 reference types

C# 沒有 checked exceptions

Java 不允許建立user-defined 的value types

Java 不允許運算子過載

Java 沒有類似LINQ的特性

Java 不支援委託

C# 沒有匿名內部類

C#沒有像java 那樣的內部類,所有的nestedclasses 其實都像Java 的靜態nested classses

Java 沒有靜態類

Java 沒有 擴充套件方法(extensionmethods)

兩者的訪問修飾符有一定區別

兩者初始化(initialization)的順序有一定不同。C#初始化變數後才呼叫父類的構造方法

Java 沒有類似“properties”的東西,而是約定俗成為getter和setter

Java 沒有類似與"unsafe"的特性

兩者的列舉(enums)有一定的不同,Java的更加面向物件

Java的引數只能傳值,沒有類似於C#的ref 和out 傳遞引用。(注:Java 傳遞物件只是傳遞物件引用的copy)

Java 沒有partial types

C# 的interface 不能定義欄位

Java 沒有unsigned 的整形

Java 沒有型別與nullable 的value types

總之,他們之間的不同還是蠻多的……

那麼這些不同對使用者而言有有什麼不同呢?大概是c#設計者更注重一線開發人員的感受吧,而Java的設計者的關注點則在於應用系統本身。當然對於圍觀群眾而言,兩者之間還有一個大不同,也許就是:

C# 更新快;Java更新,呃,更新?

C# 上手簡單,大神真的沒幾個;Java上手一般,大神麼,其實也沒幾個。

關於Java與c#的不同,在使用上有什麼影響呢?我們在不說語言本身好壞的基礎上,下期我們跟大家一起聊一聊,在使用過程中,Java與c#的不同吧~~

接下來就是廣告時間,小編有群如下,Java乾貨群,一大群Java工程師在群裡談談情、聊聊技術、解決解決問題,為以後大家面基提供了極好的基礎~~怎麼樣,現在就加入大家,一起侃技術吧~

群主ID:bingdianlanhuahua 備註“Java群”即可。歡迎關注Java我最強

相關推薦

Java C# 不同是什麼?

說到Java 和 C#的不同嘛~ 泛型不一樣,Java泛型只是編譯時的,但C#的泛型在執行時也被維持,而且適用於value types 和 reference types C# 沒有 checked exceptions Java 不允許建立user-define

round()函式在javac/c++中的不同表現

首先,數學上負數四捨五入考慮的是絕對值四捨五入,然後加符號。 c/c++ round(-0.5)返回-1,round(-1.5)返回-2,是四捨五入沒錯, 用floor(-0.5+0.5)的話返回0。 而java Math.round(-0.5)返回0,原因:小數可拆成整數和正小

內部類:JavaC++的不同實現

內部類 內部類是在一個類中定義的另一個類 Java和C++都支援這麼做,且內部類和繼承是不同的,這兩種行為在記憶體排布上截然不同. 舉C++為例: 繼承: class Derived : pub

java如何求二維陣列的小值。

public class SecondArray { public static void main(String[] args) { //int a[][]= new int[][]{{1

javaC程式設計師工資待遇差別

我們都知道程式設計師工資高,但是你們所不知道的是,程式設計師也有細分的,不是所有的程式設計師薪資待遇一樣。比如說JAVA程式設計師和C程式設計師的工資就會有不同。三顧人才正好是做精英程式設計師招聘的,今天可以為大家講解一下JAVA程式設計師和C程式設計師的真正差距在哪?   1、食

Java演算法-求的子陣列序列

問題:有一個連續陣列,長度是確定的,它包含多個子陣列,子陣列中的內容必須是原陣列內容中的一個連續片段,長度不唯一,子陣列中每個元素相加的結果稱為子陣列的和,現要求找出和最大的一個子陣列。 具體演算法如下: 方法一(最優演算法):分治法 import java.util.Scanner; publi

java求兩個字元AB的相同字串

private static ArrayList getMaxSubString(String s1,String s2){ //最大相同子串,s1,s2=min String max=(s1.length()>s2.length())?s1:s2; String min=(m

n個整數中找出連續m個數加Java

即上一篇Python版取連續加和最大的整數後,本篇部落格帶來Java版取連續加和最大的整數。總體的思路入上一次部落格中所述,就不在過多的闡述,關鍵就在於如何應用Java API寫出相同邏輯的程式碼。

java小堆實現優先權佇列的n個數問題

堆在實現優先權佇列和求最大最小的n個數問題上,有著莫大的優勢! 對於最大堆和最小堆的定義此處不再贅述,課參考網上文章:http://blog.csdn.net/genios/article/details/8157031 本文主要是對最小堆進行實現和應用,僅供新手參考。

輸入三個整數a,b,c。並進行兩兩相加,最後比較相加值。

#include<stdio.h> #include<math.h> int main() { int a,b,c,max ; scanf("%d%d%d",&a

MD5加密(javac#)

service int print cnblogs return pan Coding pro pre java代碼 public static String md5(String str) { try { MessageDiges

JNI打通javac

div sys brush led and ftw orm doc ive 1、JNI簡介 The Java Native Interface (JNI) is a programming framework that enables Java code running i

201671010139 2016-2017-2 JAVA C語言的語法區別

tro 特點 建立 優點 cor ext 虛函數 ref strong   java和c語言的語法上有很多相似的地方,但也有很多不同。 一,在初始值的區別   在C語言中,是可以不初始化使用的   而在JAVA中,是必須初始化值的 二,在抽象方法或抽象類的區別   C語言的

編程之美—象棋將帥問題javaC++實現

象棋解決思路這樣如下圖:然後我的java實現public class xiangqi { public static void main(String[] args) { byte s=81; while(s!=0){ if((s/9%3)==(

JavaC++的區別

必須 java 增強 然而 開發 idt pac 結合 面向對象的語言 1.指針 JAVA語言讓編程者無法找到指針來直接訪問內存,並且增添了自動的內存管理功能,從而有效地防止了c/c++語言中指針操作失誤,如野指針所造成的系統崩潰。但也不是說JAVA沒有指針,虛擬機內部還是

SM4加密算法實現JavaC#相互加密解密

.net ++ println ffffff 預處理 AS 思路 load prop SM4加密算法實現Java和C#相互加密解密 近期由於項目需要使用SM4對數據進行加密,然後傳給Java後臺,Java後臺使用的也是SM4的加密算法但是就是解密不正確,經過一步步調

O(n)求一個數組中連續區間

return 區間 scan CI spa 最大 %d 區間和 數組 int n, a[5000]; int main(){ scanf("%d", &n); for (int i = 1; i <= n; i++)cin >>

javac#中String

語句 end sql string light pre col 逗號 builder java中: c#中: 1.拼接字符串 sql語句中 in() str="‘001‘,‘002‘,‘003‘";至於產生string就這樣 str1="‘001‘";str2

javaC++有什麽異同

解釋 面向對象 接口 java虛擬機 程序 解釋執行 字節 什麽 源碼   相同點:       java和C++都是面向對象語言,都使用了面向對象的基本思想(抽象、封裝、繼承、多態),都具有面向對象的基本特性(繼承、組合等)。    不同點:       ①:java為

使用JNI在JAVAC++之間進行互動操作

原文連結地址: https://library.vuforia.com/articles/Solution/How-To-Communicate-Between-Java-and-C-using-the-JNI 本文旨在描述如何使用JNI(Java Native Interface)實現JA