Java
別名:Java言語
Javaとは、Sun Microsystemsによって開発されたオブジェクト指向をサポートする汎用のプログラミング言語の名称である。
Javaの特徴:WORA、中間言語方式Javaの最大の特徴として、WORA(Write Once, Run Anywhere)、すなわち「一度書けば、どこでも動く」と端的に表現される汎用性の高さを挙げることができる。Javaで記述されたプログラムのソースコードは、コンパイラによって、ネイティブコードにではなく、バイトコードとよばれる中間言語に生成される。そのバイトコードは、各マシンにインストールされたJava仮想マシン(Java VM)と呼ばれる実行環境の上で動作するようになっている。このため、Java仮想マシンが導入されていれば、どのようなアーキテクチャのシステムでも同じJavaプログラムを実行させることが可能となっている。
Jsvaは、コンパイルを経て実行されるという意味ではコンパイラ型言語ともいえるが、いわゆるコンパイラ型言語とは区別する意味で「中間言語方式」と分類されることが多い。
Javaプログラムのソースコードには、拡張子として「.java」が付く。Javaコンパイラによって生成された中間言語であるバイトコードは、拡張子を「.class」とするクラスファイルに格納される。コンパイルはクラス単位で行われ、一つのクラスに対応して一つのクラスファイルが生成される。プログラムの実行時、Java仮想マシンはこのクラスファイル(バイトコード)を読み込む。
Javaの特徴:構文Javaの構文は、C言語やC++と似通っている部分が多く、また、全体的な言語機能としてはC++に近いといわれている。JavaをC++と比較すると、C++でバグなどの問題の原因となりそうな要素のいくつかが、Javaからは除外されている。例えば、ポインタ変数、多重継承、プログラマによるメモリ管理、マクロ(プリプロセッサ)などがJavaでは省かれている。他方、C++が言語機能レベルで持たない要素のいくつかは、Javaで独自にサポートされている。例えば、インターフェース、スレッド、イテレータなどが使用可能になっている。
クラスや単一継承、インターフェース、情報隠蔽、多態性(ポリモーフィズム)、例外、スレッドなどの機能は、Javaの言語レベルでサポートされている。特に、単一継承のみを用いるシンプルなオブジェクト指向モデル、インターフェース概念の積極的取り込み、モジュラリティを高めるパッケージ概念、アーキテクチャの異なるマシンでも実行できるポータビリティ、といった要素は、アプリケーション開発用の言語としての高い評価に繋がっている。一方で、厳密なリアルタイム性、プログラマによるメモリ管理、利用リソースの最小化、ネイティブの実行速度などが要求される分野では、他の言語の方がより適するとされる。
Javaの特徴:開発環境、実行環境Javaプログラムは、特定の開発環境によって開発され、また、特定の実行環境によって実行される。Sun MicrosystemsがJava向けに提供しいるソフトウェア開発キット(SDK)は、JDK(Java SDK)と呼ばれる。JDKは2007年にGPLのライセンスによるオープンソースソフトウェア(OSS)となった。また、統合開発環境(IDE)としては、OSSであるEclipseや、Sun MicrosystemsのNetBeansなどがある。
Javaの実行環境はJRE(Java Runtime Environment)と呼ばれる。Sun Microsystemsが提供するJava2(Javaバージョン2)では、規模や用途によって異なるいくつかの開発環境が提供されている。最も広範に用いられる、標準的な開発環境であるJ2SE(Java 2 Standard Edition)や、主に企業向けのサーバーシステムに用いられるJ2EE(Java 2 Enterprise Edition)、比較的小規模な組み込み用途に用いられるJ2ME(Java 2 Micro Edition)などがある。
また、Javaは、オブジェクト指向の性質を活かして、モジュラリティに優れた膨大なライブラリ群や特定用途向けのアプリケーションフレームワークを持っている。携帯電話のアプリケーション、GUIのデスクトップアプリケーション、サーバーサイドのWebアプリケーション、果ては企業の主たる業務を支える基幹システムに至るまで、非常に広い分野をカバーすることができる。また、実務用途の他にも、先進的な概念を具現化する実験場的な扱われ方もし、デザインパターン、アスペクト指向、アプリケーションフレームワーク、アジャイル開発、テスト駆動開発、モデル駆動、サービス指向アーキテクチャなどの実験的な実践の場としても活用されている。
Javaの歴史Javaは元々、Sun Microsystemsのジェームズ・ゴスリン(James Gosling)らが推進していたセットトップボックス向けのポータブルなプログラムに関する研究開発の成果物である。当初は「Oak」と命名されたが、1995年のホワイトペーパーにおいて、Javaとして正式発表された。正式版のJavaバージョン1.0は1996年に発表されている。
当初は、クライアント(Webブラウザ)側で動くポータブルなプログラムであるJavaアプレットが注目を集めた。その後、サーバー側で実行される、Webアプリケーションの構築に適した言語であるという認識が徐々に浸透していった。現在では、エンタープライズ向けのサーバーサイド技術としてJavaは代表的な地位を占めるまでになっている。
時代とともにJavaの機能や仕様にも追加、改良が加えられている。ジェネリックプログラミングなどのような、当初は持っていなかったいくつかの高度な機能も取り込まれ、また、中間言語方式の難点であった実行速度の遅さは、実行時に必要な部分をネイティブコンパイルしてから実行するHotSpot技術などによってある程度克服されている。
2006年以降、JavaはGPLのライセンスに基づくオープンソースソフトウェアとして提供されている。Javaは、様々なプラットフォームにおいて最も多く用いられている言語の一つとなっている。
参照リンク
Javaテクノロジ
Sun Developer Connection
java.com
Java: | パーソナルJava J2SE 5.0 Jakartaプロジェクト Java Java RMI JavaScript JDBC |
Java
(Java言語 から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/16 21:58 UTC 版)
- ^ Chaudhary, Harry H. (2014年7月28日). “Cracking The Java Programming Interview :: 2000+ Java Interview Que/Ans”. 2016年5月29日閲覧。
- ^ “The Java Language Environment” (1996年5月). 2014年5月6日時点のオリジナルよりアーカイブ。2014年5月6日閲覧。
- ^ “The Java Language Specification, 2nd Edition”. 2011年8月5日時点のオリジナルよりアーカイブ。2008年2月8日閲覧。
- ^ “The A-Z of Programming Languages: Modula-3”. Computerworld.com.au. 2009年1月5日時点のオリジナルよりアーカイブ。2010年6月9日閲覧。
- ^ Patrick Naughton cites Objective-C as a strong influence on the design of the Java programming language, stating that notable direct derivatives include Java interfaces (derived from Objective-C's protocol) and primitive wrapper classes. [1] Java Was Strongly Influenced by Objective-C - ウェイバックマシン(2011年7月13日アーカイブ分)
- ^ “What is Java and why do I need it?” (英語). 2019年1月閲覧。
- ^ “1.2 Design Goals of the Java™ Programming Language”. オラクル (1999年1月1日). 2013年1月23日時点のオリジナルよりアーカイブ。2013年1月14日閲覧。
- ^ “Write once, run anywhere?”. Computer Weekly (2002年5月2日). 2009年7月27日閲覧。
- ^ a b Chan (2019年1月22日). “The 10 most popular programming languages, according to the 'Facebook for programmers'”. Business Insider. 2019年6月29日時点のオリジナルよりアーカイブ。2019年6月29日閲覧。
- ^ “JavaOne 2013 Review: Java Takes on the Internet of Things”. www.oracle.com. 2016年4月19日時点のオリジナルよりアーカイブ。2016年6月19日閲覧。
- ^ “Why should I uninstall older versions of Java from my system?”. オラクル. 2016年9月9日閲覧。
- ^ a b “Java Software | オラクル”. www.oracle.com. 2019年10月19日閲覧。
- ^ 広辞苑 第六版
- ^ “JAVASOFT SHIPS JAVA 1.0”. sun.com. 2007年3月10日時点のオリジナルよりアーカイブ。2008年2月5日閲覧。
- ^ Chander, Sharat. “Introducing Java SE 11”. oracle.com. 2018年9月26日時点のオリジナルよりアーカイブ。2018年9月26日閲覧。
- ^ “The Arrival of Java 15!”. Oracle (2020年9月15日). 2020年9月15日閲覧。
- ^ “オラクル、Java 17をリリース”. Oracle (2021年9月17日). 2021年9月30日閲覧。
- ^ “オラクル、Java 18を発表”. Oracle (2022年3月22日). 2022年3月23日閲覧。
- ^ “オラクル、Java 19をリリース”. Oracle (2022年9月21日). 2022年9月21日閲覧。
- ^ “オラクル、Java 20をリリース”. Oracle (2023年3月22日). 2022年3月23日閲覧。
- ^ “オラクル、Java 21のリリースとサポート・ロードマップの延長を発表”. Oracle (2023年9月19日). 2023年9月21日閲覧。
- ^ “オラクル、Java 22をリリース”. Oracle (2024年3月21日). 2024年3月23日閲覧。
- ^ “Opening Up Java EE - An Update” (英語). オラクル (2017年9月12日). 2019年3月10日閲覧。
- ^ “EE4J、EclipseファウンデーションがオープンソースJava EEを準備”. InfoQ (2017年11月16日). 2019年3月10日閲覧。
- ^ “Java EE は Jakarta EE となる”. InfoQ (2018年3月5日). 2019年3月10日閲覧。
- ^ 星 暁雄=日経BP Javaプロジェクト (2003年10月31日). “EclipseとWebSphere Studioはどう違うのか | 日経 xTECH(クロステック)”. 日経 xTECH(クロステック). Nikkei Business Publications, Inc.. 2019年11月17日閲覧。
- ^ Sun Microsystems, Inc (2007年5月8日). “Sun Fulfills Promise of Open and Free Java Technology and Releases Java SE Platform to OpenJDK Community”. 2009年9月16日閲覧。
- ^ http://www.excelsior-usa.com/jet.html
- ^ “オラクル Java SE 認定資格パス 概要”. 2019年3月7日閲覧。
- ^ “オラクル Java EE and Web Services 認定資格パス 概要”. 2019年3月7日閲覧。
- ^ “Java Foundations Certified Junior Associate (novice-level certification)”. 2019年3月10日閲覧。
- ^ “認定試験一覧”. 2019年3月7日閲覧。
- ^ “Java資格が大幅リニューアル。Bronze/Silver/Goldが登場”. 2019年3月7日閲覧。
- Java言語のページへのリンク