初心者向け Java入門 Java言語の基礎知識①

#はじめに
今日から、何回かに分けて、これからJavaを学習したい、現在Javaを学習中の人のためになるようにJavaの基本的な部分について解説していきます。
数あるプログラミング言語の中でJavaを選んだ理由は、オブジェクト指向の基礎を学べる言語、そこそこ人気がある言語、一番解説を行うのに自信がある言語なのでJavaの解説を行うことに決めました。
今回は第１回なので、そもそもプログラム、プログラミング言語とは何かの解説を行い、その後Javaの概要と、標準出力の解説を行います。
#プログラムとは
コトバンクでは以下のように記述されています。
> コンピューターが解釈・動作できるデータ。コンピューターに対する命令をプログラムとして記述すると、コンピューターはプログラムに指示された手順で計算、入出力などの処理を実行していく。
引用元　コトバンク-プログラム

つまり、プログラム＝コンピュータで実行する処理手順を示したものです。
Windows、Linux 基本ソフトウェアであるWindows、iOS、MacといったOSや応用ソフトウェアである表計算ソフト、ワープロソフト、電子メールソフト（メーラー）もプログラムの１つとなっています。そのため、コンピュータは、プログラムが１つもインストールされていなければ、動作しません。また、コンピュータで多くのプログラムを使用することにより、業務などの効率化が図れます。

LINEを例に出してみます。LINEがなくメールだけでやり取りをしていた時代は、毎回、宛先を入力しなければならず、時間がかかり、前後のやり取りも一目で確認できませんでした。それが、LINEの登場で、相手を選択するだけで、メッセージが送れ、チャット形式であるため、一目で前後の内容を確認できリアルタイム性の高い、メッセージのやり取りができるようになりました。LINE１つとってもメッセージを送信時間、メッセージを返信時間、メッセージを確認する時間が削減され効率化が行われているということが分かるかと思います。
#プログラミング言語とは
簡単に言えば、プログラミング言語とはプログラムを作成するためのソースコードを記述する言語です。
コンピュータが解釈できるのは「０」と「１」という数値の羅列で表現されている機械語だけです。

人間が理解するのは難しく、もし、プログラムが機械語だったら、挫折する人も多くなるでしょう。
そこで、機械語よりも、より人間に理解し易い言葉でソースコードの記述が可能なプログラミング言語が開発されました。
コンピュータは、ソースコードを機械語に変換し、プログラムを実行します。機械語の変換、実行の方法はコンパイラ型とインタープリタ型の２つがあります。
<span style="font-size: 120%"><b>コンパイラ型</b></span>：ソースコードを実行する前の段階で、機械語に変換し、纏めて実行。
<span style="font-size: 120%"><b>インタープリタ型</b></span>：実行時ソースコードを１行ずつ解釈し、機械語に変換しながら実行。
#Javaとは
Wikipediaでは以下のように記述されています。

> Java（ジャバ）は、狭義ではプログラミング言語Javaを指す。広義では言語仕様以外にも、仕様が与えられているJavaクラスライブラリやJava仮想マシン、さらにはJDKやJREなどの公式のものをはじめとする、場合によってはサードパーティのものなどを含め曖昧にJavaプラットフォームと総称されるようなものなどのエコシステムなどを指すこともある。引用元　Wikipedia-Java

これだけだとよく分からないと思うので、詳細に解説を行います。

まず、JavaはSun Microsystem社という会社で開発され、2010年にOracle社に買収された、以下の３つの側面を持つ技術です。

<span style="font-size: 120%"><b>１．プログラミング言語
</b></span>

言語としてJavaはJava言語と呼ばれ、プラットフォーム（ここでいうプラットフォームは特定のOSやハードウェア）に依存せず、オブジェクト指向性・豊富なクラスライブラリを持つ言語です。

<span style="font-size: 120%"><b>２．実行環境</b></span>

Javaの実行環境はJRE(Java Runtime Environment)であり、様々なプラットフォーム用に提供されています。そのため、Windows、Mac、LinuxなどOSの種類は違っても、JREさえインストールすれば、同じプログラムを動作させることができます。

<b><span style="font-size: 120%">３．開発環境</span></b>

JDK(Java SE Development Kit)は、Javaの開発作業に必要なツールを提供しています。

主に提供しているツールは以下の３つです。

・コンパイラ…ソースコードからクラスファイル（ソースが書かれたファイルをコンパイルしたファイル）に変換

・インタープリタ…クラスファイルを１行ずつ解釈しながら実行

