Java

【トラブル】【Java】MySQLのJDBCドライバを v5.1.X から v8.0.X に上げた時のトラブル

【1】MySQLのJDBCドライバを上げたらエラー「The server time zone value」になる 現象詳細 MySQLのJDBCドライバを v5.1.46 から v8.0.11 にあげたとこと、 以下の「エラー内容」になる build.gradle 修正前 (現象発生なし) dependencies { // MySQL compil…

【Java】 Java での リソース の扱いについて

■ はじめに Javaアプリを作成する際に、 log4j 2の設定ファイル「log4j2.xml」(以下の関連記事を参照) https://blogs.yahoo.co.jp/dk521123/37495975.html や Velocity 等のテンプレートファイル XXXXX.vm (以下の関連記事を参照) https://blogs.yahoo.c…

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

■ 日付 / 時間 / 日時 Java8版 * java.time.LocalDateTime * java.time.LocalDate * java.time.LocalTime フォーマッタ * java.time.fomat.DateTimeFormatter ■ 日付 / 時間 / 日時あれこれ 加算/減算 * plusXxxx() の戻り値から取得する サンプル DateTimeF…

【Java】環境変数の扱い

■ 環境変数 の取得 From Java1.5 * System.getenv(【環境変数キー】) : 環境変数値を取得 * System.getenv() : 環境変数をMapとしてすべて取得 ■ サンプル import java.util.Map; public class Main { public static void main(String[] args) { System.ou…

【Java】関数型インターフェイス

■ 関数型インタフェース * Java 1.8 から追加 * 抽象メソッドを1つ持っているインターフェイス * defaultやstaticは対象外 ■ FunctionalInterfaceアノテーション / @FunctionalInterface API仕様 https://docs.oracle.com/javase/jp/8/docs/api/java/lang/F…

【Java】 メソッド参照

■ メソッド参照 (method reference) * Java 1.8 から追加された機能 構文 コロン2つ「::」 【クラス名】::【メソッド名】 【インスタンス名】::【メソッド名】 ■ サンプル IHelloWorld.java @FunctionalInterface public interface IHelloWorld { String say…

【Java】byte に関するあれこれ

■ byte ⇔ 文字列 文字列 => byte byte[] bytes = 【文字列】.getBytes(StandardCharsets.UTF_8); byte[] => 文字列 String text = new String(【byte[]】, StandardCharsets.UTF_8); サンプル import java.nio.charset.StandardCharsets; public class Main …

【Java】boolean / Boolean に関するあれこれ

■ Boolean.valueOf() / Boolean.getBoolean() * Boolean.getBoolean()ってあったので、 true / false に変換すると勘違いしてたのでメモ。 Boolean.valueOf(文字列) * 文字列を true / false に変換する Boolean.getBoolean(文字列) https://docs.oracle.com…

【Java】 匿名内部クラス / 無名内部クラス

■ はじめに 以下の関連記事 https://blogs.yahoo.co.jp/dk521123/32156111.html https://blogs.yahoo.co.jp/dk521123/36602948.html にあるように、List や Map を初期化するのに、以下のように行っていた。 ~~~~~~~ List<Person> list = new ArrayList<Person>() { {</person></person>…

【Java】 匿名内部クラス / 無名内部クラス

■ はじめに 以下の関連記事 https://blogs.yahoo.co.jp/dk521123/32156111.html https://blogs.yahoo.co.jp/dk521123/36602948.html にあるように、List や Map を初期化するのに、以下のように行っていた。 ~~~~~~~ List<Person> list = new ArrayList<Person>() { {</person></person>…

【Java】コレクション ~ List編 / 独自のソートをする実装を考える ~

■ カスタムソート 独自のソートをする実装を考える * Comparableを実装する必要がある ■ サンプル Person.java * Comparableを実装 public class Person implements Comparable<Person> { private String companyId; private String employeeId; private String name</person>…

【Java】コレクション ~ List編 / List ⇔ 配列に変換するには ~

■ List <=> 配列に変換するには // List => 配列 List<SampleClass> list1 = new ArrayList<>(); SampleClass[] classes = list1.toArray(new SampleClass[list1.size()]); // 配列 => List SampleClass[] samples = new SampleClass[3]; List<SampleClass> list2 = Arrays.asList(samp</sampleclass></sampleclass>…

【Java】 等値演算子「==」と「equals」メソッドについて考える

■ はじめに * 値が等しいことを比較するのに、 等値演算子「==」と「equals」メソッドがある。 ~~~~~~~~~~~~~~~~ [1] 【値1】 == 【値2】 [2] 【値1】.equals(【値2】) ~~~~~~~~~~~~~~~~ 別に基本だが、 「文字列だった…

【Java】 日付・時間 について ~ System.currentTimeMillis / System.nanoTime ~

■ はじめに * System.currentTimeMillis() と System.nanoTime() があるのは知ってて、 時間単位が、ミリ秒 と ナノ秒 の違いだけかと思ったが、 それだけでなく、出力の計測の仕方が異なっていたので、 今回は、この2メソッドを掘り下げてみる。 ■ System.c…

【Java】正規表現 [5] 不要文字除去 / 対象文字のみ抽出 ~ replaceFirst / replaceAll ~

はじめに * 例えば、「数字以外除外(数字のみ抽出)」など行いたい場合の方法。 => 数字以外を空白文字 "" で置き換えればいい => replaceAll("【正規表現】", "") でいい => 以下の例2のように、場合によっては、replaceFirst("【正規表現】", "") も使え…

【Java】正規表現 [4] 文字列の抽出 ~Matcher.group() ~

■ 基本編 * パターンの中で、マッチした部分を取り出したい部分を括弧()で囲う 構文 # 1, 2, ... String result1 = matcher.group(1); String result2 = matcher.group(2); ... 参考文献 http://www.javadrive.jp/regex/ref/index2.html サンプル ■ 例1 : 正…

【Java】 コレクション ~ Map編 / あれこれ ~

■ Mapの初期化 // Case2 : 匿名内部クラスを利用した方法(★以下「注意:匿名内部クラスを利用した方法について」を参照★) Map<String, String> maps = new HashMap<String, String>() { { put("X001", "first"); put("X002", "second"); put("X003", "third"); } }; http://pgnote.net/?p=3</string,></string,>…

【Java】 画像編集 ~ 画像を縦・横に結合する ~

■ はじめに * Javaの標準APIのみで同じサイズの画像を縦もしくは横に結合する ■ サンプル Main.java import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx…

【Java】 可変の設定を取り込むには ~ コマンドライン引数 / システムプロパティ ~

はじめに 可変の設定値をJavaプログラムに取り込むためには、以下のような方法が考えられる [1] 外部ファイル [2] DB [3] コマンドライン引数 [4] システムプロパティ 今回は「[3] コマンドライン引数」「[4] システムプロパティ」を扱う ■ コマンドライン引…

【Java】 日付・時間 について ~ 基本編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2014/11/18/235600 の続き。 ■ 現在時刻を取得する [1] Date を使用する場合 import java.util.Date; Date date = new Date(); // Tue Nov 18 23:53:23 JST 2014 System.out.println(date.toString()); [2…

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

■ サンプル Main.java public class Main { public static void main(String[] args) { try { String algorithm = "AES"; // 暗号化方式「AES(Advanced Encryption Standard)」 String key = "1234567890123456"; // 暗号化方式「AES」の場合、キーは16文字…

【Java】セキュアなランダム文字列生成を考える

■ はじめに セキュアなランダム文字列生成を考える => 通常、java.util.Randomを利用すると思うが、偏りや再現性があるそうなので セキュアなランダム文字列生成することを考える 目次 【0】実装案 【1】java.util.UUID.randomUUID()を使用する 【2】java…

【Java】列挙型 / enum型 ~応用編 / Enumあれこれ ~

はじめに http://blogs.yahoo.co.jp/dk521123/32503689.html で、Enumのことを記載したが、 今回は、Enumに関連したJavaならではの実装方法を記載する ■ プロパティやメソッドの追加 * クラスのように、プロパティやメソッド(コンストラクタ)を追加できる …

【トラブル】【Java】OpenCV のトラブルシューティング

■ UnsatisfiedLinkErrorが発生する * 以下の「発生環境」において、UnsatisfiedLinkErrorが発生 * 発生箇所は、「System.loadLibrary(Core.NATIVE_LIBRARY_NAME);」実行時である 発生環境 * Java1.8 * Eclipse nano * OpenCV v2.4.14 エラー内容 Exception i…

【Java】 OpenCV ~ 基本編 / 画像編集 ~

■ はじめに * OpenCV の設定をおこなっておく(下記の関連記事を参照) https://dk521123.hatenablog.com/entry/2016/06/27/234046 ■ サンプルで使用する画像 http://www.cs.cmu.edu/~chuck/lennapg/playboy_backups/lena_lg.jpg ■ 画像を90度/180度/270度回…

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

Deque * スタックを実現するには、Stackではなく、両端キューであるDeque(デック) を使う Stack のAPI仕様 https://docs.oracle.com/javase/jp/6/api/java/util/Stack.html より抜粋 より完全で一貫性のある一連の LIFO スタックオペレーションが、 Deque …

【Java】 Java で、 音声ファイルを扱うには... ~ Clipクラス ~

サンプル import java.io.File; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; public class Main { public static void main(String[] args) { load("etc/carenginestart2.wav"…

【Java】 OpenCV ~ 基本編 / 顔検出 ~

■ はじめに https://dk521123.hatenablog.com/entry/2016/06/27/234046 の続き。設定は、上記の関連記事を参照のこと。 ■ サンプル 使用する画像 http://www.cs.cmu.edu/~chuck/lennapg/playboy_backups/lena_lg.jpg 顔検出 OpenCV v3.1系 import org.opencv…

【Java】列挙型 / enum型 ~応用編 / Enumのソート ~

サンプル * Enumを逆順でソートさせる(もっとスマートにやりたいが) SignalType * Enum import java.util.Collections; import java.util.Comparator; import java.util.List; public enum SignalType { None(-2), Red(-1), Yellow(0), Green(1); public sta…

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