-
1 # 老張電腦
-
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 多。
回覆列表
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 多。