javaxとjavaの違い
Java SE標準クラスのパッケージでjavaからはじまるのとjavaxからはじまるのがあるが、何が違うんだろうか?
一応こういう説明がありましたが。
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000864.html
javaxパッケージに含まれるクラスは、Swingやサーブレット、JDBCの一部となっており、いずれもJavaが誕生してから後に追加された機能となっている。
でも、
New IOは後から追加されたのにjava.nioだよな。後から追加「だけ」の違いではないようだが。。。Java EEのクラスとはjavaxではじまってるな。出身がJava EEで、やっぱSEにもってこようぜ、というパッケージがjavax?どうなんだろーか?いや、SwingはEEじゃないな。やっぱ基本は後から追加か。java1.2ぐらいのときに新しく追加されたパッケージがjavaxで、それ以降は、java.nioとかjava.lang.annotationとかお好みで追加されたのだろうか?
とりあえず、java.sqlとjavax.sqlがまぎらわしい。
このへん関係あんのかな。
標準拡張機能、オプションパッケージ
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/extensions/index.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/extensions/spec.html
オプションパッケージは、オープンで標準的な API を実装したものです (Sun が提供するオプションパッケージは、JavaServlet、Java3D、JavaManagement など)。例外もありますが、オプションパッケージの多くは javax.* の名前空間に割り当てられます。
http://www.cs.dm.u-tokai.ac.jp/~kikn/Java/docs/ja/guide/extensions/ext_faq.html#q9
標準拡張機能にはどのような名前が付けられますか。
標準拡張機能には、javax.* の名前空間内の名前が付けられます。ただし、オープンスタンダードの理由から必要な場合など、場合によって例外も認められるようになる予定です。ただし、パッケージ名が javax で始まるという理由だけでは、そのパッケージがコアプラットフォームの一部ではなく拡張機能であるということにはなりません。Swing パッケージには javax で始まる名前が付けられ、それが Version 1.2 プラットフォームより前の、コア拡張機能ではない拡張機能であることを示します。これらの名前は、javax.* の名前空間内にあっても、コア 1.2 プラットフォームの一部です。
(オープンスタンダードの理由から必要な場合→orgからはじまるクラスとか)
なんとなく、「Java1.2(ぐらい)以降の新規機能のパッケージはjavaxだけどそうでないのものある」ということでよさそうか。