昨年、私は休暇を経て、Java に焦点を当ててプログラミングを再検討しました。 私の目標は Python よりも挑戦的な言語でした。私は 3 ~ 4 か月をかけて、Java の核となる概念、つまり操作の仕組み、オブジェクト指向プログラミング (OOP)、メモリ管理、JDBC を介したデータベース接続を習得することに専念しました。
最近、JavaScript から始めて Web 開発に移行しました。数日間 JavaScript を探索した後、Java と JavaScript の主な違い、およびスムーズな移行がどのように可能であるかについての観察と洞察を共有したいと思っています。
最も顕著な違いは、データ型の宣言にあります。 Java の静的型付けとは異なり、JavaScript は動的に型付けされます。どちらのアプローチにも長所と短所がありますが、重要な違いに焦点を当てます。JavaScript のシングルスレッドの性質は、Java のマルチスレッド機能とは対照的です。
Java を細心の注意を払い、細部にこだわる兵士として想像してください。 指示は正確であり、タスクとその根拠の両方を指定する必要があります。逆に、JavaScript はリラックスした友人に似ています。過剰な詳細を表示することなくタスクを効率的に完了します。タスクを提供するだけで、実行が処理されます。
Java では、変数を定義するときに明示的なデータ型宣言 (例: String
、int
、float
、boolean
) を義務付けています。 ただし、JavaScript は柔軟性があります。変数は let
または const
(定数の場合) を使用して宣言され、型の決定は実行時に行われます。 var
も同様の目的を果たしましたが、現在では let
と const
が優先されます。
Java の例:
<code class="language-java">class Main { public static void main(String[] args) { int a = 5; int b = 6; int result = a + b; System.out.println(result); } }</code>
JavaScript の例:
<code class="language-javascript">let a = 5; let b = 6; let sum = a + b; console.log("The sum is: " + sum);</code>
次のコード スニペットは、クラスとメソッドの作成における構文の違いを示しています。
Java:
<code class="language-java">class Person { String name; Person(String name) { this.name = name; } void greet() { System.out.println("Hello, " + name); } public static void main(String[] args) { Person person = new Person("John"); person.greet(); } }</code>
JavaScript:
<code class="language-javascript">class Person { constructor(name) { this.name = name; } greet() { console.log(`Hello, ${this.name}`); } } const person = new Person("John"); person.greet();</code>
Java では、すべてのオブジェクトがクラスのインスタンスであることが要求されます。 JavaScript ではオブジェクトを直接作成できます:
JavaScript
<code class="language-java">class Main { public static void main(String[] args) { int a = 5; int b = 6; int result = a + b; System.out.println(result); } }</code>
継承構文は両方の言語で類似点を示しています。
Java:
<code class="language-javascript">let a = 5; let b = 6; let sum = a + b; console.log("The sum is: " + sum);</code>
JavaScript:
<code class="language-java">class Person { String name; Person(String name) { this.name = name; } void greet() { System.out.println("Hello, " + name); } public static void main(String[] args) { Person person = new Person("John"); person.greet(); } }</code>
JavaScript のカプセル化は Java よりも弱いです。アクセス修飾子 (private
、protected
、public
) がありません。 ただし、ES2022 で導入された #
(プライベート フィールド) 表記は、ある程度のプライベート フィールド制御を提供します。
<code class="language-javascript">class Person { constructor(name) { this.name = name; } greet() { console.log(`Hello, ${this.name}`); } } const person = new Person("John"); person.greet();</code>
Java は、コンパイル時ポリモーフィズム (メソッドのオーバーロード) と実行時ポリモーフィズム (メソッド オーバーライド) をサポートします。
JavaScript は解釈される性質とコンパイル時のチェックがないため、メソッドのオーバーロードをサポートしていません。 ただし、メソッドのオーバーライドはサポートされています:
<code class="language-javascript">const person = { name: "John", greet: function() { console.log(`Hello, ${this.name}`); } }; person.greet();</code>
以上が移行ガイド: Java から JavaScript への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。