[白奇仙ジャワ学習]第7週-ギフトバッグ


1.小包


  • クラスを区別するフォルダの概念

  • パッケージは、クラスを作成する唯一の識別子です.

  • Javaは、パッケージの最上位ディレクトリ(ルートディレクトリ)で実行する必要があることを約束しているため、パッケージにはコンパイルされません.

  • パッケージ名とフォルダ名は同じである必要があります.

  • パッケージ名はjavaで始まることはできません.

  • 両者を結合してこそ、完全限定クラス名(FQCN)と呼ばれるクラスを完全に表すことができる.
  • 1.2構築パッケージ


    Javaは開発者が使用するための多くのパッケージとクラスを提供しています.
    すなわち、Java APIに含まれる複数のクラスを含むパッケージ
    構築されたパッケージのタイプは次のとおりです.
  • java.lang:言語サポートクラスを含むパッケージ
  • の基本タイプまたは数学演算を定義するクラス
  • は自動的にインポートされるので、パッケージのクラスをすぐに使用できます.
  • java.io:I/O機能をサポートするクラスを含むパッケージ
  • java.util:データ構造を実装するためのユーティリティクラスを含むパッケージ
  • java.Applet:Appletsを作成するためのクラスを含むパッケージ
  • java.awt:
  • パッケージ、GUIコンポーネントを実装するためのクラスを含む
  • java.Net:
  • パッケージ、ネットワーク機能をサポートするクラスを含む

    2.importキーワード


    他のパッケージ名が見つからないクラスに使用します.
    複数のクラスをパッケージにインポートする場合、importパッケージ名は*インポート可能
    異なるパッケージに同じクラス名が存在し、両方のパッケージがインポートされているため、どのパッケージをロードしたクラスを特定できないため、コンパイルエラーが発生します.したがって、この場合はFQCNを用いて記述する.
    ex)
    package com.mycompany;
    
    import com.hankook.*;
    import com.kumho.*;
    
    public class Car{
    	SnowTire snowTire = new SnowTire();
    	BigWidthTire bigWidthTire = new BigWidthTire();
    
    	com.hankook.Tire hankookTire = new com.hankook.Tire();
    	com.kumho.Tire kumnhoTire = new com.kumho.Tire();
    }

    3.クラスパス


  • クラスのパスを検索します.

  • JVMがプログラムを実行するとき、クラスファイルを検索します.

  • つまり、JVMはCLASSSPATHのパスをチェックして、ライブラリクラスの場所を参照します.ただし、J 2 JDKバージョンからは、必要なクラスライブラリをjrelibextフォルダにコピーすれば、これらのライブラリは使用できますが、特別な場合がない限り設定されません.

  • classpathオプションはjavaコマンドとjavacコマンドで使用できます.

  • 3.1クラスローダ


  • JVMのクラス・ローダは、実行時に$CLASSSPATH環境変数を呼び出して、このディレクトリで定義されたクラスをロードします.

  • クラス・ローダには、次の3種類があります.

  • BootStrap Class Loader
  • 基本クラス、最高級クラス、
  • jre/lib/rt.jarに含まれるJDKクラスファイルをロードします.
  • StringクラスまたはObjectクラスが使用できるのは、BootStrap Class Loaderがメモリに自動的にマウントされるためです.

  • Extension Class Loader
  • Extensionクラス・ローダーはjre/lib/extフォルダまたはjavaです.ext.dirs環境変数指定フォルダのクラスファイルをロードします.

  • System Class Loader
  • は、作成したClassをメモリにアップロードし、ClassPathを基準にクラスをロードするシステムClass Loaderです.
  • 3.2 rt.jar


  • JREとJDKの間に違いがあります.

  • JREは、JDKにjavaプログラムを実行するプログラムのみが含まれている環境です.

  • したがって、JREはclassesです.zipファイルではクラスは検索されません.

  • rt.jarファイルを使用します.

  • rt.jarファイルにはclassesが含まれています.zipと同じクラスをすべて含み、アーカイブ形式とは異なる名前のみが使用されます.Java 1.2のリリースに伴い、classes.zipファイルがなくなりました.

  • 逆に、JDKとJREは「rt.jar」ファイルを使用します.

  • classpathでrt.jarファイルを指定するかどうかはclassesを使用します.zipファイルと同じルールを使用すると、指定する必要はありません.
  • リファレンス
  • 小包
  • 7週目の課題:パッケージ化
  • [whiteship]オンライン学習-7週目小包