Java

1.言語としてのJava

1.1.Cににた文法

Javaの文法はC/C++に似せて作ってあります。
そのため、C/C++を知っていれば部分的にプログラムを追うことはむずかしくありません。
Java以外でも最近のほとんどの言語は、C/C++に似た文法になっています。

1.2.オブジェクト指向

Javaはオブジェクト指向プログラムが作りやすいように設計されています。
また、ライブラリはオブジェクト指向の考え方で設計されています。
そのため、プログラムを組んでいると自然にオブジェクト指向的なプログラムになることもあります。
一時期はJavaといえばオブジェクト指向、オブジェクト指向といえばJavaという状況にもなっていました。
最近の言語はほとんどオブジェクト指向技術をもりこんでいます。

1.3.強い「型」

Javaは信頼性が高いプログラムを作成しやすいように作られています。
そのため、扱うデータの種類を扱う「型」のしくみが厳密になっています。
そのしくみのおかげで、多くの間違いをプログラム作成時に発見することができます。

1.4.マルチスレッド対応

Javaは1990年ごろ開発されました。
つまり、コンピュータの技術が一段落ついたころです。
そのため、マルチスレッドなどが言語の機能としてもりこまれています。

1.5.豊富なライブラリ(=プログラムの部品)

Javaは、GUIやデータベース、ネットワークなど、豊富なライブラリを標準で持っています。
普通のプログラムを作るさいに必要な、すべての機能が用意されているのではないかというほどのボリュームがあります。
また、標準ではないにしても、標準に近い形で用意されていることも多くあります。

2.実行環境としてのJava

2.1.コンパイルが必要

Javaプログラムの実行にはソースコードを一旦コンパイルする必要があります。
そのときに、多くの間違いを発見してくれるため、単純なミスは少なくなります。
コンパイラ

2.2.仮想マシンで動く

Javaで作成したプログラムは、JVM(Java Virtual Machine = Java仮想マシン)で動きます。
そのため、JVMが用意された環境であれば、どこでもJavaのプログラムを動かすことが出来ます。
aboutjava/eachapp.png aboutjava/commonapp.png
逆にいえば、Javaのプログラムを動かすためにはJVMが必要になります。
このような仕組みになっているので、環境にあわせて作られたプログラムに比べて実行速度が遅くなる傾向があります。
特に画面表示が多いプログラムの実行効率はよくありません。

3.プログラムを作る枠組みとしてのJava

3.1.データベース

データベースへ接続するためにJDBCというわくぐみがあります。

3.2.Web

最近必要不可欠なWebアプリケーションを作るために、サーブレット/JSPがあります。

3.3.業務システム

大規模なプログラムを作るための枠組みとして、Java2EnterpriseEdition(J2EE)が用意されています。

3.4.組込みプログラム

リソースの限られた環境でJavaプログラムを動かすために、Java2MicroEdition(J2ME)が用意されています。
携帯電話用のJavaは、この、J2MEです。

4.コミュニティーとしてのJava

4.1.JCP

JavaはもともとSunが開発し現在でも大きな影響力をもっていますが、Javaの標準策定はJCPという団体で行われており、Sunはその1会員にすぎません。

4.2.apache

オープンソースのWebサーバーの開発で有名なApacheというグループで、多くのJava向けライブラリを開発しています。
とくにTomcatはサーブレット/JSPのリファレンス実装になっています。

5.なぜJavaが難しいか

5.1.強い「型」

文字列から数値への変換など、ちょっとしたことをするのに、いちいち指定をする必要があるなど、「型」が弱い場合に比べて多くの手順を必要とします。
慣れるまでは、そしてちゃんと勉強していないと、そこでひっかかってしまいます。

5.2.豊富なライブラリ

Javaには豊富なライブラリが用意されています。
そのことはつまり、Javaを勉強するには、その豊富なライブラリも勉強する必要があることを意味します。

5.3.最新技術に追随

勉強するはしから、あたらしい技術が生まれていくので、勉強しても勉強してもきりがありません。

6.なぜJavaを学習することに価値があるか

6.1.最新技術に追随

Javaを勉強することが、最新技術を勉強することにつながります。

6.2.豊富なライブラリ

Javaを勉強することが、多くのプログラム技術を勉強することにつながります。

6.3.オブジェクト指向

Javaを勉強することが、オブジェクト指向技術を勉強することにつながります。
とくに、ライブラリがオブジェクト指向の考えで作られているので、大変参考になります。
オブジェクト指向は、ある程度大きなプログラムを作成する際に必要になる考え方です。

6.4.もしJavaの時代がおわったら

どのような技術も、やがては第一線からしりぞきます。
Javaも例外ではないでしょう。
それでは、Javaを勉強しおわったところで、Javaにかわる技術が主流になってしまったらどうなるのでしょうか?
勉強したことがむだになってしまうのでしょうか?

もちろんそんなわけはなく。

Javaにはソフトウェア技術の集大成という一面もあるといえます。そして、Java以降のすべての技術に影響を与えたといって過言ではありません。
つまり、Javaにかわるなにか別の技術が主流になったとしても、それは必ずJavaをふまえたものになります。
そのため、そのような別の技術は、Javaを勉強していることが前提となる部分が多くなります。

ようするに、Javaを勉強せずに次の技術を勉強するとしたら、そのときには結局Javaに相当する部分を勉強する必要があるわけです。

そして、いまのところ、そのようなJavaにかわる別の技術は現れていません。
かなりの間はJavaが主流の技術のひとつであり続けるでしょう。安心してゆっくり勉強してください。

6.5.わたしにもわかるでしょうか?

たぶん、1度ではわからないでしょう。
でも、それは、向いているからとか、向いていないからとか、そういうことではなく、難しいからです。
みんな最初はわからないと思います。
もし1度でわかれば、天才か、それと紙一重かです。しかるべきところで活躍してください。
いまプログラムがわかる人も、長い時間をかけて勉強してわかるようになったわけです。

結局は、2.5時間かける24コマ程度の講義だけで、わかるようになることは無理です。
そこでこの講義では、あとで自分が勉強するときに、たとえば本屋さんでJavaの本を手にとってまったく聞いたことがない言葉ばかりということがないように、Javaという技術の全体にわたってこういう言葉がありますよ、という紹介をしていきたいと思います。

というわけで、わからないのは当たり前なので、あとで「この言葉は聞いたことがある」という程度に覚えてください。
もちろん、継続して自分で勉強することが前提ですよ。

Copyright (c) 2001-2003 Naoki Kishida All Rights Reserved.
http://www.fk.urban.ne.jp/home/kishida/