skillup

技術ブログ

Java

JavaEEとは?

投稿日:2015年4月6日 更新日:

JavaEEのブログといいつつ、JavaEEについて全然書いていませんでした・・・
ちょっとJavaEEについて書かせていただきます。

そもそもJavaとは?

Javaの定義

Javaというのは一般的にはプログラミング言語として知られていますが、厳密にはJavaとはプログラミング言語というよりは実行環境全体を指します。

Javaの特徴としてどのような環境でも動作するということがいわれています。Write once, run anywhere” (「一度(プログラムを)書けば、どこでも実行できる」)なんて言葉が有名ではないでしょうか。
プラットフォーム(作業環境全般:OSや各種端末のこと)上にJVMという仮想マシンを構築し、その仮想マシンがプラットフォームの差異性を吸収するため、どのマシン(OSや各種端末)でも動きます。エミュレーターみたいなもんだと解釈しています。

Cのように直接コンパイルするのではなくクラスファイルといわれる中間ファイルを生成し、これを仮想マシン上で実行させます。またオブジェクト指向だということも大きな特徴のひとつです。

JavaSEというと一般的には下記のような仕様郡の集合体として定義されます。

  • 基本のライブラリ郡
  • コレクション
  • JDBC

またJavaのメリットデメリットについても簡単に記させていただきます。

メリット&デメリット

メリット

  • どのOSや端末でも動くため、非常に汎用的
  • ライブラリが豊富で歴史も長いため、大抵のことは実現できる
  • スクリプト系に比べると速度が速い
  • 求人が多い、単価が高め
  • 使用人口が多いため、ネットで情報が入りやすい

下2つは言語の特徴ではないですが、実際にプログラミングを覚える上で必要な条件ですので、かかせていただきました。

デメリット

  • 環境構築や各種設定がメンドイ(IDEを使うことがほぼ必須)
  • スクリプト系に比べるとコードが冗長になる
  • 上記理由から学習コストが比較的高い

などでしょうか。

JavaEEとは

上記メリットでも書かせていただきましたが、Javaといっても範囲は非常に幅広く、やっていることは人によってまちまちだと思います。やっていること別に大別すると

  •  デスクトップ,AndroidなどのGUI系のアプリ
  • バッチ系などマシン内部で動くもの
  •  WEB系

などでしょうか。
もちろん上記は大雑把に分けた分類でして、それぞれのカテゴリ内でももっといろいろと分類されると思います。

JavaEEはサーバサイドJava

この中でJavaEEは主にWEB系で使われる技術の総称です。JavaEEのEEはEnterpriseEditionですので、企業で使われるJavaの大まかな仕様群ということになります。またサーバサイドで使われる技術が多く、JavaEE≒サーバサイドと考えて問題ないかと思います。

JSP&サーブレット

JavaEEのなかで最も有名な技術問有名なところで言えばJSP&サーブレットではないでしょうか。

これらは主にJavaのプレゼンテーション層(画面の生成や制御)の構成を担うライブラリ群です。

スタンダードな技術であることから歴史も古く、情報も出てきやすいため初心者の学習には最適だと思います。

様々なフレームワークの乱立

元々JavaでWebといえばサーブレット&JSPという技術が一般的で、これをベースにしたいろいろなライブラリ郡が乱立していたようです。

有名なところでは

  • JSF(Java Server Facss)
  • JSTL(JSP Standard Tag Library)
  • EJB(Enterprise JavaBeans)
  • JTA(Java Persistent API)
  • JDBCExtention
  • JavaMail

など様々なライブラリ郡があるため、これらを組み合わせて使用することでさまざまな実装をすることができます。

そのほかにもこれらのライブラリ郡をまとめたフレームワークとしてStrutsやSpringなどがあります。

ちなみに私がたずさわっているのは下記の技術です。

JSF
コントローラー+テンプレート部分のような感じでリクエストをうけとり、レンダリングをする一連の動きを行います。

EJB
リクエストを受け取って値を返すまでのビジネスロジック処理を行うところ。いわゆるモデル部分です。

JPA
データベースをJavaのオブジェクトで定義するライブラリです。

現状だととくにJPAが難しいですね。

JVM,JRE,JDKなどについて

JVM(Java Virtual Machine)・・Javaで作成されたアプリケーションをWindowsやMacなどで動かす仮想マシン。エミュレーターみたいなもんでしょうか?

JRE(Java Runtime Environmnet)・・Javaのプログラムを動かすためのセット(最低限の動きを提供するためのパッケージ?)

JDK(Java Development Kit)・・Javaの開発や実行を行うためのプログラムの開発全般。Javaをインストールする場合、このJDKをインストールすることが一般的のようです。

以下のページの概念図が一番わかりやすいですね。

Java SEとJDK、JRE、JVMの違いに関する解説

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

glassfishとDB接続 ~CUI操作~

JavaEEではDBを使うときにglassfish内で設定が必要です。 基本的にはGlassFishでDB接続などのようにブラウザで管理画面から情報を入力することが可能です。 ただCUIや設定ファイル …

no image

BeanUtilsについて

以前このエントリーでも紹介しましたが、BeanUtils、思った以上に使い方が幅広いです。 Contents1 クラスからクラスに2 マップからクラスに3 クラスからマップ4 特定の値の取り出し5 リ …

no image

CIことはじめ

業務でJavaのテキスト変換ツールを作成。 プログラムよりもCIツールを使って他人の環境下で正常に稼動させるためにどうするかの調査に時間かかりましたね。 今回やりたかったことは下記の通りです。いわゆる …

no image

配列の初期化&代入+Mapから別Map作成

最近、業務ではコードの量が肥大化し、とにかく短く書くことを心がけてます。 まあ、短ければいいってもんでもないんですが・・・ Listにクラスを使いするときに↓みたいな書き方を紹介したんですが、 [cr …

no image

netbeansのJPQL補助機能

JPAでは基本的に生のSQLではなく、JPQLを使って書きます。 SQLでもタイプミスにイライラさせられることは多いのですが、JPQLはもっとですね・・・爆 そこで使えるのがNetbeansの入力補助 …

アーカイブ