Java
概要
プログラミング言語→クラスファイル(バイトコード)→バイナリ
バイトコードという中間表現を持つことで記述と実行環境の両方を抽象化した
クラスファイルにコンパイルできれば良い
Java,Scala,Groovy,kotlin... GCによってメモリの管理(コンピュータの状態の管理)を切り出して、プログラマーは本質的なアルゴリズムの記述のみに専念できるようにした
JVMを立ち上げる必要があるので立ち上がりが遅かったり、メモリを多く消費したりする。コンテナ、サーバレスとの相性が微妙であるのでオワコンになりつつある 実行のためにはJVMが必要なのでcli開発とも相性が微妙
でっかいモノリシックなシステム開発でよく使われた
JAVA_HOME環境変数は他のアプリがjdkを必要とする時にインストールされている場所を知るために必要
JDKとJRE
jdk
開発と実行
javac(コンパイラ)、jdb(デバッガ)、jre(実行環境)...etc
jre
実行
jvm
https://gyazo.com/0f5d266f4d8ac37031bef098e1c855cd