Java

【Java】 instanceof 演算子 / getClass()

はじめに * 変数の型やクラスを調べる術を記録しておく [1] instanceof演算子 x instanceof y => 「xがyと同じクラス」か「yのサブクラスである場合」にtrueを返す。 注意1 : null時の挙動について * nullの場合、たとえ型が一致してしていてもtrueにならな…

【Java】正規表現 ~ 一致・不一致の判定 ~

■ はじめに 今回は、JavaのMatcher.matches() を使って 一致・不一致の判定を行う。 【1】基礎知識 1)構文 if (【文字列】.matches(【正規表現】)) { // 一致 } else { // 不一致 } 【2】サンプル 例1:BRタグかどうかを判定する * 大文字小文字を区別…

【Java】例外処理 ~ Exception ~

【1】Javaの例外について 大きく分けて以下の通り。 ~~~~~~~~~~~~~ 1)Error 2)Exception / 検査例外 3)RuntimeException / 実行時例外 ~~~~~~~~~~~~~ 1)Error * 例外処理では復旧できない種類の例外クラス * OutOfMemory(メモリの不足)など 2)Exc…

【Java】アクセサ ~ getter / setter ~

はじめに * 以前、後輩に「getter / setterって意味あるんですか?」って聞かれて うまく答えられず。たまたま、その関連記事を見つけたので、まとめておく。 アクセサの意義 [1] 不正な値をチェックできる [2] 代入可能で参照不可のプロパティを作れる [3] …

【デザインパターン】【Java】Decorator パターン ~装飾者~

■ Decoratorパターン * 既存クラスのメソッドに対して、継承を使わずに ラッパークラス(機能を一つひとつかぶせていくイメージ)を作ることで 機能追加を行うデザインパターン ■ 使いどころ * 機能を追加(拡張)する場合 ■ 登場人物 Component (部品) * 機…

【デザインパターン】【Java】Template Method パターン

■ はじめに https://dk521123.hatenablog.com/entry/2014/01/29/222538 目次 【1】Template Method パターン 【2】使用実例 【3】デメリット 【4】サンプル 【1】Template Method パターン * 具体的な処理をサブクラスにまかせるデザインパターン ⇒ プ…

【Java】コレクション ~ Queue 編~

Queue `#`キュー備考 1ArrayBlockingQueue固定要領の配列に基づくキュー 2LinkedBlockingQueue 3PriorityBlockingQueue 4SynchronousQueue 5PriorityQueue優先順位で並べ替えるキュー 6DelayQueue時間後経過しなければ要素を取り出すことの出来ないキュー 7C…

【Java】コレクション ~ Set 編~

Set * 重複がないコレクション 利点 / 使いどころ * Listと比較して、パフォーマンスがいい (以下の参考文献のサンプルを実行させれば分かるが速度は明らかに違う) http://d.hatena.ne.jp/greennoah/20090114/1231936654 http://mosamosaatama.blogspot.jp/2…

【Java】 コレクション ~ Map 編~

■ Mapについて * C# の Dictionary と同じ * Javaにも Dictionary はあるが、↓だそうです。 「注:このクラスは現在使われていません。 新しい実装では、このクラスを拡張しないで Map インタフェースを実装してください。」 http://docs.oracle.com/javase/j…

【Java】Final修飾子

