Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで by 谷本 心, 阪本 雄一郎, 岡田 拓也, 秋葉 誠, 村田 賢一郎

【Javaが実行される流れ】
1. javacコマンドを実行することによりソースコードをコンパイルして、「クラスファイル」と呼ばれる中間コードを生成する。
2. Java VMが中間コードを解釈しながら実行する。

「C言語などのCPUが理解できる機械語のプログラムを生成して実行する言語よりも処理速度が遅い」と言われた時代もある。たしかにJava VMの解釈によるオーバーヘッドはあるが、JIT(Just In Time)コンパイラのような技術が進歩したおかげで、C言語などと比べても遜色ない処理速度になってきた。

 

【Javaの知識】
「>>>」のようなビット演算子というものがある。

「>>>=」のような代入演算子というものがある。

「public」などのアクセス修飾子や、「volatile」のような修飾子もある。

 

「@Override」などはアノテーションと呼ばれ、情報(メタデータ)を注記する仕組みである。

 

プリミティブ型はオブジェクトではなく単なる値であり、それ自身はメソッドをもたない。値を操作したい場合は、プリミティブ型を内包したラッパークラスが提供されているので、そのクラスのメソッドを使う。

プリミティブ型からラッパークラスへの自動変換をオートボクシング、ラッパークラスからプリミティブ型への変換をアンボクシングという。

 

【マルチスレッド】
スレッドを切り替える際にオーバーヘッドが発生するため、シングルスレッドよりも合計処理時間は増加する。

マルチスレッドのプログラム作るときは、ステートレスにすること。
クラス変数、インスタンス変数さえ持たなければ(ステートレスなら)、複数スレッドからアクセスされても問題が生じない。(DIなど?)

技術
スポンサーリンク
ちゃむをフォローする
未経験転職エンジニアの開発講座

コメント