1〜2年前にJavaを学習してから、最近はJavaScript(Node.js)やAWSといった学習がメインでJavaからは久しく離れてました。
最近Java知識が必要になる可能性が出たので、簡単に復習がてら学習を行おう!と思った次第。その備忘録として記事にしています。Qiita初投稿です。
その0では主にJava言語についてと環境構築、Hello Worldをコンソールに表示するまでの内容がメインです。
Javaの特徴
- OSに依存しない(OS非依存)
- オブジェクト指向
- 静的型付け言語
- JVMによるメモリ管理
※C言語(1972年) → C++(1983年) → Java(1996年) の順番で登場している
Java実行までの流れ
OS非依存を実現しているのがJava Virtual Machine(JVM
)
人間が書いたり読んだりできるコード(高級言語
)は機械側では理解できない。
(機械が理解できるのは0と1の羅列で構成された機械語)
C言語やJava言語といった高級言語を機械語に翻訳することをコンパイル
と呼ぶ。
また、上記のコンパイルは全文を一括で機械語に翻訳するのに対し、処理順に機械語に翻訳しながら実行するのをインタプリタ
と呼ぶ。
Javaの場合は少し特殊で、
- コンパイルした際に機械語の中間コードを作成する。これを
バイトコード
と呼ぶ。拡張子は**.class** - 実行する際にバイトコードをインタプリタで機械語に翻訳して実行する。(JVMが担当)
なお、JVMはWindowsやLinuxといったOS毎に提供されており、各OS毎の機械語に翻訳される。
Javaの最新バージョン
最新はJava SE15(2021年2月現在)
学習面では最新ではなくSE8やSE11で十分
エディション一覧
- Java ME(Micro Edition)
組み込み機器、モバイル向けのエディション - Java SE(Standard Edition)
標準のエディション、Javaを一から学習するならこれ - Java EE(Enterprise Edition)
サーバー向け、Web開発はこっち
Javaのインストール
下記リンク先をスクロールしていくとSE8やSE11がDL可能
※Oracleのアカウント登録(無料)が必要
Java SE - Downloads
各OS毎にJDKが用意されており、適宜OSにあったJDKをダウンロードする。
Mac
- macOS Installer右側にあるjdk-11.0.10_osx-x64_bin.dmgをクリック
- Oracleアカウントログインを求められるので、アカウントがない場合はここで新規登録を行う
- ダウンロードしたjdk-11.0.10_osx-x64_bin.dmgをクリック
- 画面の指示に従ってインストールを行う
- ターミナルを開き下記コマンドを順に入力。どちらもバージョン表示されればインストール完了
java -version
javac -version
Windows
-
Windows x64 Installer右側のjdk-11.0.10_windows-x64_binをクリック
-
Oracleアカウントログインを求められるので、アカウントがない場合はここで新規登録を行う
-
インストール先など指定がなければそのままインストール
-
新規ボタンを押して
jdkのインストール先¥bin
を登録する
今回の場合はC:¥Program Files¥Java¥jdk-11.0.10¥bin
-
コマンドプロンプトを開き下記コマンドを順に入力。どちらもバージョン表示されればインストール完了
java -version
javac -version
Hello World
おなじみのサンプルプログラム。
public class Sample {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
コンパイル
takuya@DEV-SERVER:~/workdir/java$ javac Sample.java
takuya@DEV-SERVER:~/workdir/java$ java Sample
Hello World
SE11だとソースファイルが1つで完結する場合はコンパイル(javac)せずjava ファイル名.java
で実行可能
takuya@DEV-SERVER:~/workdir/java$ java Sample.java
Hello World
Javaファイルの作り方
もう少しクラスの内容をみていきます。
基本的な(処理を実行する)クラスファイルの記述は下記となります。
class class名 {
public static void main(String[] args){
処理を記述;
}
}
クラスファイル
class名にはファイルの名前
を指定する。
例)Sample.java → class Sample
なお、慣習で先頭の文字は大文字にする。
単語の組み合わせになる際は単語毎の先頭文字を大文字にする(キャメルケース
)
{
から }
の間がそのクラスの内容となる。
class HogeSampleClass {
// クラスの内容
}
メインメソッド
public static void main(String[] args){
// 処理1;
// 処理2;
// .
// .
}
Javaはこのメインメソッドを探して、そこに記述されている処理を順に実行していく。参考書などでは「おまじない」として紹介されがち。
クラスと同じく、{
から }
の間がメインメソッドの内容となり、ここに処理を書いていく。
【おまじないとして紹介される理由】
このメインメソッドを記述する際にあれやこれやと指定しているものにはしっかりと意味がありますが、
これらは学習を進めていく内に「あ〜なるほど」と理解できます。
最初に解説を行うと逆に混乱するため、「まずはこれを書けばJavaは動く。」としたほうが良いのが大きな理由の一つだと勝手に思ってます。
処理の記述
プログラムで実行する処理内容を記述する。
処理の最後には;
(セミコロン)を記述する必要がある。
Sample.javaでは「コンソール画面に"Hello World"を出力せよ」という処理が書かれている。
System.out.println("Hello World");
コメント
一行コメント(//
)
// コメントだよ
複数行コメント(/* */
)
/* 複数行だよ
これもコメントだよ */
まとめ
今回はJavaについてとインストール方法、Javaプログラムのコンパイル〜実行までを行い、ザッとクラスについてもみていきました。