javaとjavacに関するtktkmaのブックマーク (3)

  • http://homepage1.nifty.com/algafield/pkg-cp.html

    update 071006 「パッケージディレクトリ内でのプログラムの起動」を追加 パッケージに属するクラスとクラスパス パッケージに属さない、というかpackage宣言のないクラスのクラスパスは、そのクラス(クラスファイル)があるディレクトリです。しかし、パッケージに属するクラスのクラスパスは、そのクラスのクラスファイルがあるディレクトリの「ルートディレクトリ」です。このことは、Javaの基ドキュメントの随所にちゃんと書かれているのですが、私のような鈍い人間は、実際に痛い思いをしないと身にしみません。 以下に、その痛い思いの経緯を、簡略化した例で説明してみましょう。 【前提】私同様、多くのかたのCLASSPATHには、カレントディレクトリがドット'.'で指定されていると思います。その前提で話を進めます。 その指定のないかたは、javacやjavaを動かす無オプションのコマンド

    tktkma
    tktkma 2013/07/12
    「hiwaの恥かきページ」さんの「パッケージに属するクラスとクラスパス」についての説明
  • 定数フィールドへの参照はコンパイル時にバイナリに展開される - As I like it.

    最近知ったこと。 いや、『Java魂』(O'REILLY)を読んだから知ってるはずだけど忘れていた事実。 public static final String HOGE = "hoge";のような定数への参照は、コンパイル時にバイナリファイルにインライン展開される。 (HOGE を参照している箇所は、"hoge" という値が直接バイナリファイルの該当箇所に書き込まれる。) この仕様は、バイナリ互換性を保つための要件として Java の言語仕様で記述されている。 『The Java Language Specification, Third Edition』 http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html 「13.1 The Form of a Binary」 より References to fields t

    定数フィールドへの参照はコンパイル時にバイナリに展開される - As I like it.
  • javac - Java プログラミング言語コンパイラ

  • 1