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

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

ABC289A~Eの解答[Java]

## はじめに
今回はコンテスト中にDまで、コンテスト後にEまで解けたのでそれを載せようと思います。

では、見ていきましょう。

## A – flip
問題文は[こちら](https://atcoder.jp/contests/abc289/tasks/abc289_a)

先頭から文字を見ていって`1`と`0`を反転させて出力しました。
“`A.java
class Main{

static final boolean autoFlush = false;
static final Library System = new Library(java.lang.System.in,java.lang.System.out,java.lang.System.err,autoFlush);

public static void main(String[] args){

//Sの受け取り
String S = System.in.next();

//反転させて出力
for(char c:S.toCharArray())
System.out.p

元記事を表示

ABC288A~Dの解答[Java]

## はじめに
今回はコンテスト中にCまで、コンテスト後にDを解いたのでそれを載せようと思います。

では、見ていきましょう。

## A – Many A+B Problems
問題文は[こちら](https://atcoder.jp/contests/abc288/tasks/abc288_a)

普通にA+Bを出力するだけですね。
“`A.java
class Main{

static final boolean autoFlush = false;
static final Library System = new Library(java.lang.System.in,java.lang.System.out,java.lang.System.err,autoFlush);

public static void main(String[] args){

//Nの受け取り
int N = System.in.nextInt();

//N回A+Bを出力する
while(N–>0){
System.out.println(System.

元記事を表示

RSA鍵を作る

OpenSSLで作ることが多いRSA鍵をJavaでざっくり作ってみた。Javaでもcrypto系のもので作ることはできるけれど手作り系。
一般的にTLSなどで使われるのは秘密鍵、公開鍵入り証明書の組み。今回は秘密鍵の計算部分。
セキュリティ的なところは保証しない。

# PKCS #1 / RFC 8017

RSAの方式はPKCS #1にいろいろあるのでRFC 8017でも見ることができる。
基本的なフォーマットはASN.1 (ITU-T X.680系)のDER。BASE64っぽいのはPEMという形。
さらにPKCS #8でも秘密鍵をくるむことができるのでどの形式なのか特定するのが厄介。
ASN.1のデータをバイナリにしたり読みやすくするのは*ER という名前が付いている。
バイナリで一般的なのがDERという形式。BER,CERというのもあったが厳格に型を決めていったのがDER。
RSAでは古めのCERもデコードはできた方がいいくらいで使われることがある想定だったかな。
テキストではプレーンっぽいもののほか、XML(XER)やJSON(JER)にもできるらしい。

– PKCS #1

元記事を表示

これから

改めて知識をアウトプットさせていきます。よろしくお願いします。

元記事を表示

新三和大神参观游玩攻略?

  转眼间,双丰面馆、三和市场、海新信都已不复存在。还记得在YouTube上被推荐到三和大神的故事,这内涵这感同身受的触觉,使人深深的被这一个个活泼的形象所打动到。

今天是一次心愿打卡之旅。吃完中饭,走起;我就是要去做这件我不知为何莫名其妙想做的事。世界那么大,而我想去看看三和大神。

**第一打卡点**:是没有目的地。
因为曾经的三和市场,海新信人才市场,变成了高大上的奋斗者广场,而且里面还围着;别提有多神秘了。反正这种坏了社会风气的事一定不要让人看到,嗯,尤其是nhk。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/652938/5a286320-41c3-311d-a51b-ffdf1c1daaff.png)

**第二打卡点**:双丰面馆
传说中的挂逼面也就这个了,由于也是在三和附近,所以也半天找不到地方,最后终于在大众点评上看到个地址:三联路8号。
去了之后,你懂的,又是奋斗者云云,从这个门口进去:
![image.png](https://qiita-image-s

元記事を表示

java forEach 備忘録

## 配列でforEach

Arrays.stream(配列の変数名).forEach
“`java
import java.util.Arrays;
//省略
public void forEachTest() {
String[] sampleArray ={“aaa”, “bbb”, “ccc”};
Arrays.stream(sampleArray).forEach(s -> System.out.println(s));
}
“`

## コンパイルエラー
forEachはvoid メソッドの為、値を戻すことができません
“`java
public Boolean forEachTest() {
String[] sampleArray ={“aaa”, “bbb”, “ccc”};
Arrays.stream(sampleArray).forEach(s -> {
//void メソッドは値を戻すことができません
if(s==”aaa”) {return true;}
});
return false;
}
“`

外側のスコープで

元記事を表示

AWS CDK WorkshopをJavaでやってみた

# 概要

[AWS CDK Workshop](https://cdkworkshop.com/50-java.html)をJavaでやってみた。
その際に感じたことのメモ。

# 前提

OS: macOS Ventura 13.2
プロセッサ: 2.4 GHz 8コアIntel Core i9
cdkのversion: 2.63.2 (build e08e34a)

# [New Project](https://cdkworkshop.com/50-java/20-create-project.html)

## (自分用メモ)cdkコマンドをインストール

`npm install -g aws-cdk`コマンドを実行する。

## [cdk init](https://cdkworkshop.com/50-java/20-create-project.html)

上記ページの通り、ディレクトリを作って cdk init をする。 `Executing ‘mvn package`が長くかかったが焦らず待つ。

## [Project structure](https://c

元記事を表示

JUnit5 テスト方法の種類 メモ

## テスト方法種類
### assertEquals(期待値結果、結果);
期待値結果と結果が同じとき、trueとなる
### assertNotEquals(期待値結果, 結果)
期待値結果と結果が違うとき、trueとなる。
### assertNotNull(A)
Aがnullでないとき、trueになる
### assertNull(A)
Aがnullのとき、trueになる
### assertTrue(A)
Aがtrueであるとき、trueが返される。そのため、Aに入るのはboolean型になる。
### assertFalse(A)
Aがfalseであるとき、trueが返される。
### assertIterableEquals(A, B)
List等であるAやBのすべての要素が順番通りに等しいとき、trueが返される
テスト対象クラス
“`java
public class GetUser{
private UserDAO dao;

public GetUserc() {
super();
dao = new UserDAO();
}
public Lis

元記事を表示

Spring Boot WEBサービスを AKS (Azure Kubernetes Service) 環境で起動する

# Spring Boot WEBサービスを AKS (Azure Kubernetes Service) 環境で起動する

## 目的

[Spring Boot WEBサービス](https://qiita.com/hiroxpepe/items/4a0f5e077155ce41e7ac)を [Azure Kubernetes Service](https://learn.microsoft.com/ja-jp/azure/aks/intro-kubernetes) 環境で起動して理解を深めます。

## 実現すること

Microsoft Azure Kubernetes Service (AKS) に Spring Boot の Docker イメージをデプロイ・起動します。

## 開発環境

+ Windows 11 Home 22H2 を使用しています。
+ [WSL](https://learn.microsoft.com/ja-jp/windows/wsl/about) の Ubuntu を操作していきますので macOS の方も参考にして頂けます。

<

元記事を表示

EclipseでGithubからSpring Bootプロジェクトをクローンする

# はじめに
Eclipseを使用して、GithubからSpringBootプロジェクトをクローンしてくる手順を記事にしたいと思います。
使用しているのは Eclipse-2022-12 記事執筆時点で最新verとなります。

# GitHubからClone
まずEclipseを起動し、右上のパースペクティブを開くからGitを選択します。

Gitリポジトリーのクローンをクリックします。
【Java基礎】if構文-1

[問題]  (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksBasic.html)
整数値を入力させ、値が0ならzeroと表示するプログラムを作成しなさい。

# コード
“`Java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
if(t == 0){
System.out.println(“zero”);
}
}
}
“`

↓「0」と入力

# 結果
“`
zero
“`

★注意!
1文字の時・・・「’ ‘」
2文字以上・・・「” “」

元記事を表示

【Java基礎】四則演算

[問題]  (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksBasic.html)
整数値を2つ入力させ、それらの値の和、差、積、商と余りを求めるプログラムを作成しなさい。
なお、差と商は1つ目の値から2つ目の値を引いた、あるいは割った結果とする。余りは無い場合も0と表示するのでよい。

# コード
“`Java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
int u = sc.nextInt();
System.out.println(t+u);
System.out.println(t-u);
System.out.println(t*u);

元記事を表示

【Java基礎】掛け算

[問題]  (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksBasic.html)
整数値を入力させ、その入力値を3倍した計算結果を表示するプログラムを作成しなさい。

# コード
“`Java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
System.out.println(t*3);
}
}

“`

↓「28」と入力

# 結果
“`
84
“`

元記事を表示

Java Silver 対策サイトを公開しました

# はじめに

この度、[^1][JavaSilver Strategy](https://javasilver-strategy.vercel.app/)という Java 言語の認定資格試験である Java Silver の試験対策サイトを公開しました。
このサイトを公開した経緯としては、「移動時間(隙間時間)に誰でも閲覧できる試験対策のサイトがあればなぁ」と当時考えていたことがきっかけです。移動中に資格対策の分厚い本を開いてもいいのですが、流石に疲れます。それならと思い、Java Silver の対策サイトや記事がないか漁りましたが、ボリュームが少なかったり、そもそもコンパイルの通らないコードが掲載されていたりと自分の欲しい情報があまり多くありませんでした。([Oracle 公式の問題集](https://www.oracle.com/jp/education/certification/ocjp-silver-se8-3494542-ja.html)は当時お世話になりました。)
そこで、今後 Java Silver を受験する方々の一助になればと思い、当サイトを制作する運びとなり

元記事を表示

Thymeleafで動的なonclickを書きたい

Thymeleafで動的なonclickを書こうとして少し苦戦したので記事に残しておきます。
失敗例を挙げながら説明していきます。

# 環境
* Spring Boot 2.7.0
* Thymeleaf 3.0.15

# 目標
HTMLに下記のようなボタンを表示することが目標です。
“hoge”の部分が動的に変わるイメージです。
“` html

“`

# 結論
“`html

“`
最終的に上記のコードで、目標通りのボタン表示ができました。
シンプルで分かりやすいと思います。

# 結論までの過程
失敗から結論に至るまでの過程を記載します。

### 失敗
“`html

元記事を表示

思い込みは排除してソースログを確認しながらデバッグする習慣を身につける  

# 目次
[1.この記事を書いた経緯](#1-この記事を書いた経緯)
[2. 実装で問題が起きた際の対応マニュアル的なの](#2-実装で問題が起きた際の対応マニュアル的なの)
[① 問題が起きた!!](#-問題が起きた)
[② ログを見て、大まかな原因を確認する](#-ログを見て大まかな原因を確認する)
[③デバッグして落ちている箇所を確認する](#デバッグして落ちている箇所を確認する)
[③-1 ②で「ここが原因だ!!と原因が起きている場所の予想が付く」かつ「予想した箇所がソースコードにブレイクポイントが張れる」場合](#-1-でここが原因だと原因が起きている場所の予想が付くかつ予想した箇所がソースコードにブレイクポイントが張れる場合)
[③-2 3③-1以外の場合](#-2-3-1以外の場合)
[④落ちている箇所でどんなエラーが出ているか・想定した値が入っているか確認](#落ちている箇所でどんなエラーが出ているか想定した値が入っているか確認)
[参考サイト](#参考サイト)

# 1. この記事を書いた経緯
私はよく、ソースコードでエラーが出た!!・落ちた!とかの問題が起きた際に

元記事を表示

HikariPoolでタイムアウトが頻発するときの原因と対処法

## 概要

SpringBootを利用してMariaDBに接続するアプリケーションにおいて、HikariPoolが以下のエラーを出してタイムアウトする事象について、原因と対処法についてまとめています。

“`java
java.sql.SQLTransientConnectionException: HikariPool-1 – Connection is not available, request timed out after 30000ms.
“`

## 原因と対処法

– 原因
– 以下の制限を超えるようなリクエストが処理しきれない場合に発生
– SpringBootで標準搭載されているConnection Pool=HikariCPのデフォルトコネクションプールの最大サイズが`10`
– HikariCPのconnectionTimeoutがデフォルトで`30秒`
– つまり、1回のトランザクション処理において時間のかかる処理があり、大量のリクエストが来て空いているコネクションが無く、30秒の待ち時間を経過してしまっ

元記事を表示

②フロントとサーバの通信方法(RPC) テキスト 通信

今回は、前回「①フロントとサーバの通信方法(RPC) テキスト 定義」の続きです。
実際に、サーバとクライアントで通信をしてみましょう。

クライアント側で、ボタンを用意して、ボタンを押す、「greetingService.greetServer」が実行されて
その結果、成功すると「onSuccess()」が呼び出されます。
失敗すると、「onFailure()」です。
今回は、前回「①フロントとサーバの通信方法(RPC) テキスト 定義」の続きです。
実際に、サーバとクライアントで通信をしてみましょう。

■クライアントから通信
“`

String p_send_txt=nameField.getText();
//文字列「p_send_txt」をサーバに送ります。
greetingService.greetServer(p_send_txt, new AsyncCallback() {

//失敗したら、これが呼び出される。
public void onFailure(Throwable caught)

元記事を表示

VisualStudioCodeでSpring Boot開発(設定)

前回はJDKのインストールから開始しました。
https://qiita.com/12krio@github/items/0b39cfb43cc07b40b679


以下を設定してみる
https://code.visualstudio.com/docs/java/java-spring-boot

Javaの拡張パックはインストール済みであるため
SpringBoot拡張パックをインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25604/602a6e19-ea6d-2ece-0ae2-f307e966951f.png)

‘Spring Boot Extension Pack’を拡張機能で検索しインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25604/877564f0-c742-44b9-583a-9f545e0de878.png)

‘vsc

元記事を表示

Spring Boot WEBサービスを ACA (Azure Container Apps) 環境で起動する

# Spring Boot WEBサービスを ACA (Azure Container Apps) 環境で起動する

## 目的
[Spring Boot WEBサービス](https://qiita.com/hiroxpepe/items/4a0f5e077155ce41e7ac)を [Azure Container Apps](https://learn.microsoft.com/ja-jp/azure/container-apps/overview) 環境で起動して理解を深めます。
※ Windows 11 Home 22H2 を使用しています。
※ [WSL](https://learn.microsoft.com/ja-jp/windows/wsl/about) の Ubuntu を操作していきますので macOS の方にも参考になると思います。

## 環境

WSL (Microsoft Store アプリ版)

“`sh
> wsl –version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1

元記事を表示

OTHERカテゴリの最新記事