JAVA関連のことを調べてみた2023年01月04日

JAVA関連のことを調べてみた2023年01月04日

OpenCSVの使用方法について(データクラスに配列やリストがある場合)

# # 初めに
本記事は以前投稿した「OpenCSVの使用方法について」([下記記事](https://qiita.com/T-H9703EnAc/items/0cbb28935ca7a7e30d9c))の内容のデータクラス(この記事ではJavaBeans)を使用した際のCSVの書込み方法の続きのようなものです。以前のものだとデータクラスのフィールドの型が配列やリストの場合に上手く出力されないのでそれに対応した形となっております。

https://qiita.com/T-H9703EnAc/items/0cbb28935ca7a7e30d9c

# # 今回作成したプログラムの前提事項
・データクラスの型はすべてString型であること前提とします。
・配列やリストの最大値の設定をアノテーションを用いて行うが出力はその最大値分必ず出力されます。
・配列やリストのヘッダー名は「共通の名前 + 末尾に番号」がついたものになります。

# 配列やリストの場合にそのサイズの最大値を設定するアノテーションを作成する
見出しの通り、配列やリストの場合にそのサイズの最大値を設定するアノテーションを

元記事を表示

変数の連結 更新 自己代入 

今日もやっていきます。

int型変数では、数値が入った変数であれば、計算が可能です。
数値と変数の計算も、変数同士の計算も可能です。

まずは、変数+数値

“`java:Main.java
int number1 = 20;
System.out.println(number1 + 5);
“`
変数の定義と同時に、20と言う値を代入します。
そして、次に、出力させます。“`System.out.println(number1 + 5);“`
“`number1“`には、“`20“`を代入しているので、結果は
“`text:java.コンソール
25
“`
となるわけです。

次に変数+変数です。
“`java:Main.java
int number1 = 20;
System.out.println(number1 + 5);

int number2 = 10;
System.out.println(number1 + number2);
“`
“`number1“`には“`20“`、“`number2“`には“`10“`が代入されてい

元記事を表示

[Apache Hop] Hop Webのデモサーバを試してみた

# 対象者
– Apache Hop (データオーケストレーションプラットフォーム) を試してみたい方
– ローコードでデータ収集、変換処理を設計、実装を検討しているかた。

# 紹介したいこと
– **公式のHPでHop Webのデモサーバが公開されました。Hop Web (GUI) をすぐに試せる**ようになりました。(2023/01/03時点)
– GUIで、どんなふうに定義するのか、実行するのか、どんな部品があるのか、興味がある人がいらしたら、お試しみてほしいです。
– あくまでも一時的に試す環境で30分ごとにリセットされるような環境です。**これを使ってみて興味もっていただけたら、ダウンロードして試してみてほしいです!**

# Apache Hopとは
– Apache Hop は オープンソースのデータ統合プラットフォームです。 ETL (Extract/Transform/Load) の開発ツール・実行エンジンです。

– 日本Apache Hopユーザーグループのとりまとめの案浦さんの紹介動画

https://www.youtube.com/watch?v=-GJI

元記事を表示

QuarkusでTodoList

# QuarkusでTodoList
## お詫び
PCが古すぎて色々不具合が起きるので・・・一旦これまでにしたいと思います。

## 導入
### 公式
https://ja.quarkus.io/get-started/
https://ja.quarkus.io/guides/hibernate-orm
◾︎Windowsで試した時はquarkus devで失敗した。jbangのPathが通ってなかったのが
原因かと思われる。
◾︎ライブコーディングがうまくいかず、一度ターミナルを閉じてからやり直したことでコーディングを続けていた。
### Docker
Dockerを現在のMacに合わせてインストール
確認した大丈夫そうなので続ける。
Docker デスクトップが立ち上がらない現象が起きたので
Docker reset factory defaults
というDockerの指示にしたがって成功
port重複というメッセージが出たが確認できなかったので
Docker再起動
その後
“`
sudo lsof -i :5432
sudo kill 68
“`
下記は基本的なコマン

元記事を表示

Java:ラッパークラス

## ラッパークラスとは
各基本データ型に対応したクラスの事。
基本データ型であるint型やdouble型の値をオブジェクトとして扱えるようになり、基本データ型にはない色々なメソッドを利用することが出来るようになる。

Javaでは基本データ型が用意されており、数値や文字を格納したり演算子と組み合わせる場合であれば基本データ型を使えば十分だが基本データ型にはクラスのようにメソッドは用意されていないので、基本データ型に対して操作を行ったりすることは出来ない。
そこで基本データ型の値を持つことができ、色々なメソッドを用意したクラスが用意されていルのが**ラッパークラス**と呼ばれるもの。

![スクリーンショット 2023-01-03 16.29.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2785154/b85c4bec-fd0d-529d-8962-5acb6a5447e8.png)
ラッパークラスの名前は基本データ型の1文字目を大文字にするがint型とchar型は名前が変わる。
“`:使い方

元記事を表示

新卒入社から2年半で読んだ本を一覧化してみた

# 概要
新卒で入社してから2年半で読んだ本の中でためになった本を一覧化してみました。
難易度・おすすめ度・分類・感想は随時更新していきます。
タイトル名がAmazonのリンクになっています。

## 設計
| タイトル | 難易度 | おすすめ度 | 分類 |
| :— | :— | :— | :— |
| [リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック](https://amzn.asia/d/53Pm14g) | | | |
| [達人プログラマー(第2版): 熟達に向けたあなたの旅](https://amzn.asia/d/5Uf3ypp) | | | |
| [リファクタリング(第2版): 既存のコードを安全に改善する](https://amzn.asia/d/e00t1s1) | | | |
| [Java言語で学ぶリファクタリング入門](https://amzn.asia/d/51FQ2WL) | | | |
| [ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本](https://

元記事を表示

変数の定義 基本的な使い方

前回までは文字列、数値と言うように値を呼んでいましたが、今日からは、データ型と呼びます。
“`text:データ型
“Hello World”(文字列)→→→→ String型
3(整数)→→→→ int型
“`
簡単に説明するとStringは文字列、int(integer)は整数を意味します。
あと注意するところは、
“`
String型は大文字から始まり、
int型は小文字から始まる。
“`
基本なので間違えないように!
[このようなこと](https://qiita.com/singekino-ojisan/items/12a51976b827e7dedb1c#comment-7c3391dbc179490cbf3d)もあるとご指摘いただいただきました。
ご教授いただきありがとうございます!

次に変数について。
簡単に言うと、
“`
データ(値)を入れておく箱(変数)

箱(変数)には名前(変数名)がついていてその名前を使い、
変数から値を取り出すことができる。
“`
| 箱(変数) |

元記事を表示

メモリ消費量を抑えてxlsxファイルを読み込みたい

Apache POIを利用してxlsxファイルを読み込む方法として、インターネット上ではUser APIがよく紹介されています (`HSSFWorkbook`とかを利用するもの)。これは便利ですが、読み込む対象のxlsxファイルをすべてメモリ上に展開するので、巨大なxlsxファイルを読み込む場合は、大量のメモリを消費する場合があります。

ではメモリ消費量を抑えて、xlsxファイルを読み込みたい場合はどうすればよいかというと、Event APIというAPIを利用します。自分はこのAPIをよく利用するのですが、インターネット上に日本語情報が少なく、実装のたびに困っているので、自分用にまとめておこうと思います。ちなみに以下の記事も参考にしてください。

https://qiita.com/neko_the_shadow/items/4ee737e9fb98dfb275b4

以下はEvent APIを利用し、対象のシートを読み込んで、2次元配列に変換するサンプルです。

“`java
public class SheetToMatrix {

public List

元記事を表示

resilience4jを使ったCircuitBreakerパターン

# What is Circuit Breaker?
あるアプリAが外部サービスであるアプリXと連携している際、アプリXがサービスダウンした場合に他サービスへ影響を出さないよう制御する仕組み。
# 状態遷移
![名称未設定.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159675/3e5a5e01-dd54-f97f-8ea6-1c0e1e39ccea.png)

# 使用するデモ
https://github.com/resilience4j/resilience4j-spring-boot3-demo

# やってみる
health check
(`backendA`のステータスが`”state”: “CLOSED”`になっていることが確認できる。)
“`bash
curl http://localhost:9080/actuator/health | jq
% Total % Received % Xferd Average Speed Time Tim

元記事を表示

初めてのJUnit(基礎的な使い方)

今までCOBOLが業務の主流でしたが、最近Javaも使うようになったので、ここらで一度Java単体テストの手法として、JUnitの初歩的な使用方法を学習しようと思います。

## JUnitとは

JUnitについては、e-Wordsより以下のように記載されています。

>JUnitとは、Java言語で開発されたプログラムの単体テスト(ユニットテスト)を行なうためのソフトウェア。また、そこで用いられるテストコードの記述体系を含むテストフレームワーク。
_[IT用語辞典 e-Wordsより](https://e-words.jp/w/JUnit.html)_

JUnitを使うことで、作成したJavaクラスやメソッドの単体テストコードが記載できるようになります。JUnitには、単体テストをするにあたって活用できるメソッドやアノテーションが提供されています。

この記事では、以下の環境で実施します。

|環境|バージョン|
|:—:|:—:|
|端末|MacBook Air 2022 (M2)|
|OS|macOS Ventura 13.0.1|
|Java|JDK18|
|JUn

元記事を表示

Javaで特定のキーが一致するデータの重複を回避する方法

# # 初めに
以前複数のCSVファイルの特定のキーが一致するデータ同士を計算してDBに登録する機能の実装を行いました。その際にデータの重複や正しく正しく計算が行われないなど大変な思いをしました。今回はその解決方法を2つ紹介します。

|No|見出し|
|—|—|
|1|[1. 概要](#1-概要)|
|2|[2. 実装方法1(For文を2回回す)](#2-実装方法1for文を2回回す)|
|3|[3. 実装方法2(mapを使用する)](#3-実装方法2mapを使用する)|
|4|[4. 最後に](#4-最後に)|

# 1. 概要
本記事では、以下に示すような「__あるクラスの人たちの1学期から3学期までのテストの結果が入力されたCSVデータ__」があります。
このデータのある特定のキー(__ID(出席番号), 名前, 性別__)が一致する場合は点数を合算した結果を表示することを想定します。
“`: あるクラスの人たちの1学期から3学期までのテストの結果が入力されたCSVデータ
ID(出席番号),名前,性別,国語,数学,英語
“001”, “佐藤太郎”, “男”, “60”

元記事を表示

Javaの基本 数値 文字列の連結

皆さんこんにちは。
正月でも日々の学習は忘れてはいけません。めでたい気持ちは忘れずに、
めでたい気持ちで、学習していきます。
では、
javaの基本的、てか、超超超初歩の動かし方から

***こんなことからかよwwwww***

と思いますが、そうなんです。
こんなことからやっていくんです。

正月に、集中してPCに向き合ってる背中に家族(嫁、小2女子1)の視線が突き刺さってるので、
さっさとやっていきますね。

“`java
System.out.println()
“`
()内に、文字を入力すれば、その文字がコンソールに表示される。
“`java:Main.java
System.out.println(“Hello world”);
“`
“`text:java:コンソール
Hello world
“`
と表示される。

“`
System.out.println()
                ↑ ↑ ↑ ↑ ↑
()内の文字列を出力しなさい!
“`
と言う命令をしています。

あと()の後、文末にセミコロン

元記事を表示

Gradle×springbootアプリケーションをdockerイメージ化してコンテナ起動する

# 結論
`./gradlew bootBuildImage`

`docker run -it -p 8888:8888 sample-rest-controller:0.0.1`

# 説明
`./gradlew bootBuildImage –imageName={イメージ名}:{バージョン(X.X.X)}`でイメージ作成可能。とってもかんたん。
(少し時間かかる場合がある)

“`bash
./gradlew bootBuildImage –imageName=sample-rest-controller:0.0.1

(略)

Successfully built image ‘docker.io/library/sample-rest-controller:0.0.1’

BUILD SUCCESSFUL in 3m 33s
5 actionable tasks: 3 executed, 2 up-to-date
“`

`docker image ls`すると、作成されたイメージが確認できる。
“`bash
docker image ls
REPOSITOR

元記事を表示

java学習開始します。

“`
初めまして。おじさんです。軽く自己紹介します。
今まで何も勉強せず、軽ーく生活しどうにかなるだろ精神で生きてきました。
ですが、あることをきっかけに読書にハマり、ITに興味を持ち、プログラミングを学ぼうと決意し、
プログラミングスクールに通うことにしました。学んだ内容は、
“`
**HTML
CSS
Ruby
Ruby on Rails
JavaScript
GitHub**

“`
ちなみに入学初めのPCレベルは、
“`
大学時代のレポートと卒論のみ…

“`
しかも10何年まえのことなんか覚えていません。
と、こんなもんです。
ですが、
“`
半年間くらいつき、汗水は垂らしてませんが半べかきながら
“`
なんとか最終課題を完成させ、
“`
**無事卒業!!!!!**
“`
本当に諦めなくて、よか

元記事を表示

Java実行ファイルを簡単にプロセス永続化

## はじめに
SpringBootでプロセスを永続化する方法は様々あると思いますが、無理矢理にですが簡単に永続化する方法があるのでそれを紹介します。
この方法は開発段階などで素早く永続化したい場合など以外には使用しないほうが良いかと思われます。
また、この方法はLinuxでsystemdを使うことを想定しています。

## 方法
まず、普通にSpringBootプロジェクトをビルドし、Jarファイルにします。
特殊なことは特にせず、javaコマンドで実行できる形になっていればなんでもいいです。

次にシェルスクリプトでJarファイルを実行してしまいます。
SpringBootにはJarファイルの時点で実行コマンドを埋め込むような仕組みがあるのですが、私の環境では機能しなかったのでシェルスクリプトを書いてしまったほうが早かったです。

“`shell
#!/bin/sh

DATE=`date ‘+%Y-%m-%d_%H:%M:%S’`
/opt/jdk-18/bin/java -jar `dirname $0`/run.jar > `dirname $0`/log_${DATE}.

元記事を表示

カスタムクラフターを作成したので中身の解説をする(Spigot)

# 初めに
Spigot で動作するカスタムアイテムクラフターを作成しました。
どのような仕組みになっているのかを公開し、より良いクラフターを作成してくれる方が現れれば良いなと思いこの記事を作成することにしました。

# 動作イメージ

# GitHub
https://github.com/Sakaki-Aruka/custom-crafter

# 解説
## オブジェクト
– MultiKeys:2つの整数値を持つ。
– MaterialKeys:MultiKeysをキーに、ItemStackを値に持つMap
– OriginalRecipe:完成品、サイズ、合計アイテム数、レシピ名、RecipeMaterialを持つ
– (MultiOriginalRecipe):未使用

MultiKeysはレシピにおけるアイテムの位置を示す座標として使用しています。
(横軸x、縦軸y、x軸右向き正、y軸下向き正としたxy平面の座標)
## 作成可能なアイテム
– config.ym

元記事を表示

SearchViewでソフトキーボードを非表示にする

AndroidアプリでActionBarにSearchViewを実装する際のソフトキーボードを非表示にする方法は、以下の通りです。
今回は、Fragmentに

## レイアウトファイル
“`menu/search.xml


【Mac】2行でJDKバージョンを切り替える

# 結論
“`bash
export JAVA_HOME=`/usr/libexec/java_home -v “17”`
PATH=$JAVA_HOME/bin:$PATH
“`

## version確認
“`bash
java –version
openjdk 17.0.4.1 2022-08-12 LTS
OpenJDK Runtime Environment Corretto-17.0.4.9.1 (build 17.0.4.1+9-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.4.9.1 (build 17.0.4.1+9-LTS, mixed mode, sharing)
“`

# 補足
– `/usr/libexec/java_home -V`でマシン内にインストール済みのJDKのJAVA_HOMEを一覧表示できる。
– `/usr/libexec/java_home -v “{バージョン番号}”`で指定したバージョンのJDKのJAVA_HOMEだ

元記事を表示

新卒文系SEクイックソート書いてみた

基本情報技術者の擬似言語の学習のため実際にプログラム化してみました。
基本情報の問題集をもとにフローチャートを作成し、コーディングをおこなっております。
今回は、配列の最初の要素と隣の要素を比較し、大きい方を基準値にしております。

“`java:Qiita.java
import java.util.*;

public class QuickSort_2 {
public static void main(String[] args) {

/*
* テストデータ
*
* [3,5,8,4,0,6,9,1,2,7] ok
* [7,7,7,7,7,6,9,1,2,7] ok
* [0,0,0,0,0,0,0,0,0,0] ok
* [80,70,60,50,40,30,20,10] ok
* [70,60,40,70,30,70,50,70] ok
* [80,60,40,70,30,10,50,20] ok
* [80,60,40,70,30,10,50,20] ok

元記事を表示

初級SEの年間資格取得チャレンジ

もうすぐで2022年が終わりますね…:partly_sunny:
年々、一年過ぎるのが早く感じるアラサーSEです。

実は私、他業種からSEに転職したのですが、
現場で感じたことは
「**分からないことがわからない…**」です。

指示があればコーディングや設計はできるが、
なんとなくこなせているだけではないのか…?

なんて疑問が頭をよぎることが多かったので、
とりあえず、今できるだけ多くの知識と今までの経験の紐づけも兼ねて
年間最多資格取得に挑戦しました!!!

以下私が今年一年とった資格になります。
:apple:**Oracle MASTER Silver SQL**
:apple:**ORACLE MASTER Bronze DBA**
:apple:**AWS Certified Cloud Practitioner**
:apple:**Python 3 エンジニア認定基礎試験**
:apple:**Oracle Certified Java Programmer, Gold SE11**
                        計**5**つ
(思

元記事を表示

OTHERカテゴリの最新記事