プラグラミング言語、Javaの概要をまとめました。
Javaについて
Javaは、Webをより一層楽しく便利にするアプリケーションを開発するためのテクノロジです。 JavaはJavaScriptとは別のものです。
https://www.java.com/ja/about/whatis_java.jsp
Java言語の概要
Javaは、Webアプリケーションや業務システム、サーバーサイド開発など、幅広い分野で利用されているプログラミング言語です。オブジェクト指向を採用しており、Java仮想マシン(JVM)上でプログラムを実行することで、異なるOSや環境でも動作させやすい特徴があります。
企業の大規模なシステム開発でも広く利用されており、Javaを使用した開発では、プログラミングの基本構文だけでなく、オブジェクト指向やクラス、例外処理などの知識も重要になります。
「Java」という名称の由来
Javaは、開発当初から「Java」という名称だったわけではありません。Javaの開発者であるJames Gosling(ジェームズ・ゴスリン)らが開発していたプログラミング言語は、当初「Oak(オーク)」と呼ばれていました。
The Java programming language was originally called Oak, and was designed for use in embedded consumer-electronic applications by James Gosling. After several years of experience with the language, and significant contributions by Ed Frank, Patrick Naughton, Jonathan Payne, and Chris Warth it was retargeted to the Internet, renamed, and substantially revised to be the language specified here. The final form of the language was defined by James Gosling, Bill Joy, Guy Steele, Richard Tuck, Frank Yellin, and Arthur van Hoff, with help from Graham Hamilton, Tim Lindholm, and many other friends and colleagues.
参考:https://docs.oracle.com/javase/specs/jls/se7/html/jls-0-preface1.html
プログラミング言語の「Java」は、インドネシアのジャワ島に由来する「ジャワコーヒー」が名前の由来です。1990年代初頭に言語を開発していたチームメンバーがコーヒー好きだったことから名付けられました。
Java言語の特徴
Java言語には次の特徴があります。
- プラットフォーム非依存(OSを選ばない):JVM(Java仮想マシン)を経由して動作するため、WindowsやMacなど異なるOSでも同じプログラムをそのまま実行できます。
- オブジェクト指向:プログラムを機能やデータごとの独立した部品(オブジェクト)として設計するため、コードの再利用や大規模なチーム開発が効率的になります。
- 高い信頼性と安定性:実行前のコンパイル段階でデータ型などを厳密にチェックする「静的型付け」を採用しており、重大なエラーを未然に防ぎます。
- メモリの自動管理:不要になったメモリを自動で解放する「ガベージコレクション」機能があり、安定した長時間稼働を支えます。
- 豊富なライブラリとフレームワーク:Spring Bootなどの便利なフレームワークが充実しており、高品質なシステムを効率よく開発できます。
Java言語でプログラムを作成する
Java言語は例えば以下のように記述します。
public class Test {
public static void main (String[] args){
System.out.print("Hello");
}
}
記述したファイルは、コンパイルと呼ばれる処理を実行することで、JVM上で実行が可能なクラスファイルが作成されます。
Java言語で書いたプログラムを実行するにはまずはコンパイルする
Javag言語で作成したプログラムを実行するには、まずは「コンパイル」と呼ばれる処理を実施します。
Javaは人間に読みやすくするためのプログラミング言語と呼ばれるものですが、コンピュータはプログラミング言語を認識できず、コンピュータがプログラミング言語で書かれたものを認識できる状態にするのが「コンパイル」と呼ばれる処理です。
Javaで書いたプログラムのコンパイルを実行するには以下のコマンドを実行します。
javac Test.java
上記のようにコンパイルを実行すると、「Test.class」という名前のファイルが作成されます。
コンパイルしたファイルをJVMで実行する
javacでコンパイルしたファイルは以下のコマンドを実行することでJVM上で実行可能です。
java Test
Hello
JVMで実行するコンパイル後のファイルは、OSに依存しない
javacを実行して作成されたクラスファイルは、どのOSで実行してもJVM上で処理されるので、OSに依存せずプログラムの作成と実行が可能です。
オブジェクト指向の概要
オブジェクト指向とは、プログラムを「役割を持ったモノ(オブジェクト)」の集まりとして設計する考え方です。
例えばゲームを開発する場合、「プレイヤー」「敵」「アイテム」「武器」などをそれぞれ独立したオブジェクトとして考えます。プレイヤーであれば「名前」「HP」「レベル」といったデータを持ち、「移動する」「攻撃する」「ダメージを受ける」といった処理を行います。
このように、関連するデータと処理をひとまとまりにしてプログラムを構成することで、役割や責任範囲を整理しやすくなります。また、適切に設計することで機能の追加や修正、プログラムの再利用もしやすくなり、大規模なソフトウェアを管理しやすくなります。
オブジェクト指向で作成したJavaのソースコードの例は以下の通りです。
class Player {
String name;
int hp;
Player(String name, int hp) {
this.name = name;
this.hp = hp;
}
void attack() {
System.out.println(name + "が攻撃しました!");
}
void takeDamage(int damage) {
hp -= damage;
System.out.println(name + "のHPは" + hp + "になりました。");
}
}
public class Main {
public static void main(String[] args) {
Player player = new Player("勇者", 100);
player.attack();
player.takeDamage(20);
}
}
この例では、Player クラスの中に「名前やHPというデータ」と「攻撃する・ダメージを受けるという処理」をまとめています。
new Player("勇者", 100) によって、Player クラスをもとに実際のオブジェクト(インスタンス)を生成しています。
実行結果は次のようになります。
勇者が攻撃しました!
勇者のHPは80になりました。
