JAVA関連のことを調べてみた2022年10月06日

JAVA関連のことを調べてみた2022年10月06日

レガシー環境でtry-with-resourcesのC1カバレッジを網羅できない場合の対処法

Java 1.8/JUnit 4等のレガシーな開発環境において、単体テストでC1網羅を求められるケースがありました。
関連するライブラリの過去バージョンでは、カバレッジ検出時にコンパイラがコンパイル後に出力した分岐が未到達とされ、一見しただけでは対処しにくい状況になります。
以下に対処方法をまとめたため、同事例に遭遇した方の一助となれば幸いです。

## 問題
– catchの行で分岐が8あると表示される
※tryブロック内の書きようによっては8以上になる
– なぜか1パターンだけどうしても通らない

## 結論
以下を網羅する。

1. try→finally(tryが正常終了)
1. 取得したリソースが非nullで、リソース破棄が正常終了
2. 取得したリソースがnull
2. try→finally→catch(tryで異常発生)
1. 取得したリソースがnull
2. 取得したリソースが非nullで、リソース破棄が正常終了
3. 取得したリソースが非nullで、リソース破棄が異常終了
3. resources→finally→ca

元記事を表示

テクニカル指標からイベントトリガーを発火する

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

Java Silver SE8 に一か月で合格するためのロードマップ

## はじめに
Javaエンジニアになるべく最初の入りとしてJava Silver SE8の合格を目的に1か月かけて資格を取りました。
Java Silver の試験はSE8と最新のSE11がありますがSE8のほうが範囲が狭く合格率が高いです。
試験時間もSE8は120分(56問)でSE11は180分(80問)とかなりの違いがあります。
今回は一か月以内という期間を設けたこともあり合格率少しでも高めるためにSE8を選択しました。

## 事前知識
プログラミングスクールにて半年間勉強(HTML/CSS, Java Script, PHP(Laravel))
Web制作会社にて業務経験3か月未満(PHP/Wordpress)

## 使った参考書

### [「オラクル認定資格教科書 Javaプログラマ Silver SE 8 」](https://www.amazon.co.jp/%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E6%95%99%E7%A7%91%E6%9B%B8-Java

元記事を表示

コンソールで遊べるオセロを作ってみる【研修レポート】

研修でJavaを勉強しており、学習の成果を1週間という期間を設けた自主制作という形で披露することになったので、その題材としてオセロを作ることにしました。

## 何故オセロ?
本当は自主制作の題材として小さくとも日常に存在する課題をちゃんと解決するモノを作りたかったのですが、スケジュールと現状の技術力を考えると難しいと判断されたため急遽代替案を用意することに。
そこで、スケジュール感を把握しやすい既存のゲームであり、初学者の多くが通る道であるオセロを自分でもやってみることにしました。

既にありふれているモノを自主制作の題材として選ぶことに抵抗はありましたが、研修を受けている身としての自分の現時点での技術力を試すという観点では丁度よい難易度の題材だと考えました。
また、ネット上にコードが溢れているという点もそれを見ずに完成させる事で自身のコードと他人のコードを比較できるという点もメリットの一つだと考えました。

## 早速つくった
https://github.com/reoboz/java_othello

各クラス・メソッドの動きについてはREADMEに記載してあります。
皆さんが

元記事を表示

【Java・Spring Boot】YAML形式のプロパティファイルから値を取得する方法

# 本記事の内容
この記事では、
Spring BootのプロジェクトでYAML(YML)形式のプロパティファイルから値を取得する方法について解説しています。

## 記事を書く経緯
一般的に、ハードコーディングを避けるため、システム内で使用する値をプロパティファイルに記載して外部化する場面があるかと思います。
Java/SpringBootでは、自動生成される`application.propeties`をプロパティファイル(設定ファイル)として使っていましたが、JSON形式のように読めて可読性も高いため、YAML形式のプロパティファイル`application.yml`を採用しました。

デフォルトのプロパティファイルとなる`application.yml`の他に、メッセージを管理するプロパティファイル`message.yml`も必要となり、これを作成したところ、設定値が取得できずに詰まったので今回記事にします。

## 前提条件
下記の前提条件で、Spring Bootのプロジェクトを作成済みとします。
|使用技術 | バージョン |
|:—–|:——–|

元記事を表示

これからエンジニアを目指す人に読んでほしいWeb開発まとめ

# はじめに
この記事は,以下に当てはまる方が読むことを想定しています.
– エンジニアとして働いたことがない方
– IT企業に就職を考えている方
– Web開発の流れを理解したい方
– HTMLやCSS以外のことを知りたい駆け出しエンジニアの方

# 全体の流れ
どの企業もそうだと思いますが,いきなり開発から始まることはめったにありません.
基本的には,以下のような流れでシステム開発が進んでいきます.知らない単語が出てくると思いますが,後で詳しく説明するので,気にせず読み進めて大丈夫です.

