Java

【Java】 列挙型 / enum型 ~ 応用編 / EnumSet・EnumMap ~

■ EnumSet * ビット和なフラグを使いたい時に使用 サンプル CountryType.java import java.util.EnumSet; public enum CountryType { None, JAPAN, CHINA, INDIA, USA, MEXICO, UK, ITALY, FRENCH, BRAZIL; private static EnumSet<CountryType> asias; static { asias = </countrytype>…

【Java】URLからファイルをダウンロードするには...

サンプル Main.java Yahooのロゴを落としてくる import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnecti…

【Java】Java で暗号化/複合化する ~Java1.8 標準を使用した場合~

■ はじめに https://blogs.yahoo.co.jp/dk521123/32780473.html で、暗号化/複合化を実装したが、 Java1.8 標準で、Base64のエンコード・デコードが導入されているそうなので使ってみる ■ javax.crypto.Cipher.getInstance() について https://docs.google.c…

【Java】 日付・時間 について ~ 入門編 ~

■ はじめに Java の 日付・日時 について、まとめる 【1】日付に関するクラス 1)Javaプログラム [1-1] java.util.Date => 日付(YYYY/MM/DD)を扱う際に使用 https://docs.oracle.com/javase/jp/7/api/java/util/Date.html [1-2] java.util.Calendar => 日…

【Java】 配列 に関するあれこれ

配列いろいろ ■ 配列の内容を出力するには * Arrays.deepToString() を使う Object[] values = ...; Arrays.deepToString(values); ■ 配列かどうか判定するには * getClass().isArray() で判定する Object value = ...; if (value.getClass().isArray()) { S…

【Java】 数値 に関するあれこれ

データ型 プリミティブ byte、short、int、long、float、double 注意 * 数値リテラルの整数の値はint型の値として扱われるので、 long型の数値として扱うには、以下のようにする long = 30L; * 数値リテラルの浮動小数点数の値はdouble型の値として扱われる…

【Ant】 Javaコンパイル

■ Javaコンパイル http://blogs.yahoo.co.jp/dk521123/33973954.html でやってるが復習として。 サンプル <project basedir="." default="compile" name="SampleJavaCodes"> <property name="class.path" value="./class" /> <property name="java.path" value="./src" /> </property></property></project>

【Java】 MessageFormat ( vs String.format() )

■ はじめに http://blogs.yahoo.co.jp/dk521123/13687446.html にある String.format() は、物凄く活用できるメソッドであるが 以下のような問題点があり、その代わりになるのが MessageFormat である String.format() の問題点 * 「%」単体で使えない → 「%…

【Java】OS (Windows - Linux)依存しないようにするには...

■ ディレクトリ・ファイル名のパス区切り Case1 File.separator Case2 System.getProperty("file.separator") ■ 改行コード Case1 File.separator Case2 System.getProperty("line.separator") ■ パスの区切り Case1 File.pathSeparator Case2 System.getPro…

【Java】ハッシュで暗号化する

■ はじめに Java の ハッシュについて、メモ。 目次 【1】ハッシュ 【2】MessageDigest・API仕様 【3】サンプル 【1】ハッシュ * 以下の関連記事を参照のこと ハッシュ / Hash https://dk521123.hatenablog.com/entry/2022/09/14/000000 【2】MessageDi…

【Java】インターフェース・interface

■ 初めに * C# のインターフェース(以下の関連記事)とは、異なるので、メモっとく。 http://blogs.yahoo.co.jp/dk521123/30209838.html ■ インターフェースで定義できるもの * メソッド(定義のみ) * 定数 // ★ C#との違い ★ * デフォルト実装 (from Java8…

【Java】【XML】xPath ~XMLの参照・書き換え~

■ 用語 XPath (XML Path Language) * XML から、条件に適合した部分の要素を取り出すための仕様 => 詳細は、以下の関連記事を参照のこと https://dk521123.hatenablog.com/entry/2015/06/06/100247 ロケーションパス * ルートノードを起点としてノード指定方…

【Java】 File の Close処理について ~try-with-resources~

■ try-with-resources * C#の using のように、close()をしなくても自動的にclose処理をしてくれる * Java 1.7から使用可能 ■ closeが一つの場合 構文 try (XxxxxStream stream = new XxxxxStream()) { // something } catch (Exception ex) { } サンプル 一…

【Java】【XML】 xPath ~XMLの書き換え~

■ はじめに https://dk521123.hatenablog.com/entry/2014/07/03/000100 のつづき。 参照ができたので、今度は値を書き換えてみる。 ■ サンプル SampleXml.java import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder;…

【Java】 instanceof 演算子 / getClass()

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

【Java】正規表現 [1] 一致・不一致の判定 ~Matcher.matches() ~

■ 基本編 構文 if (【文字列】.matches(【正規表現】)) { // 一致 } else { // 不一致 } サンプル ■ 例1 : BRタグかどうかを判定する * 大文字小文字を区別せずに、<br>でも<br />でも対応できるようにする Checker.java import java.util.regex.Matcher; import java…

【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…