ScalaとJava
Scala
- これは、機能プログラミングとオブジェクト指向プログラミングの組み合わせです。
- あまり使い勝手が良くない、つまり読みにくい。
- ソースコードからバイトコードへの変換は遅くなります。
- 遅延評価をサポートします。
- Scalaの変数はデフォルトで不変です。
- Scalaには「static」というキーワードはありません。
- Scalaでのすべての操作は、関数/メソッド呼び出しの助けを借りて行われます。
- Scalaはすべてをオブジェクトのように扱うため、オブジェクト指向の側面に向いています。
- Scalaで記述された関数は、単純な変数のように扱われます。
- Scalaは演算子のオーバーロードをサポートしています。
Java
- Javaは、汎用のオブジェクト指向プログラミング言語と見なされています。
- コードが読み取り可能であるため、非常にユーザーフレンドリーです。
- ソースコードからバイトコードへの変換は比較的高速です。
- Javaは遅延評価をサポートしていません。
- Javaの変数はデフォルトで変更可能です。
- キーワード「static」は、コード全体で変数の単一のコピーを共有するためにJavaで使用されます。
- Javaの演算子は異なる方法で処理され、メソッド呼び出しを使用する必要はありません。
- Javaは、プリミティブデータ形式があるため、オブジェクト指向ではありません。
- Javaの関数はオブジェクトとして扱われます。
- Javaは演算子のオーバーロードをサポートしていません。
-
SwingはJavaでスレッドセーフですか?
いいえ、 Java Swing コンポーネントはJavaではスレッドセーフではありません。 Swingコンポーネントがスレッドセーフではない理由 Java Swingがスレッドセーフではない主な理由の1つは、そのコンポーネントを拡張するタスクを簡素化することです。 Java Swingのもう1つの理由は、ロックの取得と解放、および状態の復元に伴うオーバーヘッドのため、スレッドセーフではありません。 。 一部のJavaSwingコンポーネントメソッドは、 repaint()、revalidate()などのマルチスレッドアクセスをサポートします。 、および invalidate()メソッド
-
Javaの最終変数
最終変数は明示的に一度だけ初期化できます。 finalとして宣言された参照変数を、別のオブジェクトを参照するように再割り当てすることはできません。 ただし、オブジェクト内のデータは変更できます。したがって、オブジェクトの状態は変更できますが、参照は変更できません。 変数を使用する場合、最終修飾子 多くの場合、定数をクラス変数にするためにstaticとともに使用されます。 例 public class Test { final int value = 10; // The following are examples of declaring