1. チケットが切られる
1. MTGに参加する
1. スケジュールを立てる
1. 調査を行う
1. 設計をする
1. 設計書をもとにDEV環境で開発を行う
1. ユニットテストを行う
1. ソースコードをGitHubに上げて,チームの人にレビューしてもらう
1. STG環境デプロイする
1. テストケースを作成する
1. ブラウザテストを行う
1. リリースに向けたドキュメントを作

元記事を表示

【Java SE11 Silver】入社1ヶ月でJava Silver合格した勉強法

## はじめに
こんにちは、名古屋勤務の1年目エンジニアです。

私は、今年6月前職を辞めてプログラミングスクールに通い、先月IT企業に転職しました。

先月から社外のJava研修で学習しながらJava Silverの勉強を進めていました。

そこで今回は、勉強方法やコツを共有したいと思います。

:::note info
ちなみに合格点65点のところ85点で合格しました。
:::

前提として、プログラミングスクールでは10週間ほどRubyについて学びましたが、
Javaの知識はゼロの状態で始まりました。

前職もITとは全く関係なく、正真正銘の初心者です。

## 勉強方法
結論から言いますと、__黒本を3周しました__
[Java Silver 黒本](https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5Java-SE-11-Silver%E5%95%8F%E9%A1%8C%E9%9B%86-1Z0-815/dp/4295007625/ref=pd_bxgy_sccl_2/355-3502044-3384762

元記事を表示

gradleのTIPS

## Gradle buildが実行できないとき

以下コマンドを対象のプロジェクトのディレクトリ内で実行してビルドする。
適当なgradleのバージョンを引っ張って実行してくれる
“`bash
./gradlew build
“`

成功したら、プロジェクトディレクトリ内のlib配下 にjarファイルが作成されるので、
lib配下に移動して実行できる
“`bash
pwd hogeProject
cd lib
ls hoge.jar
java -jar hoge.jar
“`

## build.gradleの記述

以下のように書き換えることでJREのバージョンに対応した形でビルドできる
“`java
sourceCompatibility = ’11’
targetCompatibility = ’11’

sourceCompatibility = ‘8’
targetCompatibility = ‘8’
“`

jarにビルドするときは以下のようにマニフェストの記述が必要
“`java
jar {
manifest {
attribu

元記事を表示

TL;DR 2022年版macOSにJavaをインストールする方法

“`sh
brew install java

sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

echo ‘export PATH=”/opt/homebrew/opt/openjdk/bin:$PATH”‘ >> ~/.zshrc
source ~/.zshrc
“`

元記事を表示

マージしたチャートデータからテクニカル指標を計算する(パラボリック編)

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのオブジェクト指向プログラミングの比較

Python JavaScript PHP Java Ruby

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのオブジェクト指向プログラミングの比較

# Python

https://qiita.com/kaitolucifer/items/926ed9bc08426ad8e835

# Ruby

https://qiita.com/shogo-1988/items/e749208c0733bbe025c0

# PHP

https://qiita.com/mpyw/items/41230bec5c02142ae691

# Java

https://qiita.com/nao0725/items/aba8126c50bf85543c78

# JavaScript

https://qiita.com/shotets/items/e4b2ca36f5cbdc39

元記事を表示

OpenJDKとJDKディストリビューション

https://qiita.com/yoshioterada/items/38cc9e5e0c95f8be84e1

https://qiita.com/yoshioterada/items/2a54dfb60a02a26a2c35

JDKディストリビューション、なぜこんなに種類があるのか。
[OpenJDKと各種JDKディストリビューションの情報源まとめ #minjava](https://qiita.com/yamadamn/items/2dd26a014791b9557199)
以下等がわかりやすかったので自分のためにまとめていたものの蔵出しです…
[JDK、Oracle JDK、OpenJDK、Java SEってなに?](https://qiita.com/nowokay/items/c1de127354cd1b0ddc5e)

## [Java SEとは](https://www.javadrive.jp/start/install/index5.html#section1)
– Java Platform, Standard Edition の略。
– Java

元記事を表示

時刻のみのtime_tを作ってみた

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

【ほぼメモ】Scalaの表現力の高さに恐れおののいたJavaエンジニア

トランプを表現するクラスを書いてみた。
こんな書き方できんのかよ…

“`scala:Hello.scala
package example

import example.Suits._
import example.ValueHolder._

object Hello {
def main(args: Array[String]) = {
println(Ace of Spades) // すごい
println(2 of Diamonds) // とてもすごい
}
}

sealed trait Suits {
def emoji: String
}

object Suits {
object Diamonds extends Suits {
override def emoji: String = “♦”
}
object Clubs extends Suits {
override def emoji: String = “♣”

元記事を表示

Lucene の Tokenizer で 「数字%」や「文字列&文字列」を許容する

備忘録

https://mikolajkania.com/2017/08/27/How-to-change-standard-tokenizer-rules/

を参考にしました。

コードは、

https://github.com/YmBIgo/JFlex_Test/blob/master/lucene_tokenizer.flex.java

https://github.com/YmBIgo/JFlex_Test/blob/master/Sample_Lucene.java

にあります。

## StandardTokenizer

Lucene の `StandartAnalyzer` では、`StandardTokenizer` という 絵文字など1文字なのに3バイト以上で認識されてしまうものを修正するなどの機能があります。つまり、Lucene で全文検索をする際の最初の前処理をしているところと言ってもいいでしょう。

この StandardTokeniser の初期の設定で、Lucene で 「20%」など「数字%」や「A&E」など「文字列&文字列」が弾かれてし

元記事を表示

【Java】覚えた用語一覧集 2 データ型

## データ型 使用頻度の高いもの
|種類|型名 |内容|
|:–|:–|:–|
|整数型 |int|-2147483648 ~ 2147483647 までの整数を取り扱える箱|
|文字列クラス|String| “java”、”勉強”、”Mac” などの複数の文字を扱える箱|

##
|種類|型名|内容|
|:–|:–|:–|
|整数型| byte| -128 ~ 127 までの整数を取り扱える箱|
|整数型| short| -32768 ~ 32767 までの整数を取り扱える箱|
整数型| long| -92223372036854775808 ~ 9223372036854775807 までの整数を取り扱える箱|
|浮動小数点型| float| ± 3.4 × 1039 ~ ± 1.4 × 10 – 45 細かい数字を扱える箱|
|浮動小数点型| double| ± 1.8 × 10308 ~ ± 3.4 × 10 – 324 さらに細かい数字を扱える箱|
|論理型| boolean true| ( 真 ) or false ( 偽 ) 真偽を測る箱|
|文字型| c

元記事を表示

【Java】覚えた用語一覧集 1

## 用語集

|用語|意味|
|:–|:–|
|クラス|データと処理のかたまりのことをクラスと呼ぶ|
|フィールド|クラス内でどのような情報を扱うかのデータのこと|
|メソッド|クラス内に書かれた処理のこと|
|引数|メソットを処理する際に設定できる条件 イメージは材料|
|戻り値|引数を渡して処理を実行した際に戻ってくる結果|
|インスタンス(化)|クラスから作られたオブジェクト、設計図 イメージはレシピ|
|コンストラクタ|インスタンスを呼び出すタイミングで呼び出される特別なメソットのこと|

元記事を表示

Docker-composeでSpringBoot×PostgreSQL環境構築

## 事前知識
https://qiita.com/ryome/items/240f36923f5cb989da27

https://qiita.com/ryome/items/4b6b934b1b2021acfa26

https://qiita.com/ryome/items/6e59dcbe4735d45d58a3

https://qiita.com/ryome/items/3d4de62b560aac31bede

https://qiita.com/ryome/items/56a3263f347a08bd860f

https://qiita.com/ryome/items/35df47a01a7fe3ac70ee

## 環境

| 環境 | バージョン |
| —————— | ———- |
| Docker | 20.10.17 |
| Docker-Compose | 1.29.2 |
| Java | 11 |

元記事を表示

IntelliJで「11は無効なソース・リリースです」

最近、Intellij を使用するようになりました。
しかし、Intellij を使用している際、「11は無効なソース・リリースです」というエラーが発生しました。
Java のバージョンに問題がある事までは、わかったのですが、具体的にどうしたらいいかという事が分かりませんでした。

このエラーの原因を調整していく中で、Intellij の以下部分を修正する必要が分りました。

– Project SDK
`プロジェクトを右クリック→Open Module Settings→Project→Project SDK`
上記の順に進んでいくと、Project SDK があります。
このProject SDK を該当のバージョンに修正する必要があります。

– Language level
`プロジェクトを右クリック→Open Module Settings→Module→Source→Language level`
Language level のバージョンを該当のバージョンに修正する必要があります。

– Module SDK
`Modules→Dependencies→Module S

元記事を表示

日付文字列を指定したフォーマットで整形する

Java 8から導入されたDate and Time APIで実装するとこんな感じです。

“`java:Qiita.java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.ResolverStyle;

public class Qiita {

public static void main(String[] args) {

String srcDateStr = “20221002”;
String srcPattern = “yyyyMMdd”;
String destDateStr = null;
String destPattern = “yyyy-MM-dd”;
try {
LocalDate date = LocalDate.parse(srcDateStr, DateTimeFormatter.ofPattern

元記事を表示

OTHERカテゴリの最新記事