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#還有很多區別,我只是列舉了其中的一小部分,僅供大家參考。

  轉載地址https://blog.csdn.net/waeceo/article/details/47372881