Java言語



Java 入門

Java とは ※↓

Java入門 記事

java コマンドを知る -[ STACK* ]

 

javac コマンド
-[ STACK* ]

Javaプログラミングの前提知識(ワンポイント・レクチャー) < Java Solution FAQ < Java Solution < テクノロジー < @IT総合トップ


 
JRuby
Java 上で動作する Ruby。
マイコミジャーナル ハウツー
今流行のスクリプト言語 on JavaをBSFで体験する
Jakarta BSF : APIレベルでJavaからスクリプト言語をあつかうためのフレームワーク。
(1) Jakarta BSFとは
(2) インストール
(3) Hello Jakarta BSF!
(4) BSFの今後

サポートされている代表的なスクリプト言語
  • BeanBasic
  • BeanShell
  • BML
  • Groovy
  • Jacl
  • JavaScript
  • Judo
  • LotusScript
  • ObjectScript
  • Perl
  • Pnuts
  • Prolog (JLog)
  • Python (Jython)
  • Rexx (NetRexx)
  • Ruby (JRuby)
  • XSLT



Java VM

JVM(Java Virtual Machine)とは ※↓

Java VM 関連記事
Javaパフォーマンスチューニング < http://www.atmarkit.co.jp/fjava/index/index_devedge.html > Java Solution 」フォーラム
2005/01/29 (1) Javaパフォーマンスチューニングのルール
  JVMレベルにとどまらず、OSのカーネル・パラメータやネットワーク・パラメータのレベルでのチューニングを6回の連載で紹介する
2005/02/25 (2) Javaのガベージ・コレクションを知る
フォーマンスに大きな影響を与える。今回はチューニング方法を紹介する前にその役割を解説する
2005/04/02 (3) Javaのヒープ・メモリ管理の仕組み
JVMにおけるヒープ・メモリ管理を理解したうえで、チューニングを試みる。また、チューニング結果をJVMのログで確認する
2005/05/14 (4) Javaのマルチスレッドによるリソース競合から守る
Javaはルチスレッドを容易に使えるというメリットを持つ。しかし、マルチスレッドはパフォーマンス低下の原因でもあるのだ
2005/05/26 (5) Javaアプリのメモリ・リークを発見する
Javaにもメモリ・リークは発生し、アプリケーションに致命的な影響を与える。その発生の原因と発見方法とは?
2005/08/31 (6) HotSpot VMの特性を知る
最終回はHotSpot VMの特性についてデフォルトの設定ではパフォーマンスが出ないケースを紹介し、適したチューニング方法を紹介する



Javaリファレンス

Sun Java リファレンス

Java 標準クラスライブラリ(コアパッケージ) リファレンス

 Java の実行環境に用意されている標準クラスライブラリ。
 以下に、良く使用される標準クラスを挙げる。

AWT(Abstract Window Toolkit)リファレンス

 Java で GUIアプリケーションを作るためのクラスライブラリ(クラス、インターフェイス群)の1つ。

 AWTドキュメント JDK6 JDK5 JDK4 JDK3

Swingリファレンス

 Java で GUIアプリケーションを作るためのクラスライブラリ(クラス、インターフェイス群)の1つで AWT を改良・拡張したもの。

 Swingドキュメント JDK6 JDK5 JDK4 JDK3

  SwingでJavaに強くなる



Javaクラスライブラリ

Java 標準クラスライブラリ(コアパッケージ)


