Java の学習: Java 言語の概要

1. Java言語の概要

  • 1995 年に SUN (Stanford University Network、Stanford University Network Company) によって開発された高級プログラミング言語です。
  • インターネット指向のプログラミング言語です。Java は当初、Java プログラムが Web ブラウザーで実行できるため魅力的でした。これらの Java プログラムは Java アプレットと呼ばれます。アプレットは、最新のグラフィカル ユーザー インターフェイスを使用して Web ユーザーと対話します。アプレットは HTML コードに埋め込まれます。
  • Web における Java テクノロジの継続的な成熟により、Java は Web アプリケーションの開発言語として推奨されるようになりました。
    バックグラウンド開発: Java、PHP、Python、Go、Node.js

1.1 応用分野

Java のアプリケーション分野から見ると、Java 言語のアプリケーションの方向性は主に次の側面に現れます。

  • エンタープライズ レベルのアプリケーション: 主に、大企業の複雑なソフトウェア システムやさまざまな種類の Web サイトを指します。Java のセキュリティ メカニズムと
    クロスプラットフォームの利点により、Java は分散システムの開発で広く使用されています。アプリケーションには、金融、電気通信
    、輸送、電子商取引などが含まれます。
  • Android プラットフォーム アプリケーション: Android アプリケーションは Java 言語で書かれています。Android 開発のレベルは、Java 言語のコア機能がしっかりしているかどうかに大きく依存します。
  • ビッグデータプラットフォームの開発:Hadoop、spark、storm、flinkなどのさまざまなフレームワークがあります。この種のテクノロジーエコシステムに関しては、flume、kafka、sqoopなどのさまざまなミドルウェアもあります。これらのフレームワークやツールのほとんどが使用されていますJava で書かれていますが、プログラミング用に Java、scala、Python、R などのさまざまな言語 API を提供します。

  • モバイル分野のアプリケーション: 主にコンシューマおよび組み込み分野で、携帯電話、PDA、セットトップ ボックス、車載通信機器などのさまざまな小型デバイス上のアプリケーションを指します。

1.2 主な特徴

  • Java 言語は習得が簡単です。Java 言語の構文は C および C++ の構文に非常に似ているため、ほとんどのプログラマは Java を簡単に学習して使用できます。
  • Java 言語は必須のオブジェクト指向です。Java 言語は、クラス、インターフェイス、継承などのプリミティブを提供します。簡単にするために、クラス間の単一継承のみがサポートされていますが、インターフェイス間の複数の継承がサポートされており、クラスとインターフェイス間の実装メカニズムがサポートされています (キーワードはimplements)。
  • Java言語が配布されています。Java 言語はインターネット アプリケーションの開発をサポートします。基本的な Java アプリケーション プログラミング インターフェイスにはネットワーク アプリケーション プログラミング インターフェイス (Java net) があり、URL、URLConnectionSocket、ServerSocket などのネットワーク アプリケーション プログラミング用のクラス ライブラリを提供します。Java の RMI (Remote Method Activation) メカニズムも、分散アプリケーションを開発する重要な手段です。
  • Java 言語は堅牢です。Java の強力な型メカニズム、例外処理、自動ガベージ コレクションなどは、Java プログラムの堅牢性を保証する重要な要素です。ポインタの破棄は Java の賢明な選択です。
  • Java 言語は安全です。Java は通常ネットワーク環境で使用されるため、Java は悪意のあるコードの攻撃を防ぐセキュリティ メカニズムを提供します。例: セキュリティ防止メカニズム (クラス ClassLoader)、同じ名前を持つローカル クラスの置換を防ぐための異なる名前空間の割り当て、バイト コード インスペクションなど。
  • Java 言語はアーキテクチャに中立です。Java プログラム (接尾辞 java が付いたファイル) は、Java プラットフォーム上でアーキテクチャに依存しないバイトコード形式 (接尾辞 class が付いたファイル) にコンパイルされ、Java プラットフォームを実装する任意のシステム上で実行できます。
  • Java 言語が解釈されます。前述したように、Java プログラムは Java プラットフォーム上でバイトコード形式にコンパイルされ、Java プラットフォームを実装する任意のシステムのインタプリタで実行できます。
  • Java の方が若干パフォーマンスが優れています。これらの解釈された高級スクリプト言語と比較すると、Java のパフォーマンスは依然として優れています。
  • Java 言語はマルチスレッドをネイティブにサポートしています。Java 言語では、スレッドは Thread クラスまたはその子 (孫) クラスによって作成される必要がある特別なオブジェクトです。