[1] クラス * クラスの継承できないようにする サンプル final class SampleClass { } public class SubSampleClass extends SampleClass { // コンパイルエラー } [2] メソッド * クラスのオーバーライドができないようにする サンプル public class Sample…

【Java】 抽象クラス / abstract について

特徴 クラスに適用した場合 * 継承させることが必須となる * そのクラスは、インスタンス化できなくなる メソッドに適用した場合 * そのメソッドは、オーバーライドが必須となる * そのメソッドは、処理内容を記述できない * そのメソッドのクラスにも、abst…

【Java】非推奨のクラス、メソッドを定義する

解決方法 Deprecatedを使う 構文 クラス @Deprecated public class SampleClass{ メソッド /** * @deprecated この関数使わないで下さい {@link #setNumber(int)} */ public void setNum(int num) { 警告を出さないようにするには @SuppressWarnings("deprec…

【Java】 アノテーション ~ Annotation ~

■ はじめに * C# でいう「カスタム属性」は、Javaでは「アノテーション(Annotation)」という ■ サンプル * ただ、作っても面白くないので、C#の時に作成した (下記の関連記事「属性(アトリビュート) ~カスタム属性~」を参照のこと) Enumを利用したメッ…

【Java】国際化対応 ~ ロケール / Locale ~

サンプル SampleClass.java import java.util.Locale; public class SampleClass { public static void main(String[] args) { Locale locale = Locale.ENGLISH; System.out.println("Locale.ENGLISH"); System.out.println("toString : " + locale.toString…

【Java】列挙型 / enum型 ~基本編~

enumについて * C# とは、大分違く、ほとんどクラスのように扱え、プロパティやメソッド(abstractも)の追加可能 (以下の関連記事「■ プロパティやメソッドの追加」「■ 各Enum値での独自処理を記載する」 を参照のこと。) http://blogs.yahoo.co.jp/dk52112…

【Eclipse】【Java】コメントについて

javadoc javadoc用コメントのテンプレート生成 * 対象のメソッド・クラスのまで「/**」を記述し、Enterキー押下 javadocの生成 * [project]-[Generate javadoc...] を選択 javadocの要素 @version バージョン情報 @param 引数名/説明 @return 戻り値/説明 @s…

【Java】コレクション ~ List 編~

List * C# の List と同じ(ただ、C#の List はクラスだが、Java の List はインターフェース) * list.get(0) で取得(C# の list[0] と同じ) * list.size() (C# の list.length と同じ) ■ 空のリストを返す Collections.emptyList(); を使用する 参考文献…

【Java】 Path の扱い あれこれ

■ カレントディレクトリの取得 new File(".").getAbsoluteFile().getParent() or System.getProperty("user.dir") を使う サンプル System.out.println(new File(".").getAbsolutePath()); System.out.println(new File(".").getAbsoluteFile().getParent())…

【Java】ジェネリック(Generics) ~<T>型 / クラスやメソッドを汎用的に使えるようにする~

ジェネリック(Generics)について 利点 * キャストが省略できる * 誤った型を指定した場合、ビルドエラーになる 構文 [1] ジェネリック(何も制限なし) public class SampleA <T> { public void setName(T value) { // 略 } } [2] 境界型 (Bounded Type) // S</t>…

【Java】Java ~ スレッド / Thread ~

スレッドの休止・中断 1)sleep() * 指定した時間だけ現在実行中のスレッドを休止させる 2)yield() * 現在処理中のスレッドを一時休止し、 他のスレッドに実行の機会を与える 3)interrupt() * 休止中のスレッドに割り込みを入れるメソッド 処理を一時停…

【Java】Javaの文字列の扱い ~ String ~

■ 可変引数 サンプル private void Sample(String... values) { ■ String.format * C#と同じだが、プレースホルダの形が違う(C言語のprintfの%sや%dなどと同じ) => C# と同じプレースホルダを使用したい場合は、以下の関連記事を参照のこと。 http://blogs…

【Java】EasyMock ~入門編~

【1】設定手順 1)EasyMock をダウンロードする * 下記URLからEasyMockを取得する。 => ここから、取らずにMainページから取得したものを 使ったのでコンパイルされずにはまった。。。 http://www.easymock.org/Downloads.html 2)ダウンロードしたJarをE…

【Java】独自の例外を作成する (How to create Custom Exceptions)

独自例外 例外に関するメモ 1. RuntimeExceptionを継承すれば、catchしたり、メソッドのthrowsリストに指定する必要はなくなる * ThrowableのサブクラスErrorとRuntimeExceptionは、例外処理は任意であるため * 逆に、それ以外のサブクラスは、コンパイル時…

【Java】パス・ファイルの扱い

■ はじめに Java に関するパス・ファイルの扱いについて書き溜めていく。 目次 【1】ファイル名を取得する 1)正規表現で実装したサンプル 2)別解 【2】拡張子を取得 / 変更する 【1】ファイル名を取得する import java.io._ File in = new File(input…