「Java」の版間の差分
削除された内容 追加された内容
タグ: モバイル編集 モバイルウェブ編集 |
|||
(同じ利用者による、間の1版が非表示) | |||
1行目:
{{Otheruses|コンピューターのプログラミング言語およびプラットフォーム|その他|ジャバ}}
{{混同|JavaScript
{{Infobox プログラミング言語
| fetchwikidata = ALL
34行目:
=== オブジェクト指向 ===
Javaの主要
Javaのカプセル化は、
Javaの継承は、スーパークラスが一つに限られる単一継承をサポートしており、多重継承は除外されている。継承用のアクセス修飾子は無く''public''継承に統一されている。継承によって既存クラスの設計を引き継ぎつつ任意のフィールドとメソッドを追加した独自のクラスを作成できる。
Javaの多態性は、インターフェースと仮想関数とリフレクションと遅延バインディングでサポートされている。親クラスの''virtual''指定メソッドが仮想関数の抽象メソッドになり、子クラスの同名メソッドが仮想関数の実装メソッドになる。[[インタフェース (抽象型)|インターフェース]]は抽象メソッドだけで構成される純粋抽象クラスであり、''implements''構文によって任意の数だけクラスに実装指定できる。これはJavaの中でも比較的重視されておりクラスの動作局面を明確にする。リフレクションは動的ディスパッチ、メソッドミッシング、[[モンキーパッチ]]などの実装に活用できるが安易な使用は推奨されていない。遅延バインディングは''instanceof''演算子による実行時型チェックと、''(typename)''によるダウンキャストの二つである。ダウンキャスト失敗時は例外発生によってフォローされる。
=== プラットフォーム非依存 ===
[[プラットフォーム (コンピューティング)|プラットフォーム]]非依存とは、Javaプログラムが特定のハードウェアおよびオペレーティングシステムの機能に依存する事なく、Java実行環境が導入されたあらゆるコンピューター環境上において共通した動作を見せる事を意味する。”''Write once, run anywhere''”(一度プログラムを書いてしまえば、どのコンピューターでも動くよ)がそのスローガンとされていた。Javaのプラットフォーム非依存性は次のようにして実現されている。
84 ⟶ 85行目:
'''家電向けプロジェクトの立ち上げ(1990年12月)'''
[[ファイル:James Gosling 2008.jpg|サムネイル|181x181ピクセル|ジェームズ・ゴスリン]]
Javaの歴史は、1990年12月に[[サン・マイクロシステムズ]]社が、次世代の家電製品が内蔵するマイクロコントローラ向けのプログラミング言語を開発するステルス・プロジェクトを立ち上げた事から始まる。サン社はこの分野が重要市場になると予測していた。サン社のエンジニアである[[ジェームズ・ゴスリン]]
'''Oak言語とGreen OSの誕生(1991年)'''
96 ⟶ 97行目:
'''ワールドワイドウェブ参入(1994年6月~1994年9月)'''
1994年6月、サン社技術部長ジョン・ゲージが[[ジェームズ・ゴスリン]]、[[ビル・ジョイ]]、
'''Javaの始動(1994年10月~1996年1月)'''
102 ⟶ 103行目:
1994年秋までにグリーンチームは、Oakを'''Java'''に、WebRunnerを「[[HotJava]]」に改称した。その理由はOakがすでにビデオカードアダプタ製造会社の登録商標になっていたからだった。この命名は一部のチームメンバーがよく出入りしていた近くのコーヒーショップで決定されたという。Javaの由来は不明とされているが、ロゴが示している通りコーヒーに因んでいるのは明らかである。ジャワ島はコーヒー豆の名産地であり、豆(''Bean'')はJavaテクノロジ内でコンポーネントを指す用語にされている。
1994年10月、JavaランタイムとHotJavaブラウザがサン社幹部社員の前でデモンストレーションされ、α版が社内公開された。1995年5月23日のSunワールドカンファレンスで、JavaランタイムとHotJavaブラウザが社外初披露された。ここでは[[Javaアプレット]]の技術がセールスポイント的にアピールされた。同時に[[ネットスケープコミュニケーションズ|ネットスケープ社]]が「[[Netscape Navigator (ネットスケープコミュニケーションズ)|Netscape Navigator]]」ブラウザへもこのアプレット機能を配備するとアナウンスして業界の注目を集めた。1995年秋にβ版が社外公開された。1996年1月9日にサン社は正式にJavaソフトウェア部門を立ち上げた。その2週間後の1月23日に最初の公開バージョンである「JDK 1.0」が市場リリースされた。
=== バージョン履歴 ===
{{main|Javaバージョン履歴}}1996年1月の初リリースからバージョン更新はおおむね数年おきに行われていたが <ref>{{Cite web|url=http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml|title=JAVASOFT SHIPS JAVA 1.0|accessdate=2008-02-05|archiveurl=https://web.archive.org/web/20070310235103/http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml|archivedate=March 10, 2007}}</ref>、2017年9月の「Java SE 9」から一定の機能蓄積を待たずに半年単位で更新する定期リリースに変更された。従来の長期間サポート(LTS)も廃止され、原則的に次回バージョンまでの半年間サポートになった。なお2018年9月の「Java SE 11」はLTS宣言されている<ref>{{Cite web|url=https://blogs.oracle.com/java-platform-group/introducing-java-se-11|title=Introducing Java SE 11|first=Sharat|author=Chander|website=oracle.com|accessdate=September 26, 2018|archiveurl=https://web.archive.org/web/20180926093144/https://blogs.oracle.com/java-platform-group/introducing-java-se-11|archivedate=September 26, 2018}}</ref>。LTS宣言されたものは安定版、されてないものは機能先取り版といった位置付けである。現行の推奨安定バージョンは「Java SE 11」と「Java SE 8」である。運用期間の長さと普及度から「Java SE 8」の方が代表的バージョンと見なされている。
{| class="wikitable" style="margin-left:9px;"
|-
! バージョン
! リリース日
! 無料公開アップデート期限<ref name="auto9">{{Cite web|url=https://www.oracle.com/technetwork/java/java-se-support-roadmap.html|title=Oracle Java SE Support Roadmap|website=www.oracle.com}}</ref><ref>{{Cite web|url=https://adoptopenjdk.net/support.html#roadmap|title=Support | AdoptOpenJDK|website=adoptopenjdk.net}}</ref>
! 延長サポート期限
|-
| {{Version|o|JDK Beta}} || 1995 || {{dunno}} || {{dunno}}
|-
| {{Version|o|JDK 1.0}} || 1996年1月 ||{{dunno}} || {{dunno}}
|-
| {{Version|o|JDK 1.1}} || 1997年2月 ||{{dunno}} || {{dunno}}
|-
| {{Version|o|J2SE 1.2}} || 1998年12月 ||{{dunno}} || {{dunno}}
|-
| {{Version|o|J2SE 1.3}} || 2000年5月 ||{{dunno}} || {{dunno}}
|-
| {{Version|o|J2SE 1.4}} || 2002年2月 || 2008年10月 ||2013年2月
|-
| {{Version|o|J2SE 5.0}} || 2004年9月 || 2009年11月 ||2015年4月
|-
| {{Version|o|Java SE 6}} || {{date|2006年12月 }}|| 2013年4月 || 2018年12月
|-
| {{Version|o|Java SE 7}} || 2011年7月 ||{{date|2015年4月}}|| 2022年7月
|-
| {{Version|co|Java SE 8 (LTS)}} || 2014年3月 ||Oracle(商用) 2019年1月まで
Oracle(個人用) 2020年12月まで
AdoptOpenJDK 2026年5月以降も予定
Amazon Corretto 2023年6月までは保証<ref name="Corretto2018">{{cite web
| title = Introducing Amazon Corretto, a No-Cost Distribution of OpenJDK with Long-Term Support
| last = Gupta
| first = Arun
| url = https://aws.amazon.com/blogs/opensource/amazon-corretto-no-cost-distribution-openjdk-long-term-support/
| date = 2018-11-14
| accessdate = 2019-12-17}}</ref>
| 2030年12月
|-
| {{Version|o|Java SE 9}} || 2017年9月 || OpenJDK 2018年3月 || {{n/a}}
|-
| {{Version|o|Java SE 10}} || 2018年3月 || OpenJDK 2018年9月 || {{n/a}}
|-
| {{Version|co|Java SE 11 (LTS)}} || 2018年9月 || Amazon Corretto 2024年8月以降も予定<ref name="Corretto2018"></ref>
AdoptOpenJDK 2024年10月まで
| 2026年9月
|-
| {{Version|o|Java SE 12}} || 2019年3月 || OpenJDK 2019年9月 || {{n/a}}
|-
| {{Version|o|Java SE 13}} || 2019年9月 || OpenJDK 2020年3月 || {{n/a}}
|-
| {{Version|c|Java SE 14}} || 2020年3月 || OpenJDK 2020年9月 || {{n/a}}
|-
| {{Version|p|Java SE 15}} || 2020年9月 || OpenJDK 2021年3月 || {{n/a}}
|-
| {{Version|p|Java SE 16}} || 2021年3月 || OpenJDK 2021年9月 || {{n/a}}
|-
| {{Version|p|Java SE 17 (LTS)}} || 2021年9月 || {{TBA}} || {{TBA}}
|-
| colspan="4" | <small>{{Version|l|show=111101}}</small>
|}
== Javaプログラミング例 ==
{{main|Javaの文法}}
|