PythonとJava言語の比較

3800 ワード

以前はSSH/SPringでWEB開発に慣れていましたが、最近は小さなプロジェクトに対してJava関連のフレームワークが重すぎて、そのため、Pythonの中のflask(flaskのノートに対して読書ノートを参考にする)は比較的に便利であることが分かった(pythonサードパーティが集積したプラグインは特に多く、高同時安定性の要求は特に高い内部アプリケーションではなく、pythonの開発を提案し、その効率の高さは舌を巻く).
最近pythonの文法を一度読んだので、PythonとJavaの異同を比較し、pythonの基礎知識を以下にまとめた.
解釈器:IPythonを使用することをお勧めします.元のpython解釈器を拡張します.tab補完などのブレークポイントデバッグをサポートします.server側のデバッグを行う場合はpdbを使用してデバッグすることをお勧めします(ここを参照).開発ツール:pycharmを使用することをお勧めします(専門版使用:eduメールボックスは年に1回アクティブ化し、永続的に使用します.ここを使用します).
1.インデント
  • pythonは、インデントで文の前の論理ブロックを識別する必要があります(初心者のインデントエラーは、ほとんどがマシンtabとスペースの違いによるものです)、行末に「:」を付ける必要があります.次にインデント形式が同じ文が1つの文ブロックであることを示します(python文の末尾は付けなくてもいいですが、インデントを使用する必要があります).
  • Javaは主に「{}」と「;」を用いる.認識するために、強制的にインデントを要求しない(同様にインデントフォーマットを使用することを推奨する)
  • 2.データ型
  • pythonには4つのデータしかありません.数値(pythonは複数をサポートし、javaはサポートしません)、文字列(str)、リスト(list)、メタグループ(tuple)、辞書(dict)
  • javaにはchar,short,byte,int,long,float,doubleタイプ
  • があります.
  • pythonはchar、byte、ポインタ、単精度浮動小数点数(floatは実際には二精度浮動小数点数)、short&long(intはlongに相当)をサポートしていません
    pythonは、各タイプの一般的な方法についてサポートされています.dir()では、dir(str)などの現在のタイプでサポートされているメソッドを表示できます.

  • 3.文字列
    3.1. 文字列表示
  • Pythonには、1つの定数文字列タイプを表すcharタイプはありません.1つの文字列を1つの引用符''、2つの引用符'、3つの引用符で表すこともできます.1つの複数行文字列
  • を3つの引用符で表すこともできます.
  • Javaではcharが1文字、Stringが1文字列、定数文字列が2重引用符「」で
  • 3.2. 複数行文字列
  • Pythonは文字列の末尾に反スラッシュ(/)を付ける文字列が次の行で
  • に続くことを示す.
  • Javaはプラス記号(+)で文字列が次の行で
  • に続くことを示す.
    3.3. Pythonの他の表示方法
  • pythonには、文字列の前に接頭辞rまたはRを付けることもできる:自然文字列を表す、すなわち文字列を転送処理しない(javaより便利)
  • .
  • Pythonは、uまたはU:unicode文字列を表す接頭辞を付けることができる.pythonファイルに中国語を埋め込む場合、pyファイルヘッダを# -*- coding: utf-8 -*-
  • に追加する必要があります.
    4.オペレータ
  • Pythonの**はべき乗計算を表し、X**yがX y X^y Xy
  • を表す場合
  • Python中//表示整除、すなわち商の整数部分
  • Python中~はビット反転を示す、~xは-(x+1)
  • である.
    5.オブジェクトのシーケンス表示
  • Pythonではstr()またはrepr()関数を使用してオブジェクトのシーケンス化
  • を実現することができる.
  • JavaにおけるtoString()メソッドによるオブジェクトのシーケンス化
  • 6.pythonの組み込み関数
  • pythonの関数定義は、arg 2が関数パラメータのデフォルト値(関数の異動時にarg 2パラメータが指定されていない場合はデフォルト値)
    def demo_func(arg1, arg2=2):
               print "xxxxxxxx"
    
  • であるフォーマットである.
  • pythonには、type()でタイプを表示する以外に、debug中に遭遇した未知のタイプのオブジェクトに対して多くの組み込み関数が含まれています.一般的にdir()メソッドを使用して、サポートされているメソッドと属性数値タイプで表される組み込み関数も表示されます.bin()oct()hex()などのオブジェクトで生成された組み込み関数int()long()float()complex()【複数を返す】str()list()dict()tuple()
  • 7.インタフェースと継承
  • Pythonでの継承例は、
    class Fruit:
          def __init__(self, color):
               self.color = color
               print "fruit's color: %s" %self.color
     
          def grow(self):
               print "grow..."
    
    class Apple(Fruit):                               #     
          def __init__(self, color):                  
               Fruit.__init__(self, color)            #       __init__  (Python          __init__())
               print "apple's color: %s" % self.color
    
    class Banana(Fruit):                              #     
          def __init__(self, color):                  
               Fruit.__init__(self, color)            #       __init__  
               print "banana's color:%s" %s self.color
     
          def grow(self):                             #      grow  
               print "banana grow..."
    
    注意:Pythonの_init__()メソッドはJavaのコンストラクション関数と同様で、Javaコンストラクション関数のselfはデフォルトで存在し、コンストラクション関数宣言時に表示指定する必要はありませんが、Pythonは_init__()関数には指定が表示されます(ただし、呼び出し時にself転送を表示する必要はありません)
  • PythonでのインタフェースJavaでのインタフェースは,マルチ継承ができないという問題を解決するためであり,Pythonではマルチ継承がサポートされているため,Pythonではインタフェースの概念がない.インタフェースは特殊な抽象クラスであるため,インタフェースにはデータメンバーがなく,実装されていないメソッドのセットである.インタフェースの機能を実現するには、空のクラスで行うことができます.例:
    class Fruit():  
        def add(self):  
             pass  
        def remove(self):  
             pass