JAVA, JDK/JRE/JVM


JAVA


JavaはSun MicrosystemsのJames Goslingと他の研究者によって開発されたオブジェクト向けのプログラミング言語である.
これまで、業界で最も多く使われているオブジェクト向けの言語です.この兄は開発に参加した.

...幸せそうに見える
まあ、JAVAの特徴を調べてみましょう.

JAVA特性

  • オブジェクト向けプログラミング言語.
    オブジェクトの作成、オブジェクトを使用したプロシージャの実行、および完了のプログラミングテクニックを使用します.
  • マルチスレッドをサポートします.
    JAVAにはスレッド作成と制御APIが含まれており、簡単にスレッドを実現できます.
  • 移植性が高い.
    JAVAはJVM上で動作するため、オペレーティングシステムとオペレーティングシステムの制限はありません.
  • 自動管理
  • メモリ.
    C/C++は、オブジェクトに割り当てられたメモリを初期化する必要がありますが、JAVAは、オブジェクトの作成時にメモリを自動的に割り当て、GarbageCollectorが不定期に使用しているオブジェクトを消去します.
  • のダイナミックロードをサポートします.
    実行時には、すべてのclassをロードするのではなく、必要に応じてclassをロードします.
  • 分散型ネットワーク技術をサポートします.
    JAVAは基本的にTCP/IP APIを含み、httpとhttpプロトコルをサポートする.
  • オブジェクト向けプログラミング(OOP)


    オブジェクト向けプログラミングはコンピュータプログラミングのモデルの一つである.オブジェクト向けプログラミングは,コンピュータプログラムを命令リストと見なす観点から,複数の独立したユニット,すなわち「オブジェクト」の集合と理解する.各オブジェクトは、メッセージの送受信とデータの処理を行うことができます.
    プログラムガイドの言語がコードの順序で解釈され、スタックされたプログラミング方法である場合、オブジェクト向けの言語は、開発者が設計図を作成し、その設計図によって生成されたオブジェクトを伝達、設定、および完了するプログラミング方法である.
    例えば、りんごを例に挙げます.
    public class iPhone7 {
        private String phoneNumber;
        private String appleId;
        ...
        
        public void setNumber (String i_phoneNumber) {
            this.phoneNumber = i_phoneNumber;
        }
        
        public String getNumber () {
            return this.phoneNumber;
        }
        
        ...
    }
    このようなiPhone 7の設計図があっても(class)
    iPhone7 carrotsPhone = new iPhone7();
    iPhone7 durianPhone = new iPhone7();
    
    carrotsPhone.setNumber("010-1111-2222");
    durianPhone.setNumber("010-2222-4444");
    対応するiphone設計図によりcarrotsPhonedurianPhoneを作成した.
    各iPhoneには、撮影機能、電話機能、FaceTimeなどの機能が含まれています.
    しかしcarrotsPhonedurianPhoneは同じ携帯電話ですか?carrotsdurianは同じiPhoneを購入したが、その後はそれぞれの電話番号が設定された.設計図で携帯電話を作成することで、携帯電話ごとに格納されているデータが異なります.
    上記の例は、オブジェクト向けプログラミングのコアです.
    特定の機能を実行する設計図を作成し、その設計図を使用してオブジェクトを作成します.
    同じ設計図を使用しても、オブジェクトごとに異なるプロパティがあります.各オブジェクトは、設計図で定義された機能を実行し、渡します.すべてのタスクはオブジェクト単位で実行され、このような一連のプロセスによってプログラムが完了します.これがオブジェクト向けプログラミングです.

    JDK, JRE, JVM


    多分こんな構造があります.

    1. JDK (Java Development kit)


    これはJAVAプラットフォームが登場して以来、最も広く使われているソフトウェア開発キットです.
    簡単に言えば、JAVAコードを行うために必要な開発キットです.基本的に、変数宣言にはString、int、booleanなどが含まれます.JAVAコードを見ると
    import java.util.*;
    こんな文を見たはずです.これがJDKに含まれていると言えば簡単です
    JDKにはjavac(コンパイラ)が存在し、コンパイラによってJAVAソースファイルをクラスファイルに加工することができます.

    2. JRE (Java Runtime Enviroment)


    JREは、JAVA開発キット(JDK)の一部として、JAVA仮想マシン(JVM)、JAVAクラスライブラリ、Javaクラスローダから構成されています.
    何を言っているのか、運行環境だと思ってください.
    JVMを駆動する前に、コンパイルされたJavaクラスファイルを取得して接続します.

    3. JVM (Java Virtual Machine)



    Java仮想マシンは、Javaバイトコードを実行できる本体です.
    スタックベースの仮想マシンを使用して、実際にコンパイル・ロードされたクラスを実行します.

    Garbage collector


    Garbage collectionは、プログラムが動的に割り当てたメモリ領域に不要な領域を解放するメモリ管理技術の1つです.Javaは、JVMの内部に次の操作を実行するためのGarbageコレクタを備えています.
    Garbage collectorについては、次の記事で詳しく紹介します.

    サマリ


    JDK:JAVAソース読み/書き
    JRE:JAVAソース読み出し
    JVM:javacにコンパイルしてクラスバイトコードを実行

    一番大切なのは、どうせJDKを敷いたら全部敷いておきます。


    整理する


    今日はJAVAと開発ツールJDK、ランタイムJRE、仮想マシンJVMについてご紹介します.この記事では、JAVA運用環境の構成については説明しません.私は形式的なブログの文章を書きたくない.
    今晩は海鮮麺です.🥕
    関連項目:https://velog.io/@cateto/Java-Eclipse%EC%97%90-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-%EC%8B%9C-jdk-jre-%EC%B0%A8%EC%9D%B4
    https://medium.com/@lazysoul/jvm-%EC%9D%B4%EB%9E%80-c142b01571f2