1.3 動作メカニズムと動作プロセス

Java言語の特徴
特徴1:オブジェクト指向

两个基本概念:类、对象
三大特性:封装、继承、多态

特長2:堅牢性

吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),
提供了一个相对安全的内存管理和访问机制

特徴3:クロスプラットフォーム

跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。
“Write once , Run Anywhere”
原理:只要在需要运行 java 应用程序的操作系统上,
先安装一个Java虚拟机 (JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。

Java の 2 つのコアメカニズム
1: Java 仮想マシン
ここに画像の説明を挿入

ここに画像の説明を挿入
2: ガベージコレクション
ここに画像の説明を挿入

1.4 開発経験

ステップ:

  • Javaコード書く拡張子が .java のファイルにコピーします。
  • javac コマンドを使用して Java ファイルを実行します。コンパイル
  • 生成されたクラスファイルをjavaコマンドで実行します。走る
    ここに画像の説明を挿入
    最初の Java プログラム
public class Text{
    
    
	public ststic void main(String[] args){
    
    
	System.out.println("Hello World!")l
	}
}
>>Hello World

最初のプログラムの概要

  • Java ソース ファイルの拡張子は「java」です。ソース ファイルの基本コンポーネントはクラスです (この例の HelloWorld クラスなど)。
  • Java アプリケーションの実行エントリ ポイントは main() メソッドです。固定された記述形式があります。
    public static void main(String[] args) {…}
  • Java 言語では大文字と小文字が厳密に区別されます。
  • Java メソッドはステートメントで構成され、各ステートメントは「;」で終わります。
  • 中括弧はペアで表示され、必須です。
  • ソース ファイルにはパブリック クラスを 1 つだけ含めることができます。他のクラスの数に制限はありませんが、ソース ファイルにパブリック クラスが含まれる場合、ファイル名はクラス名に応じた名前にする必要があります。

1.5 Java API

  • API(Application Programming Interface、アプリケーションプログラミングインターフェイス)とは、
    Javaが提供する基本的なプログラミングインターフェイスです。
  • Java 言語は多数の基本クラスを提供するため、Oracle はこれらの基本クラスに対応する API ドキュメントも提供し、これらのクラスとこれらのクラスに含まれるメソッドの使用方法を開発者に伝えます。
  • ダウンロードAPI:
    https://docs.oracle.com/javase/8/docs/api/index.html
    ここに画像の説明を挿入

一般的に使用される API の概要
https://blog.51cto.com/u_15067223/4843315?articleABtest=1

復習と宿題

1. Java言語の特徴は何ですか?

オブジェクト指向: 2 つの基本概念: クラスとオブジェクト、3 つの主要な機能: カプセル化、継承、ポリモーフィズム
堅牢性: C/C++ 言語の利点を吸収しながら、プログラムの堅牢性に影響を与える部分 (ポインター、メモリ アプリケーションなど) を削除およびリリースなど)、
クロスプラットフォームで比較的安全なメモリ管理およびアクセス メカニズムを提供します。Java言語で書かれたアプリケーションは、さまざまなシステム プラットフォームで実行できます。「一度書けば、どこでも実行可能」

2. System.out.println() と System.out.print() の違いは何ですか?

次のコードを実行するとどのような効果がありますか?
System.out.println(); 印刷後は折り返します。
System.out.print(); 印刷後は折り返されません。

3. 複数のクラス (内部クラスではない) を「.java」ソース ファイルに含めることはできますか? 制限事項は何ですか?

できる。ただし、ファイル名と同じように、パブリックとして宣言されるクラス名は最大でも 1 つだけです。

