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

メソッドのtransient

エンティティを作成するときに、データベースのカラムにない値をプロパティを持たせるためにはtransientという修飾子が必要です。 参考リンク フィールド以外のプロパティをエンティティに持たせる 通常 …

no image

JPAを使用する  JavaSE編

現在の開発ではデータベースへの接続ではJPAを使っています。このJPAがなかなか曲者でいろいろと詰まることがありましたので解説させていただきます。 Contents1 JPAとは?1.1 メリット1. …

no image

JSFのプルダウンに関して(イベントをトリガーにする&非ajax)

いろいろと社内アプリを作っていたせいでかなりプルダウンは慣れたとおもったのですが、未知の部分がさらにあったのでまとめます。 Contents1 初期値に値がないとき2 プルダウン変更時に遷移 初期値に …

no image

例外処理について

Javaの例外処理について書きます。 自分はPHPメインでやってきましたので、この例外についてはうろ覚えでした。 PHPだと例外処理はあるんですが、まああんまり使わなかったり、理解がいい加減でもなんと …

no image

JavaEEでのURLマッピング

Contents1 URLマッピング1.1 prettyfaces1.2 導入方法1.2.1 pom.xmlの設定1.2.2 pretty-config.xmlの設定1.3 ManagedBeanでの …

アーカイブ