1. 程式人生 > >Java與其他語言的對比

Java與其他語言的對比

一、Java的優點:

(1)可移植性好

(2)垃圾收集

(3)支援多執行緒

(4)沒有麻煩的指標

(5)支援分散式開發

(6)面向物件

(7)安全、簡單

Java與C#對比的好處:

(1)c#中有static constructor(靜態建構函式),而java中包含靜態塊。

詳細介紹一下:在java中使用“{}”稱為程式碼塊,根據程式碼塊的定義位置及宣告的關鍵字不同,程式碼塊可以分成以下四部分:

a.普通塊;b.構造塊;c.靜態塊;d.同步塊;

a.普通塊:一個方法中出現的"{}",如:

public static void main(String args[]){

     //普通程式碼塊

     {

          .....

     }

}

b.構造塊:直接在類中定義的程式碼塊,構造塊優於構造方法先執行,如:

class Demo{

    //構造塊

    {

         ......

    }

    public Demo(){//構造方法

    }

}

c.靜態塊:關鍵字 static宣告的程式碼塊,用來靜態屬性初始化,靜態塊用於主方法執行,靜態塊優於構造塊執行,並且只執行一次,如:

public class CodeDemo{

     static{

         //靜態塊

     }

     public static void main(String args[]){

     }

}

d.同步塊:介紹一下,java同步的實現有兩種:d1.同步程式碼塊塊(就是我們要講的同步塊);d2.同步方法

d1.同步程式碼塊:使用synchronized關鍵字進行同步程式碼塊的宣告,但是在使用此操作時必須明確的指出到底要鎖定的是哪個物件,一般都是以當前物件為主:synchronized(物件this或者類.class){//需要同步的程式碼,一般是將this鎖定},保證在synchronized(this)控制的這一段程式碼中只有一個執行緒在執行,不會有多個執行緒同時執行。如:

for(int i=0;i<50;i++){

       synchronized(this){

         if(this.ticket>0)

         {

               try{

                         Thread.sleep(10000);

                    }catch(InterruptedException e)

                    {

                          e.printStackTrace();

                    }

         }

    }

}

d2.同步方法:

public void run(){

      for(int i=0;i<50;i++)

        {

                 this.sale();//呼叫的同步方法

         }

}

public synchronized void sale(){

          if(this.ticket>0){

                 try{}

                 catch(){}//同上

          } 

}

(2)java中的main函式時必須是public static void main(String args[]){},否則JVM拒絕運;在C#中,main函式可以是private型別,protected也可以,可以沒有引數,返回值int型別。

(3)java在繼承、多型方面比C#強,java預設多型,而C#要求加上virtual(在父類上)和override(在子類上),而且C#要求不能改變原來的訪問修飾符。

(4)c#中防止一個類被繼承,要用到關鍵字sealed,而定義一個變數要用const;java則統一使用final.

(5)c#中要比較兩個引用變數是否指向同一個物件,不能用java中的==,而要用object裡的ReferenceEquals方法。如下:

a1==a2;object.RefereceEquals(a1,a2)。

(6)C#中沒有原始型別的包裝類,但是C#提供了自動裝箱,拆箱需要強制轉換。而java在jdk1.5以後就完全是自動拆裝箱了。

java和C#還有很多區別,我只是列舉了其中的一小部分,僅供大家參考。

相關推薦

Java其他語言對比

一、Java的優點: (1)可移植性好 (2)垃圾收集 (3)支援多執行緒 (4)沒有麻煩的指標 (5)支援分散式開發 (6)面向物件 (7)安全、簡單 Java與C#對比的好處: (1)c#中有static constructor(靜態建構函式),而java中包含靜態塊。

Java其他語言相比有其自身的優缺點:

Java最引人注目的原因之一是他能夠提升開發者效率提升程式碼重用率,相對的執行效率慢些1)      Java在執行的時候強制執行嚴格的型別規則,根本無發以可能導致記憶體衝突的方式直接管理記憶體,因此不會出現c++程式設計師降低效率的特定bug2)      Java避免無意

Java其他語言對比

一、Java的優點:(1)可移植性好(2)垃圾收集(3)支援多執行緒(4)沒有麻煩的指標(5)支援分散式開發(6)面向物件(7)安全、簡單Java與C#對比的好處:(1)c#中有static constructor(靜態建構函式),而java中包含靜態塊。詳細介紹一下:在ja

Java其它語言的比較

nbsp java語言 其它 比較 ava 自己的 理念 linu linux下 Java與C/C++相比。Java語言是一種完全的面對對象語言,雖然他的底層(運行時庫)是用C語言開發 的,可是並不依賴於C。因為Java的運行是在運行時庫的支持下運行的,所以運行的效率比

Python其他語言的區別

tro inf color 範圍 分享 ron 數字類型 不同的 差異 Python中沒有自增自減運算。 python 不使用 ++ 的哲學邏輯:編譯解析上的簡潔與語言本身的簡潔。 舉個例子來說python 與 c 語言概念上的一些差異: python 中,變量是以內容

vbs其他語言進行交互編程(外存傳參)

one 自定義排序 RR 調用方法 i++ 命令 argc urn 例如 vbs沒有自定義排序函數。無需自己造輪子,可以用其他語言來完成這個任務(在傳遞數據比較簡單的情況下,例如只傳遞數組)。 首先用5分鐘寫一個C++排序的代碼。命名為“mysort.cpp”: #inc

JNI 和 JNA,java其他語言的互調

僅工作中使用到,現查現用,理解不到位,請持懷疑態度檢視本文。如有問題請聯絡郵件:[email protected]; 以便交流。 java呼叫C語言的方法: 1、JNI --- java native interface 2、JNA 3、runtime.exec() ,沒有研究

通過後綴名判斷是C,C++,JAVA,還是其他語言

輸入檔案的字尾名,並判斷是使用c,c++,java編寫,還是其他程式語言編寫 例如,輸入b.c 輸出c 輸入a.cpp輸出c++ 輸入c.java輸出java #include <stdio.h> #include <string.h> int main() {

JavaR語言的配置,呼叫

    我是最近才接觸到了R語言,所以用起來有很多的問題,之前只是想單純想用java呼叫到R語言中的一些東西,沒有想到這個事情並不是想象的那麼簡單的。好了,閒話不多說,下面我來說說我在運用R的時候遇上

javac語言之間的socket通訊—c客戶端java伺服器端

寫在前面的宣告:程式例子均執行在ubuntu(是一個以桌面應用為主的Linux作業系統)上。當然你也可以把java執行在其它系統上,這裡只是為了方便。 上一篇文章已經說明了關於socket的一些知識,but這是遠遠不夠的,我相信只要你感興趣,學習它並不是什麼難事。 好吧,我

JavaC++語言在JNI下的互動

java環境下呼叫VC++編寫的動態連結庫檔案 一,開發平臺: MyEclipse 6.0,VC++6.0 二,JNI基礎知識: JNI(java native interface),JAVA本地介面呼叫,目的是為了JAVA可以呼叫本地程式。 三,互動過程: 1,建立j

node.js AES/ECB/PKCS5Padding 其他語言的加密解密通用

轉載:http://yijiebuyi.com/blog/13e2ae33082ac12ba4946b033be04bb5.html 關於什麼是AES? 需要自己goole瞭解一下,今天就是簡單和大家分享node.js下使用 AES/ECB/PKCS5Padding 如

JavaScript其他語言的區別聯絡01

   JS是一種專為與網頁互動而設計的指令碼語言,由下列三個不同的部分組成:      1.ECMAScript,提供核心語言功能;      2.文件物件模型(DOM),提供與瀏覽器互動的方法與介面;      3.瀏覽器物件模型(BOM),提供與瀏覽器互動的方法和介面。

使用SWIG實現C/C++其他語言間的互相呼叫

  為了執行速度,java, C#, ruby等語言可能會呼叫C/C++寫的函式或者類,但直接寫很麻煩,必須遵循各種語言訂立的規範,以jni為例要匯出一個函式給java用,你必須在函式定義前寫上JNIEXPORT,對於那些早已存在的程式碼,這樣就麻煩了,而且相同的程式碼如果要

quartznet任務排程和訊息排程(JAVAC#版對比

quartznet任務排程和訊息排程 1.  作用 自動執行任務。 2.  下載地址 NET版本 JAVA版本 1下載 http://quartznet.sourceforge.net/downlo

爬蟲學習 pyspider和scrapy小結 / 其他工具對比

從火車頭瞭解了翻頁與正則表示式帶入了爬蟲原理、後python的urllib和requests徹底梳理了爬蟲過程,之後引入phantomjs chromedriver這些徹底解決了爬蟲問題,但是這些太瑣碎,而且反爬蟲越來越厲害,必須升級爬取武器到專業級別。 用p

javaC語言的資料型別對應

Java和C資料型別的對應表如下: Java 型別 C 型別 原生表現  boolean  int  32位整數 (可定製)  byte  char   8位整數

JAVAPHP語言比較

1. 從學習與快速開發上來說,php更優,php學習起來比較簡單,java體系內容較多,各種框架也很複雜,學習起來時間較長 2. 從部署成本來說,兩個基本差不多,都支援跨平臺,也都有免費平臺支援 3. 從系統架構上來說,php比較適合中小型web專案,而java更適合大型專

編程語言對比分析:PythonJava和JavaScript(圖)

最大 python 服務 dev 破壞 fff 對比分析 可能 分析 編程語言對比分析:Python與Java和JavaScript(圖):憑什麽說“Python 太慢,Java 太笨拙,我討厭 JavaScript”?[圖]編程語言生而為何?我們人類從原始社會就是用語言表

C++ Java 語言對比

1 . Java 是完全封裝的,而 C++ 的函式是可以定義在 Class 的外部的。從這裡就可以看出 C++ 的 OO 思想不夠徹底,至少在封裝這一點上。 2. C++ 中有拷貝