削除された内容 追加された内容
(同じ利用者による、間の1版が非表示)
425行目:
*mainメソッドにはString配列の引数が渡される。Stringは文字列オブジェクトである。OS側はプログラム実行時のパラメーターのそれぞれをStringオブジェクトにして配列に格納しmainメソッドの引数とする。引数名はargsとするのが標準である。プログラマは引数として渡されたString配列から実行時パラメーターを読み出す。
*mainメソッドはリターン値を返さないので、voidとする。
*mainメソッドはクラスメソッドなので、staticとする。クラスメソッドはインスタンスを必要としない
*mainメソッドはクラス内外の全領域から呼び出し可能な、publicとする。
*'''{{Javadoc:SE|java/lang|System}}'''クラスは使用OS環境のAPIを直接扱うクラスである。そのクラスフィールドである'''{{Javadoc:SE|name=out|java/lang|System|out}}'''はコンソール出力系APIを扱うPrintStreamクラスのインスタンスである。このoutからPrintStreamクラスのprintlnメソッドをコールして、パラメータとして渡す文字列をコンソール画面に表示させる。
562行目:
 
== Javaプラットフォーム ==
Javaプラットフォーム(''Java Platform'')は、'''Java実行環境'''(JRE)と'''Java開発キット'''(JDK)と'''拡張テクノロジ'''の総合である。拡張テクノロジとは様々なIT分野においてJavaを適用して生み出基盤に開発された膨大な技術群の総称である。上記三種Javaプラットフォームは対象環境に従い、JREおよびJDKの構成内容と、追加される拡張テクノロジの組み合わせを変えたエディションに編集されて提供される。これらの各技術要素またはその総称をJavaテクノロジと呼ぶ。Javaテクノロジは公式ベンダーだけでなくサードパーティ側からも提供されており、スマホ、パソコン、サーバーマシン、エンベデッドシステム、マイクロコントローラ、スマートカードなどのあらゆる環境に対応したJavaプラットフォームが存在している。各技術の品質を評価して認証するJavaテクノロジの標準化は、公式ベンダーである[[オラクル (企業)|オラクル社]]([[サン・マイクロシステムズ|サン社]])を始めとする各企業各団体が参画する[[Java Community Process|Javaコミュニティプロセス]](JCP)が管理している。Javaテクノロジの中核となるJREとJDKはオープンソース化されている為、各企業及び各任意団体が営利または非営利で膨大な数のソフトウェアと関連技術を公開し、巨大なITエコシステムを構築している。
 
=== エディション(版) ===
現在、Javaプラットフォームには使用対象環境に合わせた4つのエディションが存在する。エディションによってJava実行環境とJava開発キットに含まれるツール構成に違いがあり、またクラスライブラリとAPIの構成内容も異なっている。Java仮想マシンの性能にも差異がある。なお、JDK 1.1までは単体エディションで、J2SE 1.2から3エディションに分かれた。J2SE 5.0頃から拡張テクノロジの一つであったJava Cardが昇格して4エディションとなった。
 
;スタンダード版(''Java Platform Standard Edition'')
587行目:
Javaクラスライブラリは、普遍的に呼び出される特定の機能を実装したクラスの集合体である。Javaプログラムはライブラリ内のクラスを逐次呼び出しながら処理を実行する。なお、それぞれのJavaクラスライブラリ内部からプログラマの利用に向けて外部公開されている部分を「Java API」と呼ぶ。
 
*# 言語使用ライブラリ - Java言語仕様の基本部分扱う。
*# 入出力ライブラリ - ファイル入出力など。
*# データコレクションライブラリ - 配列の操作と順序収納、索引収納、連想収納などのデータ集合。
*# 数学ライブラリ - 各種計算。
*# 国際化地域化ライブラリ - 暦、日付、時間、通貨、文字コードなどを扱う。
*# ネットワークライブラリ - ソケットを置いてリモートポートを開きストリーム入出力を扱う。
# GUIライブラリ - ウィンドウとスイッチとイメージを表示し、ユーザーからの操作を認識する。
* グラフィックユーザーインターフェースライブラリ
*# Javaアプレットライブラリ - アプレット生成用。
*# Javaビーンズライブラリ - Java版ソフトウェアコンポーネント作成用。
*# リモートメソッドライブラリ - 外部マシン上にあるプロセス・メソッドを呼び出す。
*# セキュリティライブラリ - 様々な通信セキュリティプロトコルを扱う。
*# バッファストリームライブラリ - 連続バイトデータを扱う。
*#データベース接続ライブラリ - SQLを扱う。
*# リフレクションライブラリ - クラス定義を動的に操作する。
 
;Javaアプリケーションの形態
608行目:
:スマホ、モバイルPC、パソコンのローカル環境で実行されるJavaプログラム。「[[Java Web Start]]」は任意のjnlpファイル(''java network launching protocol'')をダウンロードして実行できるJavaアプリの配布システムである。この類似技術としてマイクロソフトのノータッチデプロイメント、ClickOnceがある。
;[[Javaアプレット]](applet)
:サーバーからダウンロードされてウェブブラウザ上で実行されるJavaプログラム。その動作には[[サンドボックス (セキュリティ)|サンドボックス]]機能下で厳しい動作が加えられている。Javaの汎用仕様上の制限から起動や動作の軽快さに難があり、その改善機会も某社との企業戦略上の確執から失われ、WEBブラウザ向けに特化していた他メディアに押されてさほど普及しなかった
;[[Java Servlet|Javaサーブレット]](servlet)
:サーバーマシンで実行されるJavaプログラム。その名の通り手軽にサーバープログラムを実装出来るが、大規模サーバーの構築にも適している。サーブレットはクライアントからのリクエストを逐次トランザクションして順次レスポンスする。WEBクライアントにはHTMLなどのプロトコルページ及び各種メディアをレスポンスしてWEBブラウザ上で表示させる。[[Perl]]などによる[[Common Gateway Interface|CGI]]に比べ、サーバ側の負荷が低いなどのメリットがある。
;[[JavaServer Pages|Javaサーバーページ]] (java server page)
:サーブレットをWEBサーバー用に特化したものであり、[[Extensible HyperText Markup Language|XHTML]] ([[HyperText Markup Language|HTML]]) 内に記述するJavaプログラムである。WEBクライアントからのリクエストに伴うパラメータに従い、それをサーバー側で解釈してWEBページ内容を動的に生成、変化させてレスポンスする。コードは似ているが、[[JavaScript]]の様にブラウザ側で実行するスクリプトではない。類似の技術に[[Active Server Pages]]、[[PHP (プログラミング言語)|PHP]]がある。
627行目:
APIは、アプリケーション・プログラミング・インターフェスの頭字語であり、Javaクラスライブラリ内部からプログラマに向けて外部公開されているクラス、インターフェース、メソッド、フィールド、コンスタントバリューの総合である。またそのプロトコル(定義情報と使用方法)を指す。プログラマはこれを用いて開発を行う。
 
# java.lang - Java言語仕様の基礎を扱う。
* java.lang
# java.io - ファイル入出力など。
* java.io
# java.util - 配列の操作と順序収納、索引収納、連想収納などのデータ集合。
* java.util
*# java.math - 各種計算。
#java.text - 暦、日付、時間、通貨、文字コードなどを扱う。
*java.text
# java.net - ソケットを置いてリモートポートを開きストリーム入出力を扱う。
* java.net
# java.awt - ウィンドウとスイッチとイメージを表示し、ユーザーからの操作を認識する。
* java.awt
*# java.applet - アプレット生成用。
# java.beans - Java版ソフトウェアコンポーネント作成用。
* java.beans
# java.rmi - 外部マシン上にあるプロセス・メソッドを呼び出す。
* java.rmi
# java.security - 様々な通信セキュリティプロトコルを扱う。
* java.security
# java.nio - 連続バイトデータを扱う。
* java.nio
*#java.sql - SQLを扱う。
*#java.lang.reflect - クラス定義を動的に操作する。
 
;統合開発環境と開発支援ツール