Java

【Scala】SDKMAN ~ 入門編 ~

■ はじめに 小ネタ。 https://dk521123.hatenablog.com/entry/2023/08/24/002539 でやった「sbt run による引数設定の仕方」を分冊。 目次 【1】SDKMAN 【2】インストール 1)Linux z)トラブルシュート 【3】各種インストール 1)Java 2)sbt 【4】…

【トラブル】【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】 PowerMock ~ 入門編 ~

【1】公式サイト https://github.com/powermock/powermock 【2】初期設定 * Gradleを使う build.gradle dependencies { // PowerMock testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '1.7.3' testCompile group: 'org.po…

【トラブル】【Java】JDBC ドライバ絡みのトラブル

【1】「SEVERE: A web application registered the JDBC driver...」が表示される * Tomcatのログを見たら、Tomcat終了時に以下の「エラー内容」が表示された エラー内容 SEVERE: A web application registered the JDBC driver [com.mysql.jdbc.Driver] bu…

【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】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】Linux で JDK を設定する

■ はじめに https://www.ipa.go.jp/security/ciadr/vul/20170118-jre.html https://www.ipa.go.jp/security/ciadr/vul/20170419-jre.html で、Javaの脆弱性があったので、 インストール / アンインストールをまとめておく 目次 【1】apt による設定 1)イ…

【Java】Java ~ Proxy環境下でJavaを使用する ~

■ はじめに * 色々な方法があるみたいだが、絞る 目次 【1】プロキシサーバ経由で接続 1)プロキシサーバ経由で接続するためのプロパティ 【2】設定方法 その1:起動パラメータからの設定 その2:ソースコードからの設定 その3:環境変数「http_proxy…

【Java】JavaでEmail ~ JavaMail / Return-Path・Errors-To ~

■ はじめに https://dk521123.hatenablog.com/entry/2017/04/28/234103 で扱った Amazon SES において、以下のサイト http://temporal.hatenablog.com/entry/2013/01/20/174500 の対策として、「Return-Pathヘッダ付加」があったので、 JavaMailでどうすれば…

【Java】JavaでEmail ~ JavaMail / TLS ~

■ はじめに https://dk521123.hatenablog.com/entry/2017/04/28/234103 Amazon SES(Simple Email Service)を使用する場合、 Transport Layer Security(TLS)で送信する必要があるとのことなので、 JavaMailで実装する方法を記録する 【1】JavaMailの設定 *…

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

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

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

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

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

■ はじめに 今回は、JavaのreplaceFirst / replaceAllを使って 不要文字除去 / 対象文字のみ抽出を行う。 目次 【1】考え方 【2】サンプル 例1:カタカナ以外除外(カタカナのみ抽出) 例2:語尾の削除 【1】考え方 例:「数字以外除外(数字のみ抽出)…

【Java】 暗号用乱数 ~ SecureRandom ~

■ はじめに SSL通信では、 以下「SSLシーケンス概要」の★部分にあるように乱数を作成してやり取りする。 今回は、Javaでの実装でこの乱数作成について考える # 本当は、以下のトラブルを解決する過程で、SecureRandom クラスを学ばなければならなかったので …

【Java】正規表現 ~ 文字列の抽出 ~

■ はじめに 今回は、JavaのMatcher.group()を使って 文字列の抽出を行う。 【1】基礎知識 * パターンの中で、マッチした部分を取り出したい部分を括弧()で囲う 1)構文 // 1, 2, ... String result1 = matcher.group(1); String result2 = matcher.group(2…

【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でEmail ~ SMTP認証 / DIGEST-MD5 ~

■ はじめに JavaMail を使って SMTP-AUTH の方式「DIGEST-MD5」でメール送信する方法を考える ■ 用語 SASL(サスル) * SASL : Simple Authentication and Security Layer * 認証や暗号化などのセキュリティに関する処理を行う層 CRAM-MD5 * CRAM : Challeng…

【Java】byte配列⇔16進数文字列 の変換

■ はじめに https://dk521123.hatenablog.com/entry/2014/08/02/234119 などで、byte配列を16進数文字列 に変換する必要があり 以前は、以下のように独自にしていたが、簡単に実装できるのでメモ。 以前の実装: byte配列⇒16進数文字列 の変換 byte[] hashVa…

【Java】JavaでEmail ~ SMTP認証 ~

■ はじめに https://dk521123.hatenablog.com/entry/2016/07/16/222422 https://dk521123.hatenablog.com/entry/2016/07/17/023459 の続き。 今度は、SMTP認証に対応する。 【1】ポイント * Sessionを作る際に、違いがある 1)SMTP認証なし Properties pro…

【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のMatcher.find()を使って 数字/文字の出現回数を数えることを行う。 【1】サンプル 例1:パスワードの強度を測る * パスワードの強度を測るのに、数字/文字の出現回数を数えることがある それを正規表現を使って実現する NumericC…

【Java】正規表現 ~ 数字/文字の出現回数を数える ~

■ はじめに 今回は、JavaのMatcher.find()を使って 数字/文字の出現回数を数えることを行う。 【1】サンプル 例1:パスワードの強度を測る * パスワードの強度を測るのに、数字/文字の出現回数を数えることがある それを正規表現を使って実現する NumericC…