・クラスライブラリ…Javaで提供しているクラス（プログラムの部品）の集まり

#Javaの種類
Javaを使用しアプリケーションを開発する際、３つのものが用意されています。
<b>
<span style="font-size: 120%">１．Java SE（Java Platform Standard Edition）</span></b>

サーバ、クライアント問わず、Javaアプリケーション開発のベースとなる基本的な機能を提供しています。Java言語を使用するためには、JavaSEの導入が必須です。

<span style="font-size: 120%"><b>２．Java EE（Java Platform Enterprise Edition）</b></span>

オンラインショッピングシステムなど、サーバサイドで動作するWebアプリを開発する機能を提供し、JavaSEと組み合わせて使用します

<b><span style="font-size: 120%">３．Java ME(Java Platform Micro Edition)</span></b>

ガラパゴス携帯や、携帯情報端末などの、メモリやCPUに制限がある小型のデバイスで動作するアプリケーションを開発でき、JavaSEと組み合わせて使用します。

#Javaアプリケーションの作成から実行の流れ
<b><span style="font-size: 120%">１．ソースコードの作成</span></b>

ソースコードを記述し、拡張子に「.Java」を付けて保存します。

<span style="font-size: 120%"><b>２．コンパイラ</b></span>

コンパイラを使用して、ソースコードをチェックして変換され、拡張子「.class」を持つクラスファイルが自動生成されます。

<span style="font-size: 120%"><b>３．実行</b></span>

Javaインタープリタを使用してバイトコードを解釈しながら実行します。

テキストエディタでソースコードを作成し、コマンドプロンプトを開き、「cd」コマンドで、テキストエディタのフォルダの位置まで移動して、テキストエディタのファイルを「Javac」コマンドでコンパイルした後、「Java」コマンドでクラスファイルを実行するという方式があります。

しかし、この方法だと、とても非効率であるため、EclipseやIntelliJIDEAなどの統合開発環境でJavaアプリケーションの作成から実行を行うことが殆どです。統合開発環境は、ソースコードの作成・編集・実行だけではなく、自動エラーチェック、コードの入力補正、プラグインによる機能拡張も行えます。

#ソースコードの作成
Javaアプリケーションは、１つ以上のクラスで構成され、mainメソッドから開始されます。クラス、メソッドは後日解説を行うので、そーなんだ位に考えてください。

書式は以下の通りです。

```java
class ClassName{
        public static void main(String[] args){
                /*
                main メソッド
                */
        }
}
```
#標準出力
コマンドプロンプトや、コンソールビュー等の結果画面に出力を標準出力といいます。

Javaアプリケーションから値を標準出力をする場合にはSystem.out.print()メソッドまたは、System.out.printlnメソッドを使用します。どちらも()に出力したい値を指定しますが、System.out.println()メソッドは出力後に改行します。基本的にJavaでは文の終わりに;(セミコロン)を付けます。文字列を扱う場合には””(ダブルクォーテーション)で囲み、文字列と数値を連結させる場合には+を使用します。以下は例です。

```java
 System.out.print(12333);  //12333
 System.out.println("こんにちは。");  //こんにちはを出力して改行
 System.out.println(3+"丁目"); //3と丁目を連結した3丁目を出力して改行
``` 
ソースコードを入力する際の注意
ソースコードを入力する際の注意点はいくつかあります。

・()、{}、 []、スペースは半角

・アルファベットの大文字小文字は区別

・アルファベット、記号、数値は半角

・可読性を高めるために、適切なインデントやコメントを分かりやすく記載。


```java

class ClassName{
        public static void main(String[] args){
               System.out.print(333);
        }
}

```
```java
//単一行のコメント

/* 複数行にわたるコメント */
```
コメント使用例

```java
//ラーメン食べたい
/*眠い

  熱い

寒い*/
```
#まとめ
####プログラミング言語とはプログラム作成のための、ソースコードを記述する言語
####Javaはプログラミング言語、実行環境、開発環境の３つの側面を持つ技術
####JavaはJavaSE JavaEE JavaMEの３つの種類があり、JavaSEの導入は必須
####Javaで開発を行う際は、統合開発環境での開発がおすすめ
####Javaアプリケーションは、１つ以上のクラスで構成され、mainメソッドから開始
####ソースコードはコメントやインデントを整え可読性を高める

第１回なので、用語の解説ばかりとなってしまいましたが、ざっくりでもいいので、プログラムやJavaの概要について理解して頂けたなら嬉しいです。

次回は、識別子、変数、データ型、演算子を主に解説します。