java

実行時間を計測したい

実行時間を計測したいんだけど〜。それ、クラスSystemのcurrentTimeMillisで、できるよ。 currentTimeMillispublic static long currentTimeMillis() ミリ秒で表される現在の時間を返します。戻り値の時間単位はミリ秒ですが、値の粒度は基本となるオペレー…

抽象クラスabstractについて

抽象クラスabstractって? メソッドの実体を具体的には定義せずに、宣言のみをするときに使います。 言葉の説明は難しい Main.java 1 public class Main { 2 public static void main(String[] args) { 3 Zukei z = new En(); 4 z.print(); 5 } 6 } Zukei.ja…

MacOSXでJava SE 6 バージョン 1.6.0_05を使えるようにする

MacOSXではJ2SE 5.0が使うことができる。 しかし、Java SE 6を使いたい状況になったので環境を整えた。 以下、作業メモ。 Java for Mac OS X 10.5 アップデート 1をインストール http://www.apple.com/jp/ftp-info/reference/javaformacosx105update1.html J…

InputStreamReaderの文字エンコーディングを途中で変えたい

http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/io/InputStreamReader.html InputStreamReaderpublic InputStreamReader(InputStream in, String charsetName) throws UnsupportedEncodingException 指定された文字エンコーディングを使う In…

エラー処理について、ちょっと学んだ。

