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

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

Python,Ruby,PHP,Java,JavaScript,PerlのMySQLの比較

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

Python,Ruby,PHP,Java,JavaScript,PerlのMySQLの比較

# Python

https://qiita.com/ab-boy_ringo/items/f05bb6329f51e1632965

# Ruby

https://qiita.com/hukuro310/items/ec91beaecd11157e0640

# PHP

https://qiita.com/ab-boy_ringo/items/8274c66b6692966fdc55

# Java

https://qiita.com/namari/items/50d9aac0faf6b7e7b314

# JavaScript

https://qiita.com/PianoScoreJP/items/7ed172cd0e7846641e13

# Perl

https://perlzemi.co

元記事を表示

Spring_web開発でよく使うメソッド

addAttribute(thymeleafで参照するkey, thymeleafに渡したいオブジェクト)
:thymeleafにオブジェクトを渡すことができる。

元記事を表示

【logic,util】ファイルロックに関する見直し

# はじめに

過去記事は「[auカブコム証券のkabuステーションREST APIに関する記事一覧](https://qiita.com/hiuchida/items/611ba237dc1d1f6e3dca)」。

当初、Jenkinsからプロセス起動されるので、REST APIへログインした際に発行されるトークンをファイルで管理するため、ファイルロックを使って、排他制御をしていた。
毎回プロセス起動すれば、メモリ解放も、ネットワーク解放も、ファイルロックの解放も、何もしなくても、自動で後片付けしてくれます。

最近、毎回プロセス起動をするのも、JavaVMの初期化のオーバーヘッド、短時間の実行にJITが効くのかどうか、ということから、軽いServlet APIレベル(Spring未使用)でHTTP Get/Postで処理実行をトリガーするWebアプリに移植したところ、特にファイルロック周りに手抜きがあったので、一つづつJUnitテストを作りながら改善していく。

# 全体のクラス構成

main()から近い部分から、最も深い部分まで、深い方からクラスを並べると以下の順となる(古い

元記事を表示

androidってkotlinのactivityからjavaのactivityって遷移できるんだ….

# 要約
気になって試したらタイトルのことができた。
# 本題

Android Studioでは、まず最初にアクティビティを作る際にkotlinかjavaかを選択すると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321651/2a05f77e-9ecf-bb4d-c438-e5e3d09dd25e.png)
*本名使っちゃっているので適当にPathは書き換えてます。

自分はここで選択しているため、Android開発ではできないのかと思っていましたが適当にButtonでkotlinとjavaのActivity間を遷移するアプリを作ってみたらできました(コード等は参考にしたQiita記事のコピペです。)
参考したQiita記事
https://qiita.com/sato-na/items/aebbe482bf40db1fd3b0

まぁkotlin自体はjava互換性があるから動くのは知っていたが、検索してもjavaのactivityが動くのはわからなかったのでメモ程度に

元記事を表示

gRPCを使ってあそんでみる サービス起動編

# gRPCを使ってあそんでみるの目的
ログデータを永続化するgRPCサービスを立ち上げログを記録する。

## 今回のお題
ログを記録するgRPCサービスを構築し起動する。

## ■事前環境
・Windows10 バージョン21H2
・IntelliJ IDEA 2022.1.4(Community Edition)
・OpenJDK Runtime Environment Zulu17.36+17-CA (build 17.0.4.1+1-LTS)
・Gradle

## 1.新規プロジェクトを作成

## 2.gRPC用ライブラリをプロジェクトに追加
追加ライブラリーフォルダー “libs” をプロジェクト直下に作成。
[環境構築編](https://qiita.com/shigemax999/items/cc4a9f2c64e989ea428e “環境構築編”)で作成したJARファイルをlibsフォルダにコピー。
build.gradleを編集しlibs配下の.jarファイルをプロジェクトに追加するように変更。
~~~ build.gradleの必要箇所を抜粋
depende

元記事を表示

BPMと音符の間隔からn打/秒のnを求めるプログラム

初投稿です。
投稿のテストとして簡単なプログラムを作ってみました。
プログラムの内容としては太鼓の達人というゲームである音符の間隔(16分や8分など)が出てきた際に秒速にいくら叩く必要があるかというものです。
例えば、BPM200の曲(Rotter Tarminationやそつおめしき)で24分が出てきた際には秒速20打必要であるとされています。
ちなみにこれはBPM300の曲の16分と秒速の値が同じであり、以下のような式が成り立つと考えました。

:::note info
叩く回数/秒 = BPMの速さ*(音符の間隔/16)/15
:::
小数点1桁を四捨五入し整数で表現した値とdouble型でそのまま表現した値2つを出すようにしてみました。
0

元記事を表示

paizaラ-ニング Bランクレベルアップメニュー五目並べ 解答

# STEP: 51 文字列の出力

## 問題

https://paiza.jp/works/mondai/prob60/tic_tac_toe_0

## 解答

“`java:step51.java

import java.util.*;

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

Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
String line = sc.nextLine();
System.out.println(line);
}
}
}

“`

## 結果

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/fca619e3-a6c4-ac1c-cf49-90320fc946a2.

元記事を表示

Python,Ruby,PHP,Java,JavaScript,PerlのSQLiteの比較

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

Python,Ruby,PHP,Java,JavaScript,PerlのSQLiteの比較

# Python

https://qiita.com/flcn-x/items/69481d31211421e21f21

# Ruby

https://qiita.com/akito_tameto/items/868e3805dc01c7bef6ef

# PHP

https://qiita.com/39_isao/items/a5b4940138bced936de0

# Java

https://qiita.com/tsweblabo/items/39bdd73a910417a9a8df

# JavaScript

https://qiita.com/zaburo/items/a155cbc02832b501a8dd

# Perl

https://perlzemi.com/blog/20

元記事を表示

Javaのラムダ式の覚書

Java(jdk1.8以降)のラムダ式について、簡単にまとめたものです。

# 1. ラムダ式の例
以下のインターフェースがあるとします。

“`java:Calculation.java
package test;

@FunctionalInterface
public interface Calculation {
public int add(int x, int y);
}
“`

### 1.1. ラムダ式を使用しない場合(匿名クラス)
ラムダ式を使用しない場合、上記のインターフェースを使用するには、以下のように匿名クラスでaddメソッドをオーバーライドして呼び出します。

“`java:NotLambdaMain.java
package test;

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

// 匿名クラスでメソッドをオーバーライド
Calculation obj = new Calculation() {

元記事を表示

【備忘録】現場でWebhookを送信することがありました。〜HTTPリクエストにJSONを乗せてPOSTする方法〜

# 挨拶
初めての投稿になります。

初回は現場でJavaをつかってWebhookを叩くことがありましたので、備忘録として残します。

題名にある通りHTTPリクエストにJSONを乗せてPOSTする方法を共有します。

初心者の私には一見難しそうに思いましたが、書いてみると単純にHEADERとBODYに要素をつめてWebhookをHTTPリクエストのPOSTで流してあげるだけになります。
(こんな認識ですが。。。間違ってたらご指摘ください:bow_tone3:)

私と同じく開発ビギナーの方のご参考になれば幸いです!

# 前提・準備
・JavaでHTTPリクエストを用いて**JSON**をPOSTで送信します。
・実行したいWebhookのURLを準備します。
・BODYに詰めるJSONコードを用意します。(jsonファイルは作成せずにString型で作成して直接渡します)
・事前に同じファイルにHTTPクライアントを生成するメソッドを作成しています。

まずは実行したいWebhookのurlとJsonコードを用意します。(後述のコードに引数として使います)
“`java
St

元記事を表示

paizaラーニング Bランクレベルアップメニュー アルファベット探し 解答

# STEP: 47 文字列の出力

## 問題

https://paiza.jp/works/mondai/prob60/alphabets_large_or_small_0

## 解答

“`java:step47.java

import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
String line = sc.nextLine();
System.out.println(line);
}
sc.close();
}
}

“`

## 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/686308

元記事を表示

paizaラーニング Bランクレベルアップメニュー 文字と整数の組のソート2 解答

# STEP: 40 インクリメント

## 問題
https://paiza.jp/works/mondai/prob60/sort_add_0

## 解答
“`java:step40.java
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int answer = addUp(n, 1);
System.out.println(answer);
sc.close();
}

/**
* n+mの足し算関数
* 流用性を持たせる為にmを引数としました
*
* @param n 標準入力の足し算したい数字
* @param m nに足し算したい数字
*
* @ret

元記事を表示

ApachePOIでJavaからExcelを読み込む(Eclipse)

# はじめに
Javaでエクセルファイルの読込をする方法を説明します。
かなりつまづきましたが、なんとかうまくいったのでこの方法を忘れないようにメモ代わりとして。
ただし、この方法はいろいろ試していたらなんか上手くいった程度のものなので間違っているかもしれないことをご了承ください。
# 1.ApachePOIのダウンロード
[公式サイト](https://poi.apache.org/download.html)からApachePOIをダウンロードします。
![apachepoiサイト画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2586452/f8d07ce0-2dda-a2f0-7c43-663b04463ef4.png)

ダウンロードしたZipファイルを解凍して適当なフォルダに入れます。
# 2.Eclipseのビルド・パスの設定
・何かしらのプロジェクトを選択した状態で右クリック
>プロパティ>Javaのビルドパス
![2.png](https://qiita-image-store.s

元記事を表示

gRPCを使ってあそんでみる 環境構築編

# gRPCを使ってあそんでみるの目的
ログデータを永続化するgRPCサービスを立ち上げログを記録する。

## 今回のお題
IDL(Interface Description Language)からRPC用のJavaソースを生成する環境を構築する。

最後にJarファイルを作成する。

## ■事前環境
・Windows10 バージョン21H2
・IntelliJ IDEA 2022.1.4(Community Edition)
・OpenJDK Runtime Environment Zulu17.36+17-CA (build 17.0.4.1+1-LTS)
・Gradle

## 1.新規プロジェクトを作成

## 2.IDLコンパイル用Gradleタスクの追加
### 2.1.com.google.protobufプラグインを追加
“`build.gradleの必要箇所を抜粋
plugins {
id ‘java’
id “com.google.protobuf” version “0.9.1”
}
“`

### 2.2.Gradleタスクに追加されてい

元記事を表示

【v44】auカブコム証券のkabuステーションPUSH APIを受信してCSVファイルへ保存する(先頭カラムにタイムスタンプを追加)

# はじめに

過去記事は「[auカブコム証券のkabuステーションREST APIに関する記事一覧](https://qiita.com/hiuchida/items/611ba237dc1d1f6e3dca)」。

PUSH APIを受信して保存したCSVファイルは、売買高やOPのGreeksを対応してから変更されていないが、第1カラムが日付をまたがったときに、前日となる場合がある。

“`
2022-08-09 23:59:58,27860.0,181351.0
2022-08-09 00:00:00,27855.0,181357.0
2022-08-10 00:00:03,27855.0,181510.0
“`

そこで、後から補正を加えたが、生データをソートすることもできないので、保存するときのクライアント側のタイムスタンプを追加する。

# 実装

カラム数が変わってしまうが、とりあえず第1カラムに追加する。

“`java
// 日付をまたぐ時間帯で日付が前日となる問題があるため、クライアントのタイムスタンプを先頭カラムに追加する。
String now =

元記事を表示

Python,Ruby,PHP,Java,JavaScript,PerlのC言語拡張の比較

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

Python,Ruby,PHP,Java,JavaScript,PerlのC言語拡張の比較

# Python

https://qiita.com/pocokhc/items/836a3596df5facd00824https://qiita.com/nabion/items/594fb3316583130a636e

# Ruby

https://qiita.com/suketa/items/ab6b88093de4a54b3b06

# PHP

https://qiita.com/takeyoshi-k/items/2a993eefbe06be047eff

# Java

https://qiita.com/tobita_yoshiki/items/0400f7e393fc0ba2d0cb

# JavaScript

https://qiita.com/mokomium/items/57

元記事を表示

Bランクレベルアップメニュー 文字と整数の組のソート 解答

# STEP: 36 インクリメント
## 問題
https://paiza.jp/works/mondai/prob60/sort_asc_0

## 解答
“`java:step36.java
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int result = addUp(n, 1);
System.out.println(result);
}

/**
* nとmの足し算する関数
* 流用性を高める為に足し算する数字は任意で決めれるようにする
*
* @param n 標準入力
* @param m nに足したい数字
*
* @return 足し算結果
* */

元記事を表示

VSCodeのポータブルモードでJavaをビルドする方法

# VSCodeのポータブルモードでJavaをビルドする方法

Javaでは、EclipseやNetBeansが有名ですが、もちろんVSCodeでもJavaを使えます。
本記事では、VSCodeでJavaをビルドする方法についてご紹介します。また、ポータブルモードでセットアップするため環境変数の設定はしていません。
ユーザー名は**mazok**にしているので読み替えてください。

## 環境
私は、以下の表に示す環境で記事を書いています。

| 名前 | バージョン |
| —- | —- |
| Visual Studio Code Portable x64 | 1.72.2 |
| Java SE Development Kit 19 | jdk-19 |

:::note info
本記事で使用する、VSCodeの拡張機能である、Language Support for Java(TM) by Red Hatでは、[About the Java 17 requirement](https://github.com/redhat-develope

元記事を表示

KeyCloakについて

業務でAPIサーバーをJava, SpringBootで作成した時、認証・認可サーバーとしてKeyCloakを使用しました。その際、学んだことを備忘録としてここに残しておきます。

【KeyCloakとは何なのか?】
1.KeyCloakとは、シングルサインオンやAPIアクセスの認証・認可制御を実現する、Javaベースのアイデンティティ・アクセス管理ソフトウェアです。

【KeyCloakをなぜ使うのか?】
1.ユーザーのデータを利用したいクライアントアプリケーションと、ユーザーデータを管理するリソースサーバーがあったとします。イメージとしては、フロントエンドがクライアントアプリケーション、バックエンドがリソースサーバーに該当します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2919458/c84e1f16-c447-adb9-ea23-61bd54a95981.png)

2.クライアントアプリケーションは、エンドポイントにアクセスしてAPIと必要なデータをやり取りします。し

元記事を表示

Bean バリデーションが効かなかった話(1 errorsField error in object validation)

JavaのフレームワークSpring bootでBean バリデーションを実行した際にバリデーションが効かなかったのでいろいろと調べました。

## やりたいこと

フロントで入力した値をList型のformでバインドして指定したフォーマット(@DateTimeFormat(pattern = “yyyy/MM/dd HH:mm :ss”))の通りに値が入らなかったらエラーを出すという処理です。

## コード

“`java:workUser.java
@Data
public class WorkUser {
private int id;
private String userName;

@DateTimeFormat(pattern = “yyyy/MM/dd HH:mm:ss”)
private LocalDateTime startTime;

@DateTimeFormat(pattern = “yyyy/MM/dd HH:mm:ss”)
private LocalDateTime finishTime;
private int workF

元記事を表示

OTHERカテゴリの最新記事