記憶庫

自分用のメモです。

Java

「浅い比較」の結果が true であっても「深い比較」の結果が true になるとは限らない罠

こんな場合。 public class EqualsTest { public static void main(String args[]) { EqualsTest a = new EqualsTest(); EqualsTest b = a; EqualsTest c = new EqualsTest(); System.out.println("a == b : " + (a == b)); System.out.println("a == c : …

配列に関する tips

配列の要素数を取得する方法 以下の通り。 AnyClass[] arr = new AnyClass[3]; int _length = arr.length; // _length の値は 3 になる 要素数 0 の配列について 以下の方法で、要素数が 0 の配列を生成できる。 AnyClass[] arr = new AnyClass[0]; 要素数 0…

プログラムの多重起動を防止する方法

既に実行されている Java アプリケーションが多重起動出来ないようにする方法。まず、main() メソッドの冒頭に、以下のように記述する。 IOException の処理も忘れずに。 FileOutputStream fos = new FileOutputStream("./temp/lockfile"); FileChannel fcha…

Javaの定数について

Java で定数を定義する方法は以下の通り。 static final int HOGE = 3; 慣習的に、定数名は全て大文字にする。 static 修飾子は変数がインスタンスの有無に関係なく静的に存在することを示し、final 修飾子は一度設定された値を変更できないことを示す。 ア…

Map クラスがキーを保持する順序について

Map インタフェースの実装クラスである LinkedHashMap、TreeMap、HashMap がキーを保持する順序はそれぞれ以下の通りである。LinkedHashMap: キーを格納した順に保持。 TreeMap: キーの昇順に保持。 HashMap: 順序を保持しない。上記を実際にプログラムを作…

サイズを指定してファイルを作成する

サイズを指定してファイルを作成する方法。 負荷テストなどでサイズの大きなダミーファイルが必要になった時に便利。 以下のコードは、1048576バイトのファイル"hoge"を作成する。 ※ バッファリングと例外処理についてはここでは考慮していない。 import jav…