- Javaとは何でしょうか?
- Javaプラットフォームとは何ですか?
- Javaの定義と意味
- Javaプログラミング言語の歴史
- Javaバージョン
- Java機能
- Javaプログラミング言語のコンポーネント
- Java Development kit (JDK)
- なぜ JDK を使用するのですか?
- Java Virtual Machine (JVM):
- なぜJVMなのか
- Java Runtime Environment (JRE)
- なぜJREを使用するのですか?
- 異なるタイプの Java プラットフォーム
- パソコンとは
- アセンブリ言語とは?
- アセンブラとコンパイラとは
- Java仮想マシンはどのように動作するのか?
- How is Java Platform Independent?
Javaとは何でしょうか?
Javaは、クラスベースの汎用オブジェクト指向プログラミング言語であり、実装依存性が少ないように設計されています。 これは、アプリケーション開発のためのコンピューティングプラットフォームです。 Javaは、したがって、高速で安全であり、信頼性があります。 ノートパソコン、データセンター、ゲーム機、科学用スーパーコンピュータ、携帯電話など、Javaアプリケーションの開発に広く利用されている。
Javaプラットフォームとは何ですか?
Java Platformは、プログラマーがJavaプログラミング・アプリケーションを効率的に開発し実行するためのプログラムの集合体です。 それには、実行エンジン、コンパイラ、およびライブラリのセットが含まれています。 コンピュータのソフトウェアと仕様のセットである。 サン・マイクロシステムズでジェームズ・ゴスリングがJavaプラットフォームを開発し、後にオラクル・コーポレーションがこれを買収した。
このJavaチュートリアルでは、以下を学習します。
- Javaとは?
- Javaプラットフォームとは?
- Java Definition and Meaning
- Javaは何のために使用されるのか?
- Javaプログラミング言語の歴史
- Javaのバージョン
- Javaの機能
- Javaプログラミング言語のコンポーネント
- Javaプラットフォームの種類
- PCとは何でしょうか?
- アセンブリ言語とは?
- アセンブラとコンパイラとは?
- Java仮想マシンの仕組みは?
- Javaプラットフォームはどのように独立している?
このビデオはJavaプラットフォームを紹介し、なぜJavaがプログラミング言語だけでなくプラットフォームであるかも説明します。
動画にアクセスできない場合はこちら
Javaの定義と意味
Javaはマルチプラットフォーム、オブジェクト指向、およびネットワーク中心の言語である。 これは、最も使用されているプログラミング言語の一つです。 また、Javaはコンピューティングプラットフォームとしても使用されます。
高速で、安全で、信頼できるプログラミング言語の1つとして、ほとんどの組織でプロジェクトの構築に好まれていると考えられています。
ここでは、いくつかの重要なJavaアプリケーションを紹介します。
- それは、Androidアプリの開発に使用されています
- エンタープライズソフトウェアを作成するのに役立ちます
- モバイルJavaアプリケーションの広い範囲
- 科学計算アプリケーション
- ビッグデータ解析に使用
- ハードウェアデバイスのJavaプログラミング
- Apacheのようにサーバー側の技術に使用されて、JBoss、GlassFish、など。
Javaプログラミング言語の歴史
Java言語の歴史から重要なランドマークを紹介します。
- Java言語は当初OAKと呼ばれていた。
- 当初は携帯機器やセットトップボックスを扱うために開発された。 Oak は大失敗でした。
- 1995年に、Sun は名前を「Java」に変更し、急成長する WWW (World Wide Web) 開発ビジネスを利用するために言語を修正しました。
- その後、2009年に Oracle Corporation が Sun Microsystems を買収し、Sun の 3 つの主要ソフトウェア資産を所有することになりました。
Javaバージョン
以下は、すべてのJavaバージョンのリリース日およびその歴史である。
Java のバージョン | リリース日 |
JDK Alpha と Beta | 1995 |
JDK 1.0 | 1996/01/23 |
JDK 1.1 | 1997年2月19日 |
J2SE 1.2 | 1998年12月8日 |
J2SE 1.3 | 2000年5月8日 |
J2SE 1.4 | 2002年2月6日 |
J2SE 5.0 | |
J2SE 6.00 | 2004/09/30 |
Java SE 6 | 2006/12/11 |
Java SE 7 | 2011/07/28 |
2014年3月18日 | |
Java SE 9 | 2017年9月21日 |
Java SE 10 | 2018年3月20日 |
JAVA SE 11 | 25th 2018年9月 |
JAVA SE 12 | 19th Mar 2019 |
JAVA SE 13 | 17th Sep 2019 |
JAVA SE 14 | 17th Mar 2020年 |
JAVA SE 15 | 15th Sep 2020(最新Javaバージョン) |
Java機能
ここでは、重要なJava機能をいくつか紹介します。
- 習得が容易なプログラミング言語のひとつです。
- 一度コードを書けば、ほぼすべてのコンピュータ・プラットフォームで実行可能です。 あるマシンで開発したプログラムを別のマシンで実行することができます。
- オブジェクト指向アプリケーションを構築するために設計されています。
- 自動メモリ管理を備えたマルチスレッド言語です。
- インターネットの分散環境向けに作成されています。
- ネットワーク中心のため、分散コンピューティングを容易にする。
Javaプログラミング言語のコンポーネント
Javaプログラマは、ソースコードと呼ばれる人間が読める言語でプログラムを記述する。 そのため、CPUやチップはどのようなプログラミング言語で書かれたソースコードも理解することはできない。
これらのコンピュータやチップは、機械語やコードと呼ばれる1つのものだけを理解します。 これらの機械語コードはCPUレベルで実行されます。 したがって、他のモデルのCPUでは異なるマシンコードになります。
ただし、プログラミングはソースコードがすべてなので、マシンコードについては心配する必要はない。 このソースコードを機械が理解し、機械が理解できるコード、つまり実行可能なコードに変換するのです。
これらの機能はすべて、次の3つのJavaプラットフォーム・コンポーネントの内部で発生します。
Java Development kit (JDK)
JDKはアプレットやJavaアプリケーションを作成するためのソフトウェア開発環境である。 JDKの完全な形はJava Development Kitである。 Java開発者は、Windows、macOS、Solaris、およびLinuxで使用することができる。 JDKは、Javaプログラムのコーディングと実行を支援します。 同じコンピューターに複数のJDKバージョンをインストールすることができます。
なぜ JDK を使用するのですか?
以下、JDK を使用する主な理由を説明します。
- JDK には Java プログラムを記述し、それらを実行する JRE に必要なツールが含まれています。
- コンパイラー、Java アプリケーションランチャー、Appletviewer などです。
- Java アプリケーションランチャーは JRE を開き、必要なクラスをロードし、そのメインメソッドを実行します。
Java Virtual Machine (JVM):
Java Virtual Machine (JVM) は Java コードまたはアプリケーションを動かすための実行時環境を提供するエンジンです。 Java バイトコードを機械語に変換します。 JVMはJava実行環境(JRE)の一部である。 他のプログラミング言語では、コンパイラは、特定のシステム用の機械語を生成する。 しかし、Javaコンパイラは、Java仮想マシンと呼ばれる仮想マシン用のコードを生成する。
なぜJVMなのか
ここで、JVMを使用する重要な理由を説明します。
- JVMは、Javaソースコードを実行するためのプラットフォームに依存しない方法を提供します。
- 一度Javaプログラムを実行すると、どのプラットフォームでも実行でき、多くの時間を節約できます。
- JVMにはJIT (Just-in-Time) コンパイラが付いており、Javaソースコードを低レベルのマシン語に変換します。 したがって、通常のアプリケーションよりも高速に動作します。
Java Runtime Environment (JRE)
JRE は、他のソフトウェアを実行するために設計されたソフトウェアの一部分です。 クラスライブラリ、ローダクラス、JVMが含まれている。 簡単に言うと、Javaプログラムを実行したい場合、JREが必要です。 プログラマーでない場合は、JDKをインストールする必要はなく、JREだけでJavaプログラムを実行することができます。
なぜJREを使用するのですか?
ここで、JREを使用する主な理由を説明します。
- JRE には、クラス ライブラリ、JVM、およびその他のサポート ファイルが含まれています。 デバッガ、コンパイラなどの Java 開発のためのツールは含まれていません。
- 数学、スイング、util、lang、awt、およびランタイムライブラリなどの重要なパッケージクラスが使用されています。
- Java アプレットを実行する必要がある場合は、JRE をシステムにインストールする必要があります。
異なるタイプの Java プラットフォーム
Javaプログラミング言語プラットフォームには、4つのタイプがあります。
1. Java Platform, Standard Edition (Java SE)。 Java SEのAPIは、Javaプログラミング言語のコア機能を提供します。 これは、高レベルのクラスへの型とオブジェクトのすべての基礎を定義します。 ネットワーク、セキュリティ、データベースアクセス、グラフィカル・ユーザー・インターフェース(GUI)開発、XMLパースなどに使用される。
2.Java Platform, Enterprise Edition (Java EE)。 Java EE プラットフォームは、高度にスケーラブルで大規模、多層、信頼性が高く、安全なネットワーク・アプリケーションを開発および実行するための API とランタイム環境を提供します。
3. Java Programming Language Platform, Micro Edition (Java ME): Java MEプラットフォームは、携帯電話などの小型デバイスでJavaプログラミング言語アプリケーションを実行するAPIとスモールフットプリント仮想マシンを提供する。
4. Java FX: JavaFXは、軽量のユーザーインタフェースAPIを用いたリッチインターネットアプリケーションを開発するためのプラットフォームである。 それは、Javaがより高性能なクライアントとモダンなルックアンドフィールを活用するためのハードウェアアクセラレーションされたグラフィックスとメディアエンジン、およびネットワーク化されたデータソースに接続するための高レベルのAPIを利用します。
Javaプログラミング言語を理解するためには、コンピュータプログラムがどのようにコマンドを実行し、アクションを実行することができるかについて、いくつかの基本概念を理解する必要があります。
パソコンとは
パソコンとは、計算を行うことができる電子機器です。 モニター、キーボード、マウス、情報を保存するためのメモリなどで構成されていることは周知のとおりです。 しかし、コンピュータの最も重要な構成要素は「プロセッサ(PROCESSOR)」です。 しかし、問題は、コンピュータがどのように思考しているかということです。 テキスト、画像、ビデオなどをどのように理解するのでしょうか?
アセンブリ言語とは?
コンピュータは電子機器であり、電子信号または2進信号のみを理解することができます。 例えば、5ボルトの電子信号は2進数の1を表し、0ボルトは2進数の0を表すことがあります。ですから、PCにはこれらの信号が絶えず降り注いでいるのです。
こうした信号の8ビットをグループ化し、テキスト、数値、記号を解釈しているのです。
例えば、#記号はコンピュータによって10101010と認識される。 同様に、関数を足すパターンは10000011と表される。
これは8ビット計算と呼ばれるものである。 現在のプロセッサは64ビットの時間をデコードすることができる。 しかし、この概念とプログラミング言語JAVAとの関係はどうなっているのだろうか。 例として、これらを理解することにしよう。
ある2進数(10000011)で表される2つの数字(1+2)を足すようにコンピュータに指示したい場合、どのようにしてコンピュータに伝えるのでしょうか。 そうです、アセンブリ言語を使ってコードを実行させるのです。
“アセンブリ言語はソフトウェア開発言語の最も初歩的な形態である。”
下図のような形式で、コンピュータに命令を出すことになります。 この言語で2つの数字を足すコードは、このような順番になります。
- 1番をAというメモリ位置に格納
- 2番をBというメモリ位置に格納
- A場所の内容を追加& B
- 結果を格納
しかしこれをどうやるのでしょう。 1950年代、コンピュータが巨大で大量の電力を消費していた頃、マッピングシートを使って、アセンブリコードを1と0に対応するマシンコードに変換していましたね。 その後、このコードをマシンカードに打ち込んで、コンピュータに供給する。 コンピュータはこのコードを読み取り、プログラムを実行する。 これは、ASSEMBLERが登場するまでは、長いプロセスでした。
アセンブラとコンパイラとは
技術の進歩に伴い、入出力デバイスが発明されました。 アセンブラを使えば、PCに直接プログラムを打ち込むことができます。 アセンブラはそれを対応する機械語コード(110001…)に変換し、プロセッサに送り込みます。 (1+2)の足し算の例に戻ると、アセンブラはこのコードをマシンコードに変換して出力する。
それはさておき、コードの出力を表示するために、オペレーティング システムが提供する関数を呼び出すことも必要です。
しかし、単独ではアセンブラはこのプロセスに関与せず、長いコードを小さなコードの塊にコンパイルするためにコンパイラも必要です。 ソフトウェア開発言語の進歩により、COMPILERというソフトを使えば、このアセンブリコード全体をたった1行のprint f 1+2 Aに縮めることができるのです。 これは、c言語のコードをアセンブリコードに変換するために使用されます。 アセンブラは、それを対応する機械語に変換する。 この機械語コードがプロセッサに伝達される。 PCやコンピューターに使われているプロセッサーは、インテルプロセッサーが一般的です。
現在のコンパイラにはアセンブラが付属しており、上位言語のコードを直接機械語に変換することができます。
さて、このIntelプロセッサの上でWindowsオペレーティングシステムが動くとすると、オペレーティングシステムとプロセッサの組み合わせをプラットフォームと呼びます。 世界で最も一般的なプラットフォームはWindowsで、IntelはWintel Platformと呼ばれています。 その他、AMDやLinux、Power PC、Mac OS Xなども一般的なプラットフォームです。
さて、プロセッサが変わると、アセンブリ命令も変わってきます。 たとえば
- Intel の ADD 命令は、AMD
- OR Power PC
そして、OS が変われば、OS レベルの呼び出しのレベルや性質も変わってくるでしょう。
開発者としては、収益を最大化するために、自分のソフトウェア プログラムがすべてのプラットフォームで動作するようにしたいのです。 そのため、print f コマンドをネイティブのマシンコードに変換するコンパイラを別途購入する必要があります。
しかし、コンパイラは高価ですし、互換性の問題が発生する可能性もあります。 したがって、異なる OS やプロセッサ用に別々のコンパイラを購入しインストールすることは現実的ではありません。 では、別の解決策はあるのでしょうか。
Java仮想マシンはどのように動作するのか?
この問題は、Java Virtual Machineを使うことで解決することができます。 しかし、異なるプロセッサやO.S.でどのように動作するのか、順を追って理解していきましょう。
ステップ1)2つの数字の足し算を表示するコードをSystem.out.println(1+2)とし、.javaファイルとして保存します。
ステップ2) javaコンパイラを使って、バイトコードと呼ばれる中間コードに変換されます。 出力は.classファイルです。
ステップ3) このコードはどのプラットフォームでも理解されず、Java仮想マシンと呼ばれる仮想プラットフォームでのみ理解される。
ステップ4) このVirtual Machineは、OSのRAMに常駐しています。 Virtual Machineはこのバイトコードを与えられると、作業中のプラットフォームを識別し、バイトコードをネイティブのマシンコードに変換する。
PCで作業しているときやウェブを閲覧しているとき、これらのアイコンのいずれかが表示されたら、Java仮想マシンがRAMにロードされていることを確認してください。 しかし、Javaが有利なのは、一度コンパイルされたコードは、すべてのPCプラットフォームだけでなく、Javaをサポートする携帯電話やその他の電子機器でも実行できることです。
したがって、
「Java はプログラミング言語であると同時にプラットフォーム」
How is Java Platform Independent?
C コンパイラと同様、Java コンパイラは特定のマシン用のネイティブ実行コードを生成することはありません。 その代わり、Javaはバイトコードと呼ばれる独自の形式を生成します。 これは仮想マシン仕様で定められた規則に従って実行されます。 したがって、Javaはプラットフォームに依存しない言語です。
バイトコードは、どのOSにインストールされたどのJVMでも理解できる。 つまり、javaのソースコードはすべてのOS上で実行できる。
まとめ。
- Java はマルチプラットフォーム、オブジェクト指向、およびネットワーク中心のプログラミング言語です。 Java は汎用クラスベース、オブジェクト指向プログラミング言語です。
- Java Platform は、プログラマーが Java アプリケーションを効率的に開発および実行するためのプログラムの集合体です。 Javaは、マルチプラットフォームおよびネットワーク中心のプログラミング言語です。
- それは主にAndroidアプリとエンタープライズソフトウェアの開発に使用されます。
- 2009, Oracle CorporationはSun Microsystemsを買収し、3つの主要なSunソフトウェア資産を所有することになりました。
- Javaの最新バージョンは、2020年9月15日にリリースされました
- Javaの最大の特徴は、それが学ぶために最も簡単なプログラミング言語の一つであることです
- Javaプログラミング言語プラットフォームの4種類があります。 1) Java Platform, Standard Edition (Java SE) 2) Java Platform, Enterprise Edition (Java EE) 3) Java Platform, Micro Edition (Java ME) 4) JavaFX
- Computer is an electronic device capable of performing computations.
- The computer only understands electronic signals or binary signals.
- Assembler is an advanced technology that converts source core to corresponding machine code (110001..) and feeds to your processor.
Acerはソースコードを、機械語コードに変換する高度な技術です。