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

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

一次関数の傾きと切片を計算する

# はじめに

前記事
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のテスト用モック

元記事を表示

4分チャレンジ:ファイル監視&差分取得のフレームワーク

# はじめに

前記事
1. [4分チャレンジ:タブ区切りファイルをhtmlファイルに変換する](https://qiita.com/hiuchida/items/8be2894b4f38397ba7c0)
2. [4分チャレンジ:31時(翌7時)基準のファイル分割ツール](https://qiita.com/hiuchida/items/f57268047995f2290a22)
3. [4分チャレンジ:テキストファイルを分割してランダムアクセスする](https://qiita.com/hiuchida/items/635d889056e63f14459f)

もう4分で作れっこないので、思いついたことを書き残しておけば、非同期に出来てくれるいいという感じ。

# 要件

Linuxでlessでファイルを開いて大文字Fを押して、ログファイルの監視ができます。
tail -fでも同じ。
Windowsでファイル監視して差分表示するツールが欲しいというよりは、差分を1行づつ渡してくれるフレームワークが欲しい。

# 仕様

ファイル監視は、むかしだと、File.lastModified

元記事を表示

Think Java 後半

# 背景・理由
立派なプログラマーになるためにThink Javaを学びます。
#リソース
Think Java: How to Think Like a Computer Scientist
Allen B. Downey https://www.amazon.co.jp/dp/1492072508/ref=cm_sw_r_tw_dp_THGFFJFBXVVCYQ54R9ES
但し書き エクササイズ主にThink Javaの前のバージョンを使います。
https://books.trinket.io/thinkjava/
# chap 9
## 語彙
object-oriented:
object:
primitive:
immutable:
wrapper class:
parse:
empty array:
design process:
encapsulate:
generalize:

## ex 9_1
省略 実際に手は動かしました。

## ex 9_3

“`java
public static BigInteger pow(int x, i

元記事を表示

ファミチキで学ぶ String 型

皆さん、こんにちは。
ゴールデン・ウィークから 28日。そして、次の祝日まで 46日の中日。いかがお過ごしでしょうか。

今回は **”Java”** のお話。
Java を学習し始めた人のほとんどが躓くであろう **Java** の **String 型** に関するお話しです。
参照型でありながら、あたかも基本データ型であるかのように振る舞うことで、Java 初学者を罠に貶めてくるあいつですね。
では、はじめましょう!

## :one: 基本データ型と同じように定義する場合…

まず初めに、基本データ型と同じように `String “変数名” = “値”;` として定義した場合はどうなるでしょうか?
まずはこちらをご覧ください。

||

JUnit:例外が発生しないことを確認するテストの書き方

# 何もしないメソッドのテスト

弊社ではJUnit5でJUnitを書いているのだが、次のような既存メソッドのテストをどうしようか迷った。(ググレカスと言われかねない)

“`java
public class HogeCheck{

/**
* Api経由で何かしらの値をチェックし、trueの場合、専用Exceptionを投げる
* @param url
*/
public void hogeCheck(url){

boolean checkResult = new FugaApi(url).check();

if(checkResult){
throw new HogeHugaException();
}

}

}
“`

個人的にvoidはあんまり好みじゃないというか、テストしにくいからできるだけ敬遠している。
返り値を作れるならそうなるようコードReviewでも指摘を入れることがよくある。

しかし今回のコードはレガシーコード。つまりテストのないコード。
ここについてはまずテストを書くこ

元記事を表示

ZOOMの日本語音声を無料で英語に翻訳した字幕をつける。

# ZOOMで日本語の音声を無料で英語に翻訳した字幕をつける。

音声の翻訳はAzureのSpeech translationの無料枠を使用します。

## 構成

“`plantuml
@startuml
actor User2
node Client {
actor User1
component Application
interface ミキサー
}
node Zoom
node Azure

Application <-- ミキサー : オーディオマイク Application <--> Azure : Speech to transrate
ミキサー — Zoom : スピーカー出力
Application –> Zoom : 字幕
User1 — Zoom
User2 — Zoom
@enduml
“`

* ユーザがZoomに対していつものようにしゃべります。
* Zoomから声がスピーカーに出力されます。
* スピーカーからの出力をマイクとして音声を拾います。
* 音声をAzureの音声翻訳に送信し、翻訳したテキストとして受け取ります。
* 受

元記事を表示

【SpringBoot&React】ログイン認証~ホーム画面表示

最近よく聞くReactを勉強して、ログイン認証~ホーム画面表示までなんとか出来たので個人的に見直すように纏めておきます。Reactは始めたばかりなので間違いもあると思います。

## はじめに
React、SpringBootの環境作成については割愛してます。
バージョンは以下の通りです。
react: 18.1.0
react-router-dom:6.3.0
axios:0.27.2

react-router-dom、axiosは個別にインストールが必要です。
`npm install react-router-dom`
`npm install axios`

## 仕様について
①Basic認証でログイン
②認証成功時はJSESSIONIDを発行し返却
③認証失敗時はログイン画面へリダイレクト
④ホーム画面ではヘッダーとメインコンテンツを分けて表示

## 画面イメージ
### ◇ログイン画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234354/5a5b0277-37

元記事を表示

【備忘録】Java学習2週間でInterfaceを理解するまで

# はじめに

 この記事はプログラミングを初めて2か月たったアホの子である筆者がJava学習を開始して2週間たった時にInterfaceを理解した時の思考回路です。
 基本的にドルオタ末期なのでかなりお見苦しい点も見受けられますが温かい目で見てやってください。
 でも初学者の方は理解しやすい(はず)です!

# そもそもInterfaceクラスとは
 抽象クラス(abstractクラス)の仲間みたいなものらしいです。そもそも抽象クラスの概念自体難しいのに余計になんだこれって感じですよね…
 恐らく皆さん調べた結果似たような状態になっているのではと思ってます。

# 本題!この説明を見ればInterfaceが理解できる!(はず)
 そもそもクラスから生成されるインスタンスは実体として扱う上での話になります。
 筆者は日〇坂〇6が大好きですのでその中の推しメンである小〇菜緒さん(kosakanaクラス)をJavaで作ろうと思いました。(そもそもこの時点で正気の沙汰ではない)
 この際に、小〇奈緒さんは(当たり前ですが)「人」なので、human classという人としての機能(呼吸する

元記事を表示

【備忘録】Processingで遊んでみた

こんにちは!新人エンジニアのなっしーです。

久しぶりにProcessingで遊んだので、今回はProcessingの特徴や使い方などの概要を書いていこうと思います!
今回の記事は、ある程度プログラミング(主にJava)がわかる人向けの記事です。

Processingってどんなもの?

Processingとは、Javaを単純化し、電子アートとビジュアルデザインに特化させたプログラミング言語及び統合開発環境(IDE)です。

……と言われてもイメージが湧かないと思うので、実際の画面をお見せします!

[1] IDEの画面(sketchbook)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2655859/6eef4e93-f548-a800-862e-1f197a084e14.png)

[2] 実行結果
※実際には小さなボールが画面上を動き回る様子が表示されています。
![image.png](https://qiita-image-store.s3.ap-nor

元記事を表示

異なるディメンジョンを移動できるSpigotプラグインを作る

## はじめに
サラっと書きます。
Spigot API 1.18.2 のAPIを用いて開発しています。
それ以前のバージョンのAPIでの動作については保証しません。
## ワールド間(ディメンジョン間)を移動するには
ワールド間を移動するには
“`
player.teleport(Location型の引数)
“`
でできます。
ですがこれだけでは移動することはできません。
幾つかのステップを踏まねばなりません。というわけで1つずつ見ていきましょう。

## ファーストステップ
今回は例としてオーバーワールドの指定座標へ移動するコードを用います。

まずは移動先のワールドを読み込みましょう。
読み込まないとエラーを出して動きません。
“`
WorldCreator loadWorld = new WorldCreator(“world”);
“`
と書いてWorldCreator型の変数を定義して代入しましょう。

使用するときはworldの部分をワールド名に変更してください。
(ワールド名が分からないときはワールドデータのフォルダ名を参照すると良き)

## セカンドステッ

元記事を表示

【SAP BTP】CAPのAPI(Java)をPostgreSQLで使ってみる

# はじめに
[CAP(SAP Cloud Application Programming Model)](https://cap.cloud.sap/docs/)を利用してHANA DBと連携するODataAPIを作成しました。(Java)
HANA DBはTrial環境だと気軽に利用できますが、購入して利用する場合はお高いこともあります。
HANA DBほどのスペックが必要とされない場合、BTP環境のなかでほかの選択肢としてはPostgreSQLがあります。
ということでJavaで作ったCAP APIをPostgreSQLでも使えるようにする方法を試してみました。

# 前提
CAP Service SDK for Javaで作成したOData APIがあることを前提としています。
【参考】
[【SAP BTP】CAP Service SDK for JavaでOData APIを作ってみる(2)](https://qiita.com/yonekura-h/items/9ce04ddbb37dc9001bb4)

# PostgreSQLのインスタンスを作る
まずはTrial環境

元記事を表示

ぷよぷよAIをつくる授業で学んだこと

# 0. はじめに
## この記事を書いた経緯

ぷよぷよAIを作ろう!という大学の授業があったので、色々調べたり考えたりしたことを備忘録として残しておきます✍

個人的にためになったなと思う以下の2点を主に書いていきます
1. どんなアルゴリズムを実装するか
2. そのアルゴリズムを如何に効率的に実装するか(開発フロー)

## 注意点
– 教材として提供されたコードは公開できないのでJavaコードを交えての説明はないよ
– 各戦略の評価はちゃんと計測したわけじゃないのでざっくりの感覚値
– 間違いがあったら教えてほしいよ

## ぷよぷよのルール
今回の課題は授業用ということで本来のぷよぷよと若干ルールが違う
#### ぷよの色が5色
スタンダードは4色?実は4色と5色だととるべきアルゴリズムが全然変わったりする
#### 同時ターン制
本来のぷよぷよだと相手が発火し始めてからし終わるまでに結構時間があるので、その間にカウンターを組めたりする。

けど相手と同時にぷよをおいていくこのルールだと発火の際のタイムロスがない。なので、お邪魔が降るまでに自分の盤面の発火ぷよを引かなければ相

元記事を表示

プレイヤーに与えられなかったアイテムの数を取得する

## はじめに
くちゃくちゃな文になってるかもしれませんがご容赦ください。

## 主題

“`
ItemStack giveItem = newItemStack(~~~~~~~)
String ReturnCode = player.getInventory().addItem(giveItem).toString();
“`
を仕込んでおくとReturnCodeにアイテムを渡す処理の戻り値が格納される。

全てのアイテムがプレイヤーに渡された時は`{}`が格納され、石を64個渡そうとして10個しか渡すことができなかったときは`0={STONE x 54}`が格納される。
`STONE`のところには大文字のアイテムIDが格納され、xのあとには渡すことのできなかった個数が格納されている。

※すべてのアイテムが渡された時の戻り値`{}`はNullではなくきちんとした中括弧。
※文字数は2なので気を付けること。

`if (ReturnCode.length() != 2)`などの条件を付けてあげれば簡単に判定をすることができる。

## おわりに
どうやって与えられなかったアイテ

元記事を表示

SpringでNoUniqueBeanDefinitionExceptionが出たときの解決法

# 環境
– JDK 17
– Spring Boot 2.7.0

> 多少バージョンが違っていても、動作は変わらないと思います。

# 解決したい問題
`Foo` インタフェースがあって、その実装クラス(Bean)が2つあります。

“`java:Foo.java
package com.example;

public interface Foo {
public void doSomething();
}
“`

“`java:FooImpl1.java
package com.example.foo1;

import com.example.Foo;
import org.springframework.stereotype.Component;

@Component
public class FooImpl1 implements Foo {
@Override
public void doSomething() {
System.out.println(“FooImpl1”);
}
}
“`

“`java:F

元記事を表示

Spring BootでDataSourceのBeanを複数作る

# この記事について
Spring Bootでは、Auto Configurationにより `DataSource` のBeanが1つ作られます。しかし自分で明示的に `DataSource` のBeanを定義すると、Auto Configurationによって作られるはずだった `DataSource` Beanが作られなくなってしまいます。

では、どうやって `DataSource` のBeanを2つ作るかと言うと、自分で明示的に `DataSource` のBeanを2つ作ればよいのです。

方法は大きく2つです。

– 方法① `DataSource` などのサブクラスを各DB用に作る
– 方法② `@Qualifier` を利用する

方法①のみ、ソースコードは[GitHub](https://github.com/MasatoshiTada/spring-boot-multi-datasource)においてあります。

# 環境
– JDK 17
– Spring Boot 2.7.0
– spring-boot-starter-web
– spring

元記事を表示

SpringBoot(+MyBatis)を用いてLambda + APIGatewayのAPIを製造する

SpringBootをLambda関数に実装してAPIGatewayでクライアント側から呼び出すAPIを製造する機会があり、何回か障壁にぶち当たったので、簡単な手順や注意点を備忘録としてまとめておくことにしました。
今回はMyBatisをORマッパーとして採用しましたが、JPAなどでも問題なく同様の手順で製造できるかと思われます。
バックエンド中心の話になります。

今回はAWS CodeStarでLambda+SpringBoot環境を自動生成しています。
 参考URL:https://qiita.com/ogu1101/items/b30a5ccbc28085462dff

# pom.xml
Codestarで自動生成されるJavaプロジェクトを使用したため、最初から何点か依存するライブラリの記述は書かれていましたが、私の方で以下を追加しました。

#### SpringBootのバージョンについて
今回自動生成されたプロジェクトのSpringBootのバージョンが2.0.3でしたが、2.3.0までアップグレードできることを確認しました。
2.4.0以上になると、デプロイ時に失敗

元記事を表示

Java技術者から見るブルーベリー本【第2章:基本的な文法・型編】

Javaを4年間実務で取り扱った私が、「プロを目指すためのTypeScript入門」(著: @uhyo 氏)
でTypeScriptを学んだ際に感じたことを書いていきます。

Javaと比較して、どう違うのかに着目して書いています。

JavaとTypeScriptは同じ静的型付け言語ということで、共通する部分は多くありますが、細かな違いがありました。

同じようにJava技術者がTypeScriptを学ぶ際の助けになればと思います。

第1章のものも投稿しています。

https://qiita.com/fuga_else/items/4b95ba77329bdcd4edb0

# この記事の読み方

各節ごとに上段は本の内容
線を挟んで下段は私の所感になります。

# 文と式
文はセミコロンで終わる。

文には結果がなく、式には結果がある。
式が実際の操作を行う。

“` typescript
// 文 変数に文字列を代入した。という事実だけを示す
const str = “Hello” + “world!”;

// 式 文字列を結合していて、結果がある
“Hello” +

元記事を表示

1分足の4本値とチャートデータをマージするツール

# はじめに

前記事
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のテスト用モック

元記事を表示

日足の4本値とチャートデータをマージしないマージツール

# はじめに

前記事
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のテスト用モック

元記事を表示

4分チャレンジ:テキストファイルを分割してランダムアクセスする

# はじめに

前記事
1. [4分チャレンジ:タブ区切りファイルをhtmlファイルに変換する](https://qiita.com/hiuchida/items/8be2894b4f38397ba7c0)
2. [4分チャレンジ:31時(翌7時)基準のファイル分割ツール](https://qiita.com/hiuchida/items/f57268047995f2290a22)

ツールというよりサンプルですが、近い将来ツールで使うためのstaticメソッドを作るためのPGMです。

# 要件

可変長テキストファイルをランダムアクセスしたい。
固定長テキストファイルや固定長バイナリファイル(構造体)は、指定したインデックスからファイルオフセットを計算でき、シークして読めます。
可変長の場合、各行のバイト数が分からないので、各行のインデックス番号を保存する必要がある。

# staticメソッドの仕様

汎用的に使えるように以下の宣言とした。

“`java
/**
* 指定したオフセットから指定した行を読み込む。
*
* @param lr

元記事を表示

OTHERカテゴリの最新記事