首頁>Club>
11
回覆列表
  • 1 # 老張電腦

    Java和Python的區別

    1.Python比Java簡單,學習成本低,開發效率高

    2.Java執行效率高於Python,尤其是純Python開發的程式,效率極低

    3.Java相關資料多,尤其是中文資料

    4.Java版本比較穩定,Python2和3不相容導致大量類庫失效

    5.Java開發偏向於軟體工程,團隊協同,Python更適合小型開發

    6.Java偏向於商業開發,Python適合於資料分析

    7.Java是一種靜態型別語言,Python是一種動態型別語言

    8.Java中的所有變數需要先宣告(型別)才能使用,Python中的變數不需要宣告型別

    9.Java編譯以後才能執行,Python直接就可以執行;

    10.JAVA 裡的塊用大括號對包括,Python 以冒號 + 四個空格縮排表示。

    11.JAVA 的型別要宣告,Python 的型別不需要。

    12.JAVA 每行語句以分號結束,Python 可以不寫分號。

    13.實現同一功能時,JAVA 要敲打的鍵盤次數一般要比 Python 多。

  • 2 # 窮Sao

    Java與Python的一些區別

    1.py是1991年問世,java是1995年問世;

    2.hello world程式碼區別:

    java:

    public class Hello

    {

    public static void main (String[] args)

    {

    System.out.println("Hello World!");

    }

    }

    py:

    print("Hello World!")

    3.開啟檔案程式碼:

    py:

    f = open("c:\\tmp\\Hello.java","r")

    print(f.read())

    f.close()

    java有IO 模組設計,可是人們不太常用;

    4.函式預設值:

    py:

    class Employee():

    def __init__(self, name , gender="male" , maritalStatus="single" ):

    self.name = name

    self.gender = gender

    self.maritalStatus = maritalStatus

    self和java裡的this差不多,而self必須作為引數,py程式碼縮排用的空格,容易出錯;

    5.變數型別:

    py:是動態語言,變數型別統一用var表示

    var = 3

    var = "hello world"

    java:是靜態語言, 變數型別有區別;

    6. 實現Duck Typing程式碼:

    py:

    class Duck:

    def help(self):

    print( "Quaaaaaack! ")

    class Person:

    def help(self):

    print( "help me!" )

    def in_the_forest(x):

    x.help()

    in_the_forest(Duck())

    in_the_forest(Person())

    優點: 這個Duck和Person並沒有實現共同的介面或者繼承相同的類,但是照樣可以作為引數傳遞給in_the_forest函式,這個特性寫起程式碼來非常爽快。

    缺點:1)寫起來很爽,讀起來就不爽了,別人看到了in_the_forest這個函式,他知道引數x的型別是什麼嗎?是Person? 是Bird? 還是別的類?

    2) 如果重構一下Person函式的help方法,比如改成sos(self),py的IDE能安全地重構嗎?恐怕是不容易吧? 假設人肉重構改錯了,py也只能在執行時發現錯誤了!

    java:

    由於自己是靜態型別,變數型別在編譯期就能確定,IDE那強大的智慧感知功能,自動安全重構的功能一直是引以為傲的賣點。

    7.AOP:是對現有程式碼做增強,動態的新增一些安全、日誌、事物等‘切面’功能。

    java:

    java類一旦被裝載就無法修改,那是怎麼實現動態新增的呢?

    答:我們可以在執行時生成新的類啊,讓新生成的類繼承老的類,或者和老的類實現同樣的介面,比如ASM這樣的工具,可以操作位元組碼去建立新的類,織入那些‘切面’程式碼,這種工作如此精巧,讓人歎為觀止。

    py:

    我們是動態語言,可以在執行時對一個類進行增強:新增方法,替換方法,根本不用操作那麼Low的位元組碼,我給你舉個簡單的例子:

    class Order:

    def save(self):

    print ("save order")

    #把老的方法引用儲存起來

    old_save=Order.save

    #定義一個新方法,該新方法呼叫老方法

    #並在方法前後加上了日誌

    def save_with_logging(self):

    print ("logging start")

    old_save(self)

    print ("logging end")

    #把新方法賦值給Order類的save方法

    Order.save=save_with_logging

    #測試

    t=Order()

    t.save()

    輸出:

    logging start

    save order

    logging end

    Python想實現AOP,還可以使用裝飾器,Meta class等很多方式,總得來說py的函式就是一個物件;

    ————————————————

    原文連結:https://blog.csdn.net/a214704/java/article/details/81275952

  • 3 # 火星潘達

    1.Python比Java簡單,學習成本低,開發效率高;

    2.Java執行效率高於Python,尤其是純Python開發的程式,效率極低;

    3.Java相關資料多,尤其是中文資料;

    4.Java版本比較穩定,Python2和3不相容導致大量類庫失效;

    5.Java開發偏向於軟體工程,團隊協同,Python更適合小型開發;

    6.Java偏向於商業開發,Python適合於資料分析;

    7.Java是一種靜態型別語言,Python是一種動態型別語言;

    8.Java語法定義較複雜,Python語法簡潔優美;

    9.實現同一功能時,JAVA 要敲的鍵盤次數一般要比 Python 多。

  • 中秋節和大豐收的關聯?
  • 我電腦玩英雄聯盟進去總是要很長時間,是電腦根本不能玩嗎?