1 public class Main { 2 public static void main(String[] args) { 3 try { 4 Proc p = new Proc(); 5 p.abc(); 6 } catch (Hello e) { 7 System.out.println(e.getMessage()); 8 e.one(); 9 } finally { 10 System.out.println("bye......"); 11 } 12 } 1…

URLエンコード

例えば、"ウィキ ペ ディア2.png"という文字列をISO-2022-JPで表記したときのバイナリ文字列は以下の通り。 ※カタカナは全角文字。'ペ'の前には半角スペース。'ペ'の後には全角スペース。数字・アルファベットは半角文字。 0000000: 1b 24 42 25 26 25 23 25…

java.nio.Buffer系の使い方を理解したい

java.nio.Buffer系がよく分からなかった。でも、色々調べたりしたら分かってきた。 今後のためのメモ。 バッファ使ううえで理解必要な概念。 容量 リミット ポジション(位置) リマイニング Java API ダイジェスト ByteBufferクラスの図を参考に理解した。 容…

toCharArray

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle toCharArray public char[] toCharArray() この文字列を新しい文字配列に変換します。 戻り値: 新しく割り当てられた文字配列。 長さはこの文字列の長さと同じで、内容…

substringでハマった

"ABCDE".substring(0,2); のreturnは ABです。 ABCではありません。このことを勘違いしていたため、ちょっとハマりました。ドキュメンをしっかり読みましょう。 Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle Oracle…

javaでbase64エンコード、デコードしようと思っている人へ

ネットで検索したところ、javaでbase64エンコード、デコードしようと思ったとき、以下のようなパッケージがあるようです。 1 import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; 2 import sun.misc.BASE64Decoder; 3 import sun.misc.BASE64En…

システムプロパティ

システムプロバティの列挙 方法1 1 import java.util.Properties; 2 3 public class Test { 4 public static void main(String[] args) { 5 Properties props = System.getProperties(); 6 7 props.list(System.out); 8 } 9 } 方法2 1 import java.util.Pr…

ファイル入出力のメモ

生のバイトストリームの読み書き FileInputStream FileOutputStream FileInputStream in = new FileInputStream("in.dat"); FileOutPutStream out = new FileOutputStream("out.dat"); バッファリング BufferedInputStream BufferedOutputStream BufferedInp…

@Override アナテイション

annotation 意味は『注釈』『注解』 Javaにはアナテイションが用意されています。 アナテイションだか、アノテーションだかよく分かりませんが、用意されています。例えば、@override というannotationはメソッドをオーバライドする際に使います。 『上位ク…

instanceof 演算子

x instanceof Y // true か false trueを返す条件 参照型変数xがクラスYのインスタンスを参照している 参照型変数xがクラスYのサブクラスのインスタンスを参照している 参照型変数xがインタフェースYを実装しているクラスのインスタンスを参照している スー…

ポリモフィズム polymorphism 多相性 多態性

派生関係にあるクラス型のインスタンスを参照できることを言います。 例えば、以下のようなソースコードがあって、 1 public class Hoge { 2 Hoge() { } 3 public void print() { 4 System.out.println("Hoge World"); 5 } 6 } 1 public class SubHoge exten…

オーバライド オーバーライド override

スーパクラスのメソッドと同名のメソッドをサブクラスで定義すること。 このような場合、メソッドをオーバライドすると表現する。 メソッドのアクセス性 メソッドをオーバライドするにはきまりがあります。 『メソッドをオーバライドするときは、スーパーク…

クラスの派生と継承

既存クラスのフィールドやメソッドといったメンバを有効的に利用するために、クラスの派生を行ってメンバを継承することができます。 宣言 クラスAから派生したクラスBを作成する場合は以下のように宣言します。 class B extends A { ... ... ... } クラスA…

ユーティリティクラス(utility class)

クラス変数とクラスメソッドのみのクラスのこと。

toStringメソッドをオーバライドするときはpublic宣言する

toStringメソッドをオーバライドするときはpublic宣言をしなければなりません。 以下の理由のためです。 toStringはjava.lang.Objectでpublic String toString()として定義されているメソッドである。 クラスを作成する場合、それはjava.lang.Objectのサブク…

クラス型変数の比較

まず、ソース 1 public class Test { 2 final int i; 3 4 Test(int i) { 5 this.i = i; 6 } 7 8 public int getI() { 9 return i; 10 } 11 } と、 1 public class TestTest { 2 public static void main(String[] args) { 3 Test test1 = new Test(100); 4 T…

配列

配列の宣言 int[] a; a = new int[5] これにて、 a[0] a[1] a[2] a[3] a[4] の配列要素が利用可能になる。簡潔に書きたい場合は以下のように書く。 int[] a = new int[5]; 初期値 初期値を調べるプログラムを書いてみた。 1 public class Test { 2 public st…

拡張表記

改行文字を表す\n以外はあまり知らないので、ちょっと使ってみた。 表記 意味 説明 \b 後退(backspace) 表示一を直前の位置へ移動する \f 書式送り(formfeed) 改ページして、次のページの先頭へ移動する。 \n 改行(new line) 改行して、次の行の先頭へ移動す…

繰り返しの制御には浮動小数点数を使わない

例えば、以下のような計算をお願いしたいとします。 0.0 + 0.1 + 0.2 + 0.3 + 0.4 + 0.5 + 0.6 + 0.7 + 0.8 + 0.9 + 1.0 = 5.5これを実現するために以下のようなプログラムを書いて実行します。 1 public class Test { 2 public static void main(String[] a…

修飾子strictfp

浮動小数点数の取り扱いは実行環境によって、異なります。 それは、困ります。それを解決するのが、修飾子strictfpです。 例えば、以下のようにクラスの宣言に修飾子strictfpを指定します。 public strictfp class Hoge { ........ ........ } そうすると、…

キャスト

(型)x //xを型に変換した値を返す (int)2.5 // 2 (double)2 // 2.0

実数の計算

1 public class JissuKeisan { 2 public static void main(String[] args) { 3 System.out.println("7 / 2 =" + 7 / 2); 4 System.out.println("7.0 / 2 =" + 7.0 / 2); 5 System.out.println("7 / 2.0 =" + 7 / 2.0); 6 System.out.println("7.0 / 2.0 =" +…

参照型

基本型 (primitive tyep) - rderaログに対して、参照型もあります。 参照型 | |--配列型 |--クラス型 |--インタフェース型 |--空型

文字列の連結を効率的にしたい

javaでは文字列の連結をする場合、 String str = "a"; str += "b"; str += "c"; というように、+演算子を使い実装することができます。 ただ、この方法は効率が悪いようです。 上のコードは以下の同様なコードとしてコンパイルされるようです。確か。 String…

HashMap

key=value形式で文字列を格納する方法はHashTableを使う方法があり、key=value形式で文字列を格納したいhashtable - rderaログに書いた。他にも、HashMapというのがあるみたいです。 HashTableとHashMapの違い HashTable 互換性のために残されていて古い マ…

key=value形式で文字列を格納したいhashtable

例えば、 one -> two three -> fourみたいに、"one"がkeyとなり、"two"というvalueにアクセスしたいと思いました。 hastableがあります。 public class HashTest { public static void main(String[] args) { Hashtable<String, String> hash = new Hashtable<String,String>(); hash.put("o</string,string></string,>…