4.Something クラスのファイル名は OtherThing.java です。

class Something {
    
    
    public static void main(String[] something_to_do) {
    
            
        System.out.println("Do something ...");
    }
}

正しい。Java のクラス名はファイル名と同じでなければならないなどとは誰も言っていません。ただし、パブリック クラスの名前はファイル名と同じである必要があります。

5. パスを設定する理由 (またはパスを設定する目的) は何ですか?

目的は、コンソール内の任意のファイル パスの下にある jdk で指定されたディレクトリ内のすべての命令を呼び出すことです。

6. JDK、JRE、JVM の関係は何ですか?

JDK には JRE が含まれ、JRE には JVM が含まれます
JDK=JRE+Java コア開発ツール
JRD=JVM+JAVA コア クラス ライブラリ
ここに画像の説明を挿入

7. ソースファイル名はクラス名と同じである必要がありますか? そうでない場合、どのような状況で同じでなければならないのでしょうか?

Java ソース ファイル内で複数のクラスを宣言できます。ただし、パブリックに宣言できるクラスは最大 1 つです。
また、publicとして宣言したクラスのクラス名はソースファイル名と同じである必要があります。

8. GC とは何ですか? GC があるのはなぜですか?

GCとはガベージ コレクション(Gabage Collection) のことです。メモリの処理はプログラマにとって問題が発生しやすい場所です。
メモリの回復を忘れたり、間違ったりすると、プログラムやシステムが不安定になったり、クラッシュしたりする可能性があります。Java が提供する GC 機能は、プログラムやシステムが正常に動作しているかどうかを自動的に監視できます。オブジェクトがスコープを超えてメモリを自動的に再利用するという目的を達成するために、Java 言語には割り当てられたメモリを解放するための明示的な操作メソッドが提供されていません。

9. ガベージ コレクターの基本原理は何ですか? ガベージ コレクターはメモリをすぐに再利用できますか? ガベージ コレクションを実行するように仮想マシンに積極的に通知する方法はありますか?

GC の場合、プログラマがオブジェクトを作成すると、GC はオブジェクトのアドレス、サイズ、使用状況の監視を開始します。通常、GC は有向グラフを使用して、ヒープ内のすべてのオブジェクトを記録および管理します。このようにして、どのオブジェクトが「到達可能」でどのオブジェクトが「到達不能」であるかが決定されます。
一部のオブジェクトが「到達不能」であると GC が判断した場合、GC はこれらのメモリ空間を再利用する責任があります。できる。プログラマはSystem.gc()を手動で実行して GC の実行を通知できますが、Java 言語仕様では GC の実行が保証されていません。

10. ハートの形を出力するコードを記述します。

class PrintHeart1 {
    
    
	public static void main(String[] args) {
    
    

		System.out.print("\t" + "*" + "\t\t\t\t\t\t\t\t\t\t\t\t" + "*" + "\t" + "\n");
		System.out.print("*" + "\t\t" + "*" + "\t\t\t\t" + "I love Java" + "\t\t\t\t" + "*" + "\t\t" + "*" + "\n");
		System.out.print("\t" + "*" + "\t\t\t\t\t\t\t\t\t\t\t\t" + "*" + "\t" + "\n");
		System.out.print("\t\t" + "*" + "\t\t\t\t\t\t\t\t\t\t" + "*" + "\t\t" + "\n");
		System.out.print("\t\t\t" + "*" + "\t\t\t\t\t\t\t\t" + "*" + "\t" + "\n");
		System.out.print("\t\t\t\t" + "*" + "\t\t\t\t\t\t" + "*" + "" + "\t" + "\n");
		System.out.print("\t\t\t\t\t" + "*" + "\t\t\t\t" + "*" + "" + "\t\t" + "\n");
		System.out.print("\t\t\t\t\t\t" + "*" + "\t\t" + "*" + "" + "\t\t" + "\n");
		System.out.print("\t\t\t\t\t\t\t" + "*" + "\n");

	}

}

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_52357829/article/details/129226383