Edit
Java

Edit
Install

Edit
新バージョン

# yum install java-1.6.0-openjdk-src.i386
# yum install java-1.6.0-openjdk-devel.i386

上記のコマンドで以下のフォルダにインストールされる。

/usr/lib/jvm/jre-openjdk         (元は/etc/alternatives/jre_openjdk)
/usr/lib/jvm/jre-1.6.0           (元は/etc/alternatives/jre_1.6.0)
/usr/lib/jvm/jre-1.6.0-openjdk   (下のフォルダにリンク)
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0

ドキュメントは以下にインストール

/usr/share/doc/java-1.6.0-openjdk-1.6.0.0
/usr/share/doc/java-1.6.0-openjdk-src-1.6.0.0

実行ファイルは以下

/usr/bin/unpack200, tnameserv, servertool, rmid, policytool, pack200, orbd

Edit
旧バージョン 1.4

SDKとJREをそれぞれ、Sunのページからダウンロードしてきます。

Edit
初期環境の設定

rpmから、/usr/javaの下に2つのフォルダが作成されてインストールされたので、使い易いようにリンクを作成しておきます。

# ln -s /usr/java/j2sdk1.4.2_17 /usr/java/j2sdk
# ln -s /usr/java/j2re1.4.2_17 /usr/java/j2re

環境変数を設定します。

# emacs /etc/profile
  pathmunge /etc/alternatives
  ...
  JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0
  export JAVA_HOME
  PATH=$PATH:$JAVA_HOME/bin
  export PATH
  CLASSPATH=.:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib
  export CLASSPATH

※ここでは、JDKのほうを指定していますが、Runtime Libraryのほうでも問題ないです。

Edit
トラブル

Edit
コンパイルできない

Windowsなどでは、QuickTimeをインストーウすると、環境変数であるCLASSPATH(CLASSPATHとは,Javaプログラムが,実行時に使うクラスを探す場所を指定している。通常カレントディレクトリをクラスを探す対象に含めるように設定されている)の設定が、勝手に書き直されてしまっている。その場合、CLASSPATHの先頭に上記の環境設定と同じように、カレントディレクトリを最初に参照するように再設定すること。

Edit
実行できない

コンパイラである、Javacと、実行コマンドであるjavaのバージョンが違っている場合、実行できない場合がある。

Edit
java.lang.NoClassDefFoundError

このエラーは大概Classが見つからないなどのエラーのため、上記のCLASSパスの問題か、コンパイル時に行われる、packageの問題と思われる。参考リンクのパッケージの概念を参考にされたし。

Edit
SunのFontパッケージが無い

CentOSのパッケージではSunFontsがないため、下記の手順でインストールする。

# wget -P /etc/yum.repos.d http://sipxecs.sipfoundry.org/temp/sipXecs/sipxecs-unstable-centos.repo
# yum install java-1.6.0-sun-fonts

Edit
単語

Edit
JRE(Java Runtime Environment)

このソフトウェア群は Java 仮想マシン (JVM) とアプリケーション・プログラミング・インタフェース (API) から成り立っている。API は標準クラスライブラリのセットを提供する。仮想マシンと API は互いに互換性がなければならず、それゆえ JRE として共にバンドルされている。

Edit
JDK(Java Development Kit)

Java開発者向けのサン・マイクロシステムズの製品である。JDKはまたJREを付属する。製品環境に含まれる全クラスライブラリのほか、国際化ライブラリやIDLライブラリのようなディベロッパーにとって役立つ以下のライブラリや追加ライブラリを構成する。

Edit
文法

Edit
Iterator

Edit
コレクション

Javaでは、複数のデータを管理するために、コレクション・フレームワークというフレームワークが提供されている。これにより、いろいろなデータの集合を分かりやすく管理できるようになっている。

Edit
概要

コレクションは大きくわけて3つの構造を持つインターフェイスがある。Collectionインターフェイスは抽象クラス。

  1. Collectionインタフェース 共通機能が定義されている。(List, Setの親インターフェイス)
  2. Listインタフェース 格納される要素において順番を持つ。インデックス番号によって要素を操作するメソッドが存在する。
  3. Setインタフェース:格納される要素において重複を許可しない。(ソートできる、SortedSetの子を持つ)
  4. Mapインタフェース:Mapインタフェースはキーと値が対になった要素を持つ。格納される要素において順番を持つ。インデックス番号によって要素を操作するメソッドが存在する。(ソートできる、SortedMapの子を持つ)

具体的な実装クラス

クラス実装しているインタフェース得意なアクセスINDEX番号操作可データの重複許可順番格納するデータ種別
ArrayListListランダム読込追加順オブジェクト
HashSetSetランダム読込××順序保証無しオブジェクト
HashMapMapランダム読込×順序保証無しKey/Valueの対
TreeSetSortedSetランダム読込××自動ソートオブジェクト
TreeMapSortedMapランダム読込×自動ソートKey/Valueの対
LinkedListList追加削除追加順オブジェクト
LinkedHashSetSet追加削除××追加順オブジェクト
LinkedHashMapMap追加削除×追加順Key/Valueの対

※注意)設定によりソートや順番などはこの状態とは限らない。
詳しくはここを見るとサンプルソースがある

Edit
Volatile

Edit
参考リンク