Java 標準クラスライブラリ リファレンス(※↑

AWT

AWT (Abstract Window Toolkit)

AWT リファレンス(※↑

Swing


Swing リファレンス(※↑

GNU Classpath

 GNUで開発されているオープンソースでフリーなJava標準クラスライブラリ。
 2007年12月現在、そのほとんどは完了しており、Swing、CORBA なども含まれている。
 現在のバージョンは 0.96.1 となっており、まもなく 1.0 のリリースとなる。

  GNU Classpath GNU Classpath License .

その他

全文検索
Lucene : Javaで記述された、オープンソースの全文検索エンジン(ライブラリ).
Sen : Lucene を日本語で使うための、オープンソースの形態素解析エンジン.

PDF


iText : < http://www.lowagie.com/iText/ > < http://itextpdf.sourceforge.net/ >
 PDFをJavaで扱うためのオープンソース ライブラリ。
 使用する際は、MPL、LGPLから、いずれかのライセンスを選択。
(参考: iTextを利用してJavaからPDF形式の帳票を出力する < [ CodeZine ])

 
QRコード
QRコードクラスライブラリ for Java < http://www.swetake.com/qr/java/qr_java.html >

Javaツール・ライブラリ リンク < [ オブジェクト指向とJavaのページ ]



アプリケーショ ン・サーバ

Apache Tomcat

 Apacheソフトウェア財団が開発したフリーのアプリケーションサーバ。

 EJBコンテナ( ※↓ )と、Webコンテナ( ※↓ )を含んでいる。

CORBA

  CORBA(Common Object Request Broker Architecture)
 
CORBAは アプリケーションサーバの機能を包含した 分散ミドルウェアの基盤。

 OMG(Object Management Group)が定義した標準規格で、様々なコンピュータ上で、ソフトウェアコンポーネントの相互利用を可能にする。

 
ソフトウェアコンポーネントは、CORBAのサポートする様々なプログラミング言語で開発可能。

 CORBA のソフトウェアコンポーネントを開発するには、CORBA のオブジェクトのインタフェースと各言語とのインタフェースのマッピングが必要。

  CORBA としてマッピングが標準的に用意されているプログラミング言語は、Ada、C、C++、LISP、Smalltalk、Java、COBOL、PL/I、Python。

 標準には組み込まれていないが、ORB(Object Request Broker)と呼ばれるマッピングを行うミドルウェアを追加する事で、Perl、PHP、Ruby、Visual Basic、Tcl といった言語へも対応可能。

 CORBA実装系として、 OpenORB JacORB TAO(The Ace Orb) などがある。

  The OMG's CORBA Website Free CORBA Downloads < [OMG]、 OMG OMG 日本語情報 .

GlassFish

 オープンソースのJEE 5対応アプリケーションサーバ。

 Sun が提供したアプリケーション・サーバと Oracle が提供したAPI群「TopLink persistence」をベースとして開発されている。

 現在、Sun はこれを Sun Java System Application Server 9.x として販売している。

  GlassFish .

JBoss

 オープンソースで開発されているJ2EEアプリケーションサーバ。

  日本JBossユーザ・グループ . JBoss本家 .

JOnAS

 Java EEアプリケーションサーバ。

  JOnAS OpenSource JavaEE Application Server .

OpenEJB

オープンソースのEJBサーバ

  OpenEJB . Apache OpenEJB .

WebSphere Application Server

WAS(WebSphere Application Server)
 IBM製のアプリケーションサーバ。
 J2EE、XML、Webサービスといったオープンな技術で構成されている。



コンテナ

  コンテナとは( ※↓

EJBコンテナ  

 EJBコンポーネントを動作させるための実行環境。

 (用語解説 EJBコンテナとは ※↓

Webコンテナ、サーブレットコンテナ

 サーブレットと JSP (JavaServer Pages) の実行環境で、Webサーバの機能を持つ。

 Webコンテナには、"Apache Tomcat", "Jetty", "BEA WebLogic Server", "IBM WebSphere Application Server", "Resin", "JBoss" などがある。

 (用語解説 Webコンテナ、サーブレットコンテナとは ※↓

SeaSar2

 軽量なJavaのDIコンテナ。
 CoC(Convention over Configuration)の考え方を取り入れる事で、設定ファイルを書かなくてもすむようになっている。
(用語解説 DIコンテナとは ※↓

 


Java アプリケーション・フレームワ-ク

アプリケーション・フレームワークとは( ※↓

Apache Struts
Jakarta Project にて開発されている、Webアプリケーションフレームワーク。
Jakarta Project は Apacheソフトウェア財団が運営するオープンソースソフトウェア開発プロジェクトの1つ。

Spring Framework
オープンソースのJavaアプリケーションフレームワーク。
出張Java講座: 身体で覚えるSpring Framework < http://dev.ariel-networks.com/articles/workshop/java-spring-tutorial/ >

google-guice < http://code.google.com/p/google-guice/ >
 




Java FAQ

Java Solution FAQ < Java Solution < テクノロジー < @IT総合トップ

INDEX
BEA WebLogic Server(ワンポイント・レクチャー)
J2EEの基礎知識 JDBCの基礎知識と活用
XMLとの連携・活用
JSPの基礎知識と活用 エンタープライズへの適用
セッション管理 Webアプリケーションにおける帳票の実現
Servlet/JSPリファレンス(ワンポイント・レクチャー)

Java FAQ




Java Tips

Java TIPS   < Java Solution全記事一覧 <[   Java Solution   ]<[ @IT ]    

Java関連のリンク集

Java技術解説 -[富士通]

  1. Javaとは
  2. Javaプログラムの種類
  3. EJBとは
  4. サーバサイドJavaを利用するシステム形態
  5. 柔軟に拡張できるWebシステム

avaプログラミングのダイナミックス < Java technology < [ IBM developerWorks ]
2004年6月10日
第8回 リフレクションに取って代わるコード生成
2004年4月14日
第7回 Bytecode engineering with BCEL(原文のみ)
2004年3月2日
第6回 Javassistを使用したアスペクト指向の変更
2004年2月
第5回 オンザフライでクラスを変換する
2003年9月
第4回 Javassistでのクラス変換
2003年7月
第3回 実用的なリフレクション
2003年6月
第2回 リフレクション入門
2003年4月
第1回 クラスとクラスのロード処理
コード品質を追求する < [ IBM developerWorks ]
2007年08月31日
Ajax アプリケーションのユニット・テスト
2007年05月11日
Selenium と TestNG を使ったプログラムによるテスト
2007年03月30日
TestNG-Abbot による GUI テストの自動化
2006年12月22日
JUnitPerf によるパフォーマンス・テスト
2006年11月27日
JUnit 4 対 TestNG
2006年11月27日
反復可能なシステム・テスト
2006年11月27日
テストのカテゴリー化による素早いビルド
2006年08月03日
多弁なコードを黙らせるために
2006年05月26日
ソフトウェア設計者にとってのコード品質
2006年03月17日
FITで解決する
2006年02月17日
カバレッジ・レポートに騙されないために
リアルタイム Java < [ IBM developerWorks ]
2007年07月20日
第5回
リアルタイム Java アプリケーションの作成とデプロイメント
2007年06月15日
第4回
リアルタイム・ガーベッジ・コレクション
2007年06月12日
第3回
スレッド化と同期
2007年05月25日
第2回
コンパイル技術を比較する
2007年05月18日
第1回
リアルタイム・システムに Java 言語を使用する
 



Java開発環境

各種 Java 開発環境

 

   
Sun Java Studio Enterprise
NetBeans ※↓
サンマイクロシステムズ  サン・マイクロシステムズを中心としたコミュニティにより開発されている 無償 のJava用オープンソースIDE。

 Java を開発しているサン・マイクロシステムズが開発に参加していることから、最新版のJava にいち早く対応できるという利点がある。

Eclipse SDK ※↓ Eclipse財団

 IBMが開発・オープンソース化した 無償 IDE。
 プラグインとしてさまざまな機能を組み込むことができるよう設計されていて拡張性が非常に高い。

 Java 開発環境自体が標準添付のプラグインとして実装されている。

 プラグイン次第で C++、C#、PHP、Perl、D言語、TeX、Python、Ruby、JavaScript、COBOL、AspectJ など多様な言語に対応可能。

Borland JBuilder ボーランド  ボーランド社が開発したJavaのためのIDE。

 無償版と有償版がある。

 JBuilder自身もJavaで動作するためOSを問わずJavaが動作する環境ならば使用可能。

WebSphere Studio
WebSphere Studio V6
 
IBM  Eclipseベースのウェブアプリケーション開発環境。

 Eclipse の有償プラグインという形で提供されている。

WideStudio/MWT WideStudio Development Team  複数のプラットフォーム、複数の言語に対応した純国産で 無償 のオープンソースIDE。

 プラットフォームは、Win32、Linux、Solaris、MacOSX、BTRON、組込みLinux、T-Engine、WindowsCE、ITRON といったプラットフォーム上のGUIアプリケーションも開発可能で、サーバーから組込み機器までシームレスに対応している。

 言語は、C/C++、Java、Perl、Ruby、Python、Ocamlに対応している。

JDeveloper オラクル  オラクルが、ボーランドの JBuilder のソースを元に製作しその後Javaで完全に書き直した、オラクル オリジナルの無償Java用IDE。

 データベースアクセスに関する開発で優れている。

Visual J# マイクロソフト  マイクロソフトが販売しているJavaの統合開発環境。

 
 

NetBeans

 Java の開発元、Sun が提供するJava用統合開発環境。

Eclipse

 IBMで開発した後、オープンソースソフトとして公開された統合開発環境。

Eclipse と NetBeans の比較

その他

アプリケーション・フレームワーク
Apache Struts
Jakarta Projectにて開発されている、Webアプリケーションフレームワーク。
Apache Tomcatなどのサーブレットコンテナ上で動かすことができる。





Eclipse

Eclipseとは

 IBMで開発した後、eclipse.org(http://eclipse.org)でオープンソースソフトとして公開された統合開発環境。

 プラグインとしてさまざまな機能を組み込むことができるよう設計されていて、その拡張性は非常に高く、Java開発環境自体も、標準添付のプラグインとして実装されている。
 プラグイン次第で C++、PHP、Perl、C#、D言語、TeX、Python、Ruby、JavaScript、COBOL、AspectJ など多様な言語への対応が可能。

  Eclipse (統合開発環境) -[Wikipedia]  
 

オフィシャルサイト

Eclipse 本家 < http://www.eclipse.org/ >

Eclipse各バージョン
Eclipse Europa(Eclipse 3.3) < http://www.eclipse.org/europa/ >
Eclipse Callisto(Eclipse 3.2) < http://www.eclipse.org/callisto/ >

パッケージの比較
 
ダウンロードサイト


日本語の主なサイト

その他

連載中:

MyEclipseでAjax+Javaをやさしく開発 (2006/12/15~2007/06/11~)-[@IT]

CoolなEclipseプラグイン (2005/03/26~2007/09/06~) -[@IT]

 


連載完:

徹底解剖!! Eclipse3.3 Europaの“新世界” (2007/07/04)-[@IT]

Eclipseプラグイン実践テクニック (2006/08/26~2007/02/13)-[@IT]

とっても簡単Eclipseプラグイン (2006/7/8~2006/12/13)-[@IT]

Eclipseで使えるテストツールカタログ (2006/03/30~2006/10/21)-[@IT]

EclipseでJavaに強くなる (2006/03/11~ 2006/08/24)-[@IT]

作って覚えるEclipseプラグイン (2005/09/16~2006/04/20)-[@IT]

連載記事 「Eclipse 3.1を使おう」 (2005/07/28~2005/11/29)-[@IT]

連載記事 「Eclipseではじめるプログラミング」 (2004/05/29~2005/07/30)-[@IT]

Eclipse徹底活用 (2003/04/23~2004/08/14)-[@IT]

連載記事 「Eclipseを使おう!」 (2002/12/19~2003/02/14)-[@IT]

 


Eclipseで開発可能になったAdobe Flex 2 -リッチクライアント・プロダクトレビュー

今年登場するAdobe Flex 2はEclipseプラグインを開発環境とするリッチクライアントフレームワークに生まれ変わった

 

リッチクライアント & 帳票 」フォーラム 2006/4/8

 


Eclipse とWebSphere Studioはどう違うのか



Eclipse -[ Javaの道(Java入門・リファレンス) ]

1.インストール

  2.基本操作

  3.便利な機能(環境設定)

  4.便利な機能(コーディング全般)

  5.便利な機能(ソースの編集)

  6.デバッグ

  7.Antの利用

  8.Webアプリ向け設定手順

  9.Webアプリ向け開発手順

  10.Webアプリ向けデバッグ手順

11.JUnitの利用

12.CVSの利用  


Eclipse アーカイブ -[ 天使やカイザーと呼ばれて ]





NetBeans

NetBeans とは

Java の開発元、Sun が提供するJava用統合開発環境。

NetBeans-[Wikipedia]

オフィシャルサイト

NetBeans 本家の日本語ページ < http://www.netbeans.org/index_ja.html >
 

日本語の主なサイト

NetBeans 日本語サイト < http://ja.netbeans.org/ >

その他





用語概説

  java

 Sun Microsystems社が開発した オブジェクト指向 プログラミング言語 Java のソフトウェア 開発環境 および 実行環境
  Javaプラットフォーム とも呼ばれる。

 狭義には、プログラミング言語 Java のみを指す。

 プログラミング言語としてのJavaは、従来の言語の良い部分を引き継いで欠点を克服するよう設計されたオブジェクト指向の言語となっており、構文はC およびC++ から多くを引き継いだものとなっている。
 多くのプログラミング言語ではネイティブコードにコンパイルするプラットフォームに依存した方式をとっている。一方 Javaでは、一旦 バイトコード という中間言語にコンパイルして、プラットフォームごとに用意されたJava仮想マシン ※↓ により実行する方式を取ることで、プラットフォームに依存しないプログラミングを可能としている。

  クラス

 オブジェクト指向言語で使われるプログラムの部品の単位で、データとその操作手順であるメソッドをまとめた、オブジェクトの雛型を定義したもの。

  クラスライブラリ

 関連する複数のクラスを一つのファイルにまとめたもの。

  アプリケーション・サーバ

 クライアント・サーバシステムを、「プレゼンテーション層」、「アプリケーション層」、「データ層」の3層に分割して構築する 3階層システム のプレゼンテーション層を受け持つサーバ。
  • プレゼンテーション層

: クライアント(Webブラウザなどのフロントエンド)

  • アプリケーション層

: アプリケーション・サーバ

  • データ層

: データベースサーバ

  3階層システム は、以前のビジネスロジックを クライアント側 や バックエンド側 に実装する 2階層システム に比べて柔軟性が高く、変更、増強などが容易。

 現在、クライアントにWebブラウザを用いてHTTPで通信する「Webアプリケーションサーバ」が主流。単にアプリケーションサーバと言う場合、普通はWebアプリケーションサーバを指す。

 Webアプリケーションサーバへのビジネスロジックの実装には、 Java、PHP、Ruby、Python、Perl などが採用されており、現在は、Java(Java EE)を採用したものが主流となっている。

 Citrix による Citrix Presentation Server や .Net サーバ はアプリケーションサーバと呼ばれることは少ない。


  アプリケーション・フレームワーク

 狭義には、ユーザー・コードを呼び出すクラスやライブラリの集まりを指す。
 広義には、アプリケーション開発を実現する枠組みを指し、システム開発を支援するツール、コンポーネント群、ドキュメントをはじめ、開発方法論などまでを幅広く含む。

< http://www.atmarkit.co.jp/fdotnet/t-interview/unisys_af/unisys_af01.html >
< http://www.atmarkit.co.jp/fdotnet/t-interview/unisys_af/unisys_af02.html >
< http://ja.wikipedia.org/wiki/アプリケーションフレームワーク >

RUP (Rational Unified Process)=ラップ / ラショナル統一プロセス
 米ラショナルソフトウェア社がまとめたオブジェクト指向開発方法論。
 現在、ラショナルソフトウェア社は買収されてIBMの一部門となっている。

ユースケース:
 どのようなユーザがシステムをどのように使うかという使用事例(ユースケース)を、単純な段階に分けて表現することで、システムの機能要求を把握する技術。

  コンテナ

 ソフトウェアの実行環境(実行するためのソフトウェア)。

 Webコンテナ、EJBコンテナ、DIコンテナなどがある。

  コンポーネント/ソフトウェア・コンポーネント

 基本的に単体では使用できず、他のプログラムと組み合わせて機能を実現あるいは追加する、ソフトウェアの部品。

  DI (Dependency Injection)

 ソフトウェア・コンポーネント間の依存関係(Dependency)を、プログラムのソースコードから排除して、外部の設定ファイルにより 後から設定 (Injection)できるようにする手法。
 この仕組みの判り易いメリットは、
 実行するクラスをAとし、Aの中でクラスBのメソッドが実行される場合を考える。
 従来の手法の場合、Aを実行する際にはBのインスタンスが存在しなければならないが、B

(参考:
Java開発を変える最新の設計思想「Dependency Injection(DI)」とは
< [ITPro]
DI:依存性の注入とは何か? < Spring Frameworkで理解するDI < [ @IT ]
Seasar Projectの全貌を探る < [ @IT ]

  DIコンテナ (Dependency Injection Container)

 DI に基づいて作られたソフトウェア・コンポーネント群を集中管理するためのソフト。
 「Spring」や「Seaser2」が有名。
 次世代のEJB(EJB 3.0)に取り込まれる動きもある、注目される技術。
(参考: DIコンテナ
< [ ITPro ]

  Java Beans

 Javaで書かれた、再利用可能なソフトウェア・コンポーネント(Bean)を組みあわせてアプリケーションを構築する手法。

  EJB (Enterprise Java Beans)

 Java Beans の仕様に、ネットワーク分散型アプリケーションのサーバサイド処理に必要な機能を追加したもの。

  EJBコンポーネント (EJB component)

 サーバサイドで動作する、Javaで作成されたプログラム部品で、アプリケーション本来の目的で あるビジネス・ロジックをまとめたもの。
 EJBコンポーネントは必ずEJBコンテナの上で動作する。

  EJBコンテナ (EJB container)

 EJBコンポーネントを動作させるための実行環境。

 EJBコンテナは、「データベースへ・アクセス機能」、「トランザクション管理機能」、「セッション管理機能」、「セキュリティ機能」などをそなえていて、EJBコンポーネントがこれらの機能を用意しなくてもアプリケーションが構築できる。

  Java servlet

 HTML文書などを動的に生成するためにサーバ上で動く、モジュール化されたJavaプログラム。

 サーブレットの実行環境はWebコンテナ、またはサーブレットコンテナと呼ばれる。

  JavaServer Pages(JSP)

 HTML内にJavaのコード(アプレットではなくプログラムのコード)を埋め込んでおき、Webサーバでそれを処理して動的にWebページを生成してクライアントに返す、PHP や Microsoft 社の ASP および ASP.NET に似た技術。

Java を使ったアプリケーションでは、動的なページを作 成するた めに、Servlet と JSP を使う。

 Servlet はJavaのプログラムで、JSP は特殊なタグを追加したHTMLの ファイル。

 Java EE アプリケーションの多くは、ServletとJSPを組み合 わせて使う。 


 ASPは(ほぼ)IIS専用だが、JSPは様々なWebサーバ用の実行環境が用意されている。
 特殊なスクリプト言語を覚えることなく、Java言語をそのまま使えるという利点もある。

  Webコンテナ(、サーブレットコンテナ)

 Webコンテナは、サーブレットと JSP (JavaServer Pages) の実行環境。


 サーブレットの実行環境は、 Webコンテナ あるいは サーブレットコンテナ と呼ばれる。
 これらの言葉は区別されずに使われることが多いが、
  • サーブレット の処理のみを行うものを サーブレットコンテナ
  • サーブレット の処理に加えて JSP HTTPサーバ としての機能も含むものを Webコンテナ
と呼ぶ傾向がある。

jarファイル (ジャーファイル:Java ARchive File)

 Javaで標準的に使用されている圧縮ファイル。

 クラスファイルなどがZIP形式圧縮されて格納されている。

 jarファイルになっていれば、Javaが自動的に展開して実行してくれる。

JDKとJRE

  • JDK:Java Developer's Kit、 J2SE Developer Kit
    Javaプログラムの開発に必要なセット一式。
  • JRE:Java Runtime Environment
    Javaの実行に必要なプログラムのセット。
   
JDK     JRE ・・・JDK は JRE を含む。

Java SE(J2SE)/Java EE(J2EE)/Java ME(J2ME)

 Java の 実行環境 と 開発環境 のバージョン。
 Java仮想マシン(JVM)とJava実行環境(JRE)の「Java HotSpot」などを含む。
  • Java EE(Java Platform Enterprise Edition)
     サーバ用のソフトウェア群を含んだJavaセット。
     主なサーバ用ソフトウェアは、Servlet、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)。
     旧名 J2EE(Java 2 Platform Enterprise Edition 、2は版数)。
    < http://java.sun.com/javaee/downloads/download_jp.jsp >

  • Java ME:Java Platform Micro Edition:
     携帯電話などの 小型デバイス向けJavaセット。
     旧名 J2ME(Java 2 Platform Micro Edition、 2は版数)。
    < http://java.sun.com/javame/downloads/index.jsp >
 Java EE ⊃ Java SE Java ME の関係になっている。
 Java SE と Java EE にはそれぞれ、 JRE だけ のものと、 JDK まで含む ものがある。

  JVM(Java Virtual Machine)とは

 Javaで開発されたソフトは、配布時にはJavaバイトコードになっている。
 Javaバイトコードは、プラットフォームには非依存だが、実行時には実行環境(プラットフォーム)で実行可能なネイティブコードに変換する必要がある。
 Javaバイトコードを、プラットフォームのネイティブコードに変換して実行するソフトウェアがJVM。 この 変換のオーバヘッドを少なくして実行速度を向上させる技術として、 JIT HotSpot がある。

 Java の開発元である
サン・マイクロシステムズからソースコードライセンスを受けなくても、 Java仮想マシン仕様(Java Virtual Machine Specification)を満たせば独自にJava VMを作ることは可能。
 そのため
Java VMの実装は   サン・マイクロシステムズからも   提供されているが、各社が独自のJava VMを作っている。

JIT:
 Javaバイトコードを実行前にまとめて変換することで実行速度を向上させる技術。

HotSpot:
 Javaバイトコードのうち実行に時間のかかる繰り返し処理などの部分を実行前にあらかじめ変換しておくことで実行速度を向上させる技術。
(参考1:Java仮想マシン=JVMとは < http://e-words.jp/w/JVM.html > )
(参考2:JITコンパイラとは < http://e-words.jp/w/JITE382B3E383B3E38391E382A4E383A9.html > )
(参考3:HotSpotとは < http://e-words.jp/w/HotSpot.html > )







     RSS of this page

     
     

    他のサイト: