リンク集 Edit

Java関連リンク集

http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi?page=JavaLinks

非常に強力なリンク集。

新しい見出し Edit

asdad

Java/新しいページ?

Javaの文字コード Edit

Unicodeのバージョン Edit

http://www.itarchitect.jp/beginners/-/10422.html

↑のページが詳しく書いてあるが、Unicodeのバージョンに関してはだいぶ古くなっている。

「Java言語仕様第3版」の「3.1 Unicode」によると

http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.1

JDKのバージョンUnicodeのバージョン
JDK 1.1以前1.1.5
JDK 1.12.0
JDK 1.1.72.1
J2SE 1.43.0
J2SE 5.04.0

となっている。

Javaで採用されているUnicode 2.1では、約4万字程度の文字が割り当てられています※1。

と書いてあるが、Unicode 3.1以降でははるかに多くなっている。

参照:http://ja.wikipedia.org/wiki/Unicode

クラスファイルの文字コードはシステムの言語環境に依存 Edit

最初にまとめを書くと:

  • Windowsでjavacを使ってコンパイルしたときはUTF-8
  • Linuxでjavacを使ってコンパイルしたときはロケール(環境変数LANG)の値
    になる。

Windows上で

System.out.println("ABCこんにちは、世界!ABC\n"); 

と書いてShift_JISで保存し、javaでコンパイルする。

そしてクラスファイルをバイナリエディタで開いてみると次のような部分がある。

0000090: 1901 0022 4142 43e3 8193 e382 93e3 81ab  ..."ABC.........
00000a0: e381 a1e3 81af e380 81e4 b896 e795 8cef  ................
00000b0: bc81 4142 430a 0700 1a0c 001b 001c 0100  ..ABC...........

""の文字列の部分がUTF-8になっていることがわかる。

一方、同じソースをLinux上でコンパイルすると、

LANG=ja_JP.eucJP

のときはクラスファイルもEUC-JP。

LANG=ja_JP.UTF-8

のときはクラスファイルもUTF-8になる。

javaのソースを別のエンコーディングで書くには Edit

システムのデフォルトエンコーディングと異なるエンコーディングで書いたソースをコンパイルするには

javac -encodng Shift_JIS

のように-encodingオプションを指定する。

すると""の文字列の部分が、ソースファイルのエンコーディングからシステムのデフォルトエンコーディニグに変換されてクラスファイルになる。

O/Rマッピング Edit

http://www.thinkit.co.jp/free/article/0606/13/7/

Hibernate, Torque, iBATIS の比較がよい。

第1回 O/Rマッピングとは?

第2回 SQLを直接記述できるiBATIS(前編)

第3回 SQLを直接記述できるiBATIS(後編)

第4回 SQLを記述しない「Torque」

第5回 多機能なHibernate(前編)

第6回 多機能なHibernate(後編)

第7回 それぞれのメリット/デメリット

アクセス修飾子 Edit

自ファイル他ファイル
修飾子自クラスサブクラス他クラスサブクラス他クラス
public
protected×
なし××
private××××

http://www.tohoho-web.com/java/modifier.htm#access

JDKのバージョンを調べる Edit

javac -J-version

JREのバージョンを調べる Edit

java -version

クラスファイルのバージョンを調べる Edit

java のバージョンとクラスファイルのバージョン番号との対応は以下の通り。

1.1 = 45.3
1.2 = 46.0
1.3 = 47.0
1.4 = 48.0
1.5 = 49.0

クラスファイルのバージョンを調べるには、Unix では file コマンドを使うとよい。

$ file xxx.class
xxx.class: compiled Java class data, version 48.0

file コマンドが使えない場合は、class ファイルの先頭 8 バイトを見れば分かる。

class ファイルの 先頭 4 バイトは「CA FE BA BE」で固定である。続く、5 ~ 6 バイトがマイナーバージョン、7 ~ 8 バイトがメジャーバージョンを表している。

ある class ファイルの先頭が以下だった場合、

CA FE BA BE 00 00 00 30

0x30 = 48 だから、JDK1.4 に準拠してコンパイルされた事が分かる。

J2SE 5.0で予約語が増えた Edit

 新予約語:enum

 JDK 1.3や1.4で作成されたアプリケーションをJDK 5.0でリコンパイルする場合は注意!

参考:

Wikipedia:Javaの予約語

TODO: 予約語一覧をここにのせる


    Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes