• The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
#ls2

#contents

*リンク集 [#b7f9f504]
Java関連リンク集~
http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi?page=JavaLinks~
非常に強力なリンク集。~

*新しい見出し [#r75451cb]
asdad

[[Java/新しいページ]]


*Javaの文字コード [#ja918812]

**Unicodeのバージョン [#o630b513]
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.1|2.0|
|JDK 1.1.7|2.1|
|J2SE 1.4|3.0|
|J2SE 5.0|4.0|

となっている。


 Javaで採用されているUnicode 2.1では、約4万字程度の文字が割り当てられています※1。
と書いてあるが、Unicode 3.1以降でははるかに多くなっている。~
参照:http://ja.wikipedia.org/wiki/Unicode~
**クラスファイルの文字コードはシステムの言語環境に依存 [#a90b20c4]
最初にまとめを書くと:
-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のソースを別のエンコーディングで書くには [#oc9822f5]
システムのデフォルトエンコーディングと異なるエンコーディングで書いたソースをコンパイルするには
 javac -encodng Shift_JIS
のように-encodingオプションを指定する。~
すると""の文字列の部分が、ソースファイルのエンコーディングからシステムのデフォルトエンコーディニグに変換されてクラスファイルになる。~

*O/Rマッピング [#s8cd167e]
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回 	それぞれのメリット/デメリット

*アクセス修飾子 [#fa20f956]
||>|自ファイル|>|>|他ファイル|
|修飾子|自クラス |サブクラス |他クラス| サブクラス| 他クラス|
|public |○| ○| ○| ○| ○|
|protected |○| ○| ○| ○| ×|
|なし| ○| ○ |○ |× |× |
|private |○| ×| ×| ×| ×|
http://www.tohoho-web.com/java/modifier.htm#access
*JDKのバージョンを調べる [#yf691c5b]
 javac -J-version

*JREのバージョンを調べる [#kc640d74]
 java -version

*クラスファイルのバージョンを調べる [#pe999d53]
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で予約語が増えた[#kc640d74]
 新予約語:enum ~
 JDK 1.3や1.4で作成されたアプリケーションをJDK 5.0でリコンパイルする場合は注意!

参考:~
[[Wikipedia:Javaの予約語>http://ja.wikipedia.org/wiki/%E4%BA%88%E7%B4%84%E8%AA%9E_(Java%E8%A8%80%E8%AA%9E)]]~

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


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