JAVA
Javaは人気のあるプログラミング言語です。
Javaは、モバイルアプリ、Webアプリ、デスクトップアプリ、ゲームなどの開発に使用されます。
Javaとは何ですか?
Javaは1995年に作成された人気のあるプログラミング言語です。
それはOracleが所有しており 30億 デバイスはJavaを実行します。
それはのために使用されます:
- モバイルアプリケーション(特にAndroidアプリ)
- デスクトップアプリケーション
- Webアプリケーション
- Webサーバーとアプリケーションサーバー
- ゲーム
- データベース接続
- そして、はるかに!
Javaを使用する理由?
JAVAシステムの略
Java SE / Java Platform, Standard Edition
Java Platform, Standard Edition
API とは Application Programming Interface
Java SE はその中でも基本となる API をまとめたもの
スマートフォンやタブレット端末を含むパーソナルコンピュータ向けである。主にデスクトップアプリケーションとWEBアプリを開発または実行する。一般ユーザー用仕様と言える。
Java EE / Java Platform, Enterprise Edition
とは Java Platform, Enterprise Edition (Java EE から Jakarta EE という名前に変更)
大規模なシステムを開発する場合に必要となる API が含まれ,Java EE は Java SE の拡張機能
サーバマシン、ワークステーション向けである。スタンダード版に加え、WEBサーバ及び多層クライアントサーバ、業務用システムを開発する為の、様々な拡張技術クラスライブラリ&APIが追加されている。業務用プロフェッショナル仕様であり大規模である。
2017年9月にオラクルは今後のJava EEのバージョンアップがエクリプス財団によって行われる事を発表した。Java EEの商標は現行版のサポートを続けるオラクルが保持したので、エクリプス財団による今後のバージョンはJakarta EEの名称で公開される事になった。
Java ME / Java Platform, Micro Edition
とは Java Platform, Micro Edition
家電などの組み込み機器やモバイルデバイスで動作するアプリケーションを開発するために使用する API
組み込みシステム、マイクロコントローラ向けである。コンピュータ資源が制限されている集積回路や電子機器に対応した特定技術仕様であり、専用のクラスライブラリ&APIも用意されている。Java仮想マシンも比較的コンパクトにまとめられている。
Java Card
スマートカード(ICカード)、小型メモリデバイス上で運用されるプログラムを開発するためのエディションである。現在[いつ?]ではSIMカードやATMカードなど幅広い分野に普及している。Java仮想マシンの機能は非常にコンパクトにまとめられており、幾つかのプリミティブ型も省略されている。故に特殊なプログラミングスタイルが求められる。
JVM
とは Java Virtual Machine / Java 仮想マシン
JRE / Java Runtime Environment
とは Java Runtime Environment
Java 実行環境とか Java ランタイムなどと呼ばれます
Javaアプリケーションを実行するために必要なソフトウェアである。Java仮想マシン、”Java.exe”のスターターを含めた各種実行サポートツール、Javaクラスライブラリで構成される。Java実行環境の中核はJava仮想マシンである。エディション毎に仮想マシンの仕様と性能は異なっており、また実行時は複数の動作モードを持つ。仮想マシンはスターターを通して稼働されるのが普通である。様々な使用状況に対応したスターターが最初に実行されて、そこから仮想マシンが呼び出されてJavaプログラムの実行を移譲される。仮想マシンはJavaクラスライブラリを逐次読み込みながらJavaプログラムを実行する。Java実行環境のツール内容とクラスライブラリ構成は、エディション毎に違いがある。
Javaクラスライブラリ
Javaクラスライブラリは、普遍的に呼び出される特定の機能を実装したクラスの集合体である。Javaプログラムはライブラリ内のクラスを逐次呼び出しながら処理を実行する。なお、それぞれのJavaクラスライブラリ内部からプログラマの利用に向けて外部公開されている部分を「Java API」と呼ぶ。
- 基礎ライブラリ – Java言語の基礎を扱う。
- 入出力ライブラリ – ファイル入出力など。
- コレクションライブラリ – 動的配列と動的連想配列。データ集合の操作。
- 数学ライブラリ – 各種計算を扱う。
- 国際化地域化ライブラリ – 暦、日付、時間、通貨、文字コードなどの国際化と地域化を扱う。
- ネットワークライブラリ – ソケット通信を扱う。
- GUIライブラリ – グラフィカル・ユーザーインターフェースを扱う。
- アプレットライブラリ – アプレット生成用。
- Javaビーンズライブラリ – ソフトウェアコンポーネント作成用。
- データベース接続ライブラリ – SQLを扱う。
- リモートメソッドライブラリ – 分散オブジェクトを扱う。
- セキュリティライブラリ – セキュリティポリシー、ユーザー認証
- 権限承認、公開鍵暗号方式など。
Javaアプリケーションの形態
Java実行環境に用意されている特定のJavaクラスライブラリを利用する事でJavaプログラムは結果的に、以下の四種類のアプリケーション形態に派生する。
Javaアプリケーション (application)
パーソナルコンピュータなどのローカル環境で実行されるJavaプログラム。「Java Web Start」は任意のjnlpファイル(java network launching protocol)をダウンロードして実行できるJavaアプリの配布システムである。この類似技術としてマイクロソフトのノータッチデプロイメント、ClickOnceがある。
Javaアプレット (applet)
サーバからダウンロードされてWEBブラウザ上で実行されるJavaプログラム。サンドボックス機能下で厳しい動作制約が加えられている。当初はJavaの目玉技術であったが、様々な理由からさほど普及しなかった[独自研究?]。
Java Cardプラットフォームの分野であるスマートカード(ICカード)上で動くJavaプログラムもアプレットと呼ばれており、現在ではこちらに舞台を移している。
Javaサーブレット (servlet)
サーバマシンで実行されるJavaプログラム。その名の通り手軽にサーバプログラムを実装出来るが、大規模サーバの構築にも適している。サーブレットはクライアントからのリクエストを逐次トランザクションして順次レスポンスする。WEBクライアントにはHTMLなどのプロトコルページ及び各種メディアをレスポンスしてWEBブラウザ上で表示させる。PerlなどによるCGIに比べ、サーバ側の負荷が低いなどのメリットがある。
企業向け,大規模開発,信頼性,高い開発生産性といったキーワードをすべて満たす技術と言えば,サーバーサイドJava,すなわちJ2EE(Java2 Platform,Enterprise Edition)が現状では主流
サーブレットをWEBサーバ用に特化したものであり、XHTML (HTML) 内に記述するJavaプログラムである。WEBクライアントからのリクエストに伴うパラメータに従い、それをサーバ側で解釈してWEBページ内容を動的に生成、変化させてレスポンスする。コードは似ているが、JavaScriptの様にブラウザ側で実行するスクリプトではない。類似の技術にActive Server Pages、PHPがある。
JDK / Java開発キット
とは Java Development Kit
Java 仮想マシンである JVM 、 Java 実行環境の JRE 、 Java 開発環境の JDK
Java開発キット (Java Development Kit) は、Javaプログラムを開発するために必要なソフトウェアである。Java実行環境も内包している。Javaコンパイラなどの基本開発ツール、各種開発サポートツール、Java APIで構成されている。前述のエディションによって開発ツール内容とAPI構成に違いがある。
Java API
APIは、アプリケーション・プログラミング・インタフェースの頭字語であり、Javaクラスライブラリ内部からプログラマに向けて外部公開されているクラス、インタフェース、メソッド、フィールド、定数の集合である。プログラマはこれを用いて各種ソフトウェアの開発を行う。APIは基本的にクラスライブラリの所属に沿って、パッケージ (package) と呼ばれる名前空間で分類されて提供されている。パッケージは各ワードをピリオドで連結して階層化されている。先頭ワードのjavaは開発元提供の純正基礎版を意味する。他に純正拡張版のjavax、任意団体提供のorg、企業提供のcomがある。
- java.lang – Java言語の基礎を扱う。
- java.io – ファイル入出力など。
- java.util – 動的配列と動的連想配列。データ集合の操作。
- java.math – 各種計算を扱う。
- java.text – 暦、日付、時間、通貨、文字コードなどの国際化と地域化を扱う。
- java.net – ソケット通信を扱う。
- java.awt – グラフィカル・ユーザーインターフェイスを扱う。
- java.applet – アプレット生成用。
- java.beans – ソフトウェアコンポーネント作成用。
- java.sql – SQLを扱う。
- java.rmi – 分散オブジェクトを扱う。
- java.security – セキュリティポリシー、ユーザー認証と権限承認、公開鍵暗号方式など。
統合開発環境と開発支援ツール
統合開発環境 (IDE)は、JDKを中核にしてビジュアルエディターやビルドマネジャーなどの様々な開発支援機能を備えたソフトウェアである。JDKのみだと、メモ帳でプログラムを書きコマンドラインでコンパイルしコンソールでデバッグをするという極めて原始的な作業になるが、IDEを使用する事で多機能エディタコーディングとビルド過程の自動化と視覚的なデバッグが可能になる。
J2EE
J2EE(Java2 Platform,Enterprise Edition)
複雑に感じますが、どのように使うのか、どうして必要になったのかを考えれば良いのかを検討してみます.
J2EE1.3に含まれるAPIとその用途
API | バージョン | 用途 |
JDBC | 2.0※ | データベースのアクセス |
EJB (Enterprise JavaBeans) | 2.0 | ビジネス・ロジックのコンポーネント |
Servlet | 2.3 | Webアプリケーション |
JSP(JavaServer Pages) | 1.2 | Webアプリケーション |
JMS(Java Message Service) | 1.0 | メッセージ・サービス |
JTA(Java Transaction API) | 1.0 | トランザクション制御 |
JavaMail | 1.2 | メール・アプリケーション |
JAF(JavaBeans Activation Framework) | 1.0 | Java Beansの拡張 |
JAXP(Java API for XML Processing) | 1.1 | XML()パーサー |
JAAS(Java Authentication and Authorization Service) | 1.0 | ユーザー認証/承認 |
※オプション・パッケージ
システム全体は,細かく見るとクライアント層,Web層,ビジネス層,EIS(Enterprise Information Service)層の四つに分かれます。
クライアント層
多くはWebアプリケーションとして,Webブラウザを利用したHTMLあるいはアプレットがクライアントとなります。もちろん,独立して動作するクライアント・アプリケーションであることもあります。
J2EEサーバー
Webコンテナ(Web層)とEJBコンテナ(ビジネス層)という二つのコンテナに大きく分かれます。
Webコンテナ(Web層)
サーブレットやJSPのプログラムが含まれます.
J2EE SDKは,WebコンテナとしてWebサーバーのTomcatを装備しています。しかし開発でTomcatを使ったとしても,運用時にTomcatを使うことはありません。一般的には,セキュリティやパフォーマンス面で優れているApacheまたはApacheをベースにした商用Webサーバーを使うことがほとんどです。この場合,Webブラウザからの要求はApacheが受けて,ApacheとJ2EEサーバーが通信し合うことになります。
EJBコンテナ(ビジネス層)
ビジネス・ロジックを実現するコンポーネントを,SessionBean,EntityBean,MessageDrivenBeanの三つのEJBとして配置します
EIS層
データベースを含めたこれらのシステムやサービス
J2EEアプリケーションを配布
EJB(Enterprise JavaBeans) jarとwar(Web Application Archive)
多層構造とMVC
MVCでは,アプリケーションの構成要素をM(Model),V(View),C(Controller)の3種類に分類
J2EEサーバーのポート番号
J2EE SDKは,デフォルトで1050番(ORB),7000番(HTTPS),8000番(HTTP),9191番(EJB)のポートを利用
コマンド・プロンプトでnetstat -a -p TCP
ポート番号は,C:j2sdkee1.3.1configの下の.properties ファイルに設定されています。ORBの利用するポート番号はorb.properties,EJBの利用するポート番号はejb.properties,HTTP/HTTPSの利用するポート番号はweb.propertiesに記述されています。該当する部分を編集してj2ee.batを再起動してみてください。
Hello World
// Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
- Javaプログラムでは全てのフィールドとメソッドが
class
内に記述される。 - Javaプログラムは静的メソッド
public static void main (String[] args)
から開始される。args
はプログラム開始時のコマンドライン・パラメータである。 System.out
はSystemクラスの静的フィールドoutを意味する。outはPrintStream型のインスタンスである。out.println("文字列")
はoutがprintlnメソッドを呼び出す。
JAVA プログラミングの基本のおすすめ動画
めっちゃ わかりやすい動画です.
dokojava
webブラウザでJAVAを試すことができます.
メールアドレスとパスワードを登録する必要がありますが、簡単に JAVA を試すには有効です.
サンプルコードや学習ができるので、ぜひ試すことをお勧めします.
W3 schools
https://www.w3schools.com/java/default.asp
さまざまなプログラミング言語を学ぶことができる優秀なサイトです.
ここの、JAVA を選択して、学習を開始するのが効率が良いと思います.
ただし、英語サイトなので、ブラウザの翻訳機能を使って使用することをお勧めします.
JAVA の注意点
Javaでは、すべてのアプリケーションはクラス名で始まり、そのクラスはファイル名と一致する必要があります。
Javaで実行されるコードのすべての行は class
。 この例では、クラスに名前を付けました メイン。クラスは常に 大文字の最初の文字。
注: Javaは大文字と小文字を区別します。「MyClass」と「myclass」は 異なる意味。
javaファイルの名前はクラス名と 一致する必要があります 。 ファイルを保存するときは、クラス名を使用して保存し、末尾に「.java」を追加します ファイル名。
プログラムには、main()
メソッドが必要です。
public static void main(String[] args) {
System.out.println("Hello World");
}
System
などの便利なメンバーを含む組み込みのJavaクラスです .
out
は「出力」の略.
println()
メソッド、は「印刷ライン」は、画面に値(またはファイル)を印刷するために使用されます。
System
, out
そして println()
。あなたがそれらを必要としていることを知ってください 一緒に画面にものを印刷します。
また、各コードステートメントはセミコロン(で終了する必要があることに注意してください。;
)。