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

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

auカブコム証券のkabuステーションPUSH APIを受信してCSVファイルへ保存する

# はじめに

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

元記事を表示

コンピュータとオセロ対戦54 ~勾配降下法と誤差逆伝播法~

https://qiita.com/tt_and_tk/items/068f2afde6db637e189f

[前回](https://qiita.com/tt_and_tk/items/5c647f59019a03d4cf9e)

# 今回の目標
前回作成したネットワークのパラメータ更新を実装する。
# ここから本編
## パラメータ更新方法
誤差逆伝播法によるパラメータの更新方法は[44 ~勾配降下法と誤差逆伝播法~](https://qiita.com/tt_and_tk/items/5b6f755a115af6eac620)でもまとめましたが、難しい内容なのでもう一度まとめます。
また上記事の、

>下付き文字ですが、「pre」が前の層、「next」が次の層、「now」もしくは何も書いていなければ現在着目している層、「last」が最終層(出力層)を指します。下付き文字がコンマで区切られて二つある場合、二つ目はその層の何番目のノードのものであるかを指します。
また、「old」が更新前のパラメータ、「new」が更新後のパラメータです。
一般的に他の文献では層の数が上付き文字であら

元記事を表示

エンティティを不変(イミュータブル)にする実装

# はじめに

SpringBootのエンティティは便利だが、可変(ミュータブル)な実装になりがちなので、
不変(イミュータブル)にできないか検討する。

# ありがちな実装

* エンティティ

“`java
@Entity
@Table(name = “company”)
@Getter
@Setter
public class Company {

@Id
private String companyId;
private String companyName;
}
“`

* 呼び出し元

“`java
Company company = new Company();
“`

晴れて、生焼けオブジェクトのできあがり!!
変数“`company“`がどのような状態かよく分からない。。
この状態を避けるために、“`Company“`エンティティを不変にしてみる。

# エンティティの制約

エンティティには、引数を持たないコンストラクタが必要。
引数を持たないコンストラクタが存在しないと、
リポジトリのfindByIdとか実行すると、下記のよ

元記事を表示

auカブコム証券のkabuステーションREST APIで自前のリピート注文を作ってみる(リファクタリング編)

# はじめに

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

元記事を表示

LibTorchにPyTorch_JNI.dllが入っていない!!

PyTorchの公式サイトでStable、Windows、LibTorch、C++/Javaを選ぶとLibTorchというC++向けのライブラリがダウンロードできます。
しかし、このLibTorchにはPyTorch_JNI.dllというファイルがありません。

このファイルはStableではなく、LTSのバージョンになら入っています。
PythonとC++/Javaを併用したい人とかは、バージョンを落とすことも考慮してみてはいかがでしょう。

現在は配布されているトレーニング済みのPyTorchのモデルを、TorchScriptのものに変換してJavaで動かそうとしています。

元記事を表示

Controllerの呼び出し前後にログ出力する方法

# はじめに

SpringBootのControllerの呼び出し前後で引数や処理時間をログに出力したく、
調べたところAOPで実現できたので、まとめておく。

# 基本となる書き方

“`java
@Aspect
@Component
public class [任意のクラス名] {

@Around(“execution(public * xxx.yyy.zzz.controller.*.*(..))”)
public Object [任意のメソッド名](final ProceedingJoinPoint pjp) throws Throwable {

// 前処理

Object result = pjp.proceed();

// 後処理

return result;
}
}
}
“`

# @Aroundについて

Advice(アドバイス)の1つ。処理時間を計算するために採用した。
他に“`@Before“`や“`@Aft

元記事を表示

springでjsonを簡易的に整形

springというかjacksonでjson文字列をとりあえず整形したい場合は“`ObjectMapper#writerWithDefaultPrettyPrinter()“`を使用する。

以下はjackson-2.13.2で確認。

“`java
public record SampleResponse(String first, String second, List list) {
}

SampleResponse response = new SampleResponse(“aa”, “bb”, List.of(1,2,3));
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(response);
“`

出力は下のような感じ。

“`json
{
“first” : “aa”,
“second” : “bb”,
“l

元記事を表示

Android トグルスイッチの実装(java)

# はじめに
こんばんわ、Hideです。
javaに関する記事を投稿しています。

今回はAndroid Studioでトグルスイッチを実装する方法を書いていきます。

# トグルスイッチとは
ユーザが2つの状態(On/Off)を交互に切り替えることのできるUIです。
![toggle_switch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2652946/2e45166e-17eb-9467-064f-5847636c3bff.png)

# レイアウトの作成
まず、トグルスイッチのレイアウトを作成する
(※スイッチの初期値をONに設定している)
“`/res/layout/activity.xml
auカブコム証券のkabuステーションPUSH APIのサンプル

# はじめに

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

元記事を表示

[Docker][Java] Java プロセスのコンテナで jmap/jstack が採れない

前の記事で Java プロセスの docker コンテナの jstat が採れない問題を修正したら、今まで動いていた jmap/jstack が採れなくなった。。

[Docker][Java] Java プロセスのコンテナで jstat が採れない
https://qiita.com/batatch/items/a5d76b420702cc6322b5

以下のようなエラーになり、jmap/jstack の結果がアタッチ対象の Java プロセスの標準出力に出てしまう。

“`
Exception in thread “main” com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file /proc/1/root/tmp/.java_pid1: target process 1 doesn’t respond within 10500ms or HotSpot VM not loaded
at jdk.attach/sun.tools.attach.VirtualMa

元記事を表示

SpringBatchのItemReaderでDBデータを取得する方法(MyBatis)

SpringBatchのChunkモデルを使う場合、データベースからデータを取得し、chunkサイズごとにデータを処理する方法を紹介しようと思います。

# サンプルソース
“`Configuration.java
@Autowired
SqlSessionFactory sqlSessionFactory;

@Bean
public Step chunk() {
return stepBuilderFactory.get(“chunk”). chunk(100)
.reader(this.myBatisReader())
.processor(this.Processor)
.writer(this.Writer)
.build();
}

// MyBatisPagingItemReaderを使ってデータをページ分けて取得
@Bean
public MyBatisPagingItemReader myBatisRead

元記事を表示

SpringBatchのJunitテストの書き方(Step構成がJavaで書いた場合)

SpringBatchの公式ドキュメントを参考して、JunitでSpringBatchのテストをやって見たが、Step構成ファイルがjavaファイルで書いた場合、「@ContextConfiguration」でStep構成ファイルを指定するとエラーがいろいろ出ました。
解決方法を調べたが、Step構成ファイルの作成がいくつ注意点があることがわかりました。

## サンプルコード

“`Configuration.java
@Configuration
@EnableBatchProcessing
//注意点1:@ComponentScanを追加し、全プロジェクトのBeanをスキャンすること
@ComponentScan(“com.example.パス”)
public class Configuration{

@Autowired
private JobBuilderFactory jobBuilderFactory;

@Autowired
private StepBuilderFactory stepBuilderFactory;

@Autowired

元記事を表示

Java 配列についてまとめる

備忘録
## ArrayList
### add
– 配列ver

“`java
// 生成時要素数は3
int[] nums = new int[3];
nums[0] = 3;
nums[1] = 6;
nums[2] = 1;

for(int value : nums) {
System.out.println(value);
}
“`
– ArrayList

“`java
// 生成時中身は空
List list = new ArrayList<>();
list.add(3);
list.add(6);
list.add(1);

for (int value : list) {
System.out.println(value);
}
“`

### get
– 配列

“`java
int num = nums[1];
“`

– arraylist

“`java
int num = list.get(1);
“`

### remove
– 配列
機能なし

– arraylist

“`java
li

元記事を表示

Twitter APIを活用して競馬予想をしてみた

## 〜天皇賞・春〜 外れました・・・
こんにちは。2回目の投稿になります。テイオーロイヤル抜けました。
前回、初めてTwitterAPIを触って、Java上からツイートすることに成功しました。その時の記事は下記です。

https://qiita.com/mozuku_com/items/2e3e731630243ca83b2b

前回は自分の呟きたい内容を直接打ち込んでツイートしていましたが、今回はランダムな3つの重複しない数字を生成してつぶやいてみようと思い、少しコードを改善してみました。

## 乱数の生成に関して
ランダムな数字の生成方法は色々あるのかなと思いますが、まず思いつくのは、Randomクラスを使用する方法かなと思います。[こちらのページを参考にしました!](https://techacademy.jp/magazine/17733)

“`Random.java
Random random = new Random();
int randomValue = random.nextInt(100);
“`

私が好んで使う方法は、Listに数字を入れて、Coll

元記事を表示

Apache HttpClient 5.x 再利用(使いまわし) 接続設定 ポイント まとめ

# 概要

Apache HttpClient 5.x を使うときのポイントをまとめる。以下の公式ドキュメントはあっさりしているので、コードを読むしかなかった…どこかに詳細があるんだとは思いつつ見つけられなかったのでメモを残す。
また、 Apache HttpClient 4.x と仕組みは似ているので、そのあたりの記事も参考にした。

[Apache HttpComponents – HttpClient Overview](https://hc.apache.org/httpcomponents-client-5.1.x/index.html)

前提として、`PoolingHttpClientConnectionManager`のコードで得た知識なので、他のManagerと設定値の扱いが若干ことなるかもしれない。現時点の最新のライブラリのバージョンは、5.1.3だが、読んだコードはもう少し進んでいるのでその辺の差異も注意したい。

## 参考

– [Apache HttpClient Connection Management | Baeldung](https://www

元記事を表示

[Apache Hop] CSVを読みこみ変換処理してみた

# 対象者
– Apache Hop (データ統合プラットフォーム) を試してみたい方。
– データ収集、変換処理を試してみたい方。
– CSVのファイルを変換処理してみたい方。

# 前提環境
– Docker Desktopをインストールしている
– Apache Hopを準備している

https://qiita.com/Tadataka_Takahashi/items/f13161b981a8699f46ff

https://qiita.com/Tadataka_Takahashi/items/58f69ceb466a5c3a295a

# 手順の流れ
– 読み込むCSVファイルを準備する
– CVSを読み込んで、変換して出力する変換を作成する
– 動作を確認する

## 読み込むCSVファイルを準備する

https://www.oreilly.co.jp/catalog/
O’Reilly の書籍リストを元にCSVファイルを作成します。このデータを例として取り上げます。
![image.png](https://qiita-image-store.s3.ap-north

元記事を表示

Singletonについて

# Singletonとは?

`「Singleton(シングルトン)」はデザインパターンの一種です。「Singleton(シングルトン)パターン」と呼ばれることもあります。
「あるクラスのインスタンスが常にたった1つしか存在していない」という状態を実現したいときに利用されます。`

あるクラスについて「複数のインスタンスが作られると困る」場面があれば、Singletonパターンを使用する。
※全機能で使用するキャッシュ保持など

# Singletonの構成

Singleton#getInstance( )でインスタンスを取得することができる。

①インスタンスを保持する内部クラス

/**
* Configクラスの唯一のインスタンスを保持する内部クラス
*/
public static class ConfigInstanceHolder {
/** 唯一のインスタンス */
private static final Config INSTANCE = new Config();
}
}

②インスタンス

元記事を表示

【Android】MVVM的に2つのサンプルアプリを作ってみた 〜 Room & Retrofit2 〜

# はじめに

皆さん、ごきげんよう!れぶです!

今回の記事では、`MVVM設計`を意識して作成した2つのサンプルアプリをざっくり紹介していきます。これからMVVM的にアプリを作成したいと考えている方に特に参考になれば光栄です。

それでは、参りましょう!!

# 開発環境

* MacBook Air
* Android Studio Bumblebee | 2021.1.1 Patch 1
* Java 8
* compileSdkVersion 31
* minSdkVersion 21

# 1つ目のアプリ
## 概要
自分が行きたい国を管理できるサンプルアプリです。データの全表示・追加・削除ができます。
`Room`を使って、ローカルDBのSQLiteを操作しています。

## 動作イメージ
![MVVM.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2456250/25417b5e-aea0-4dda-f8c0-b9b2f68c646a.gif)

## アーキテクチャ図
![MVVM.p

元記事を表示

サーブレットとJSPを使ったフォームの作成

# はじめに
こんばんわ、きりです。
本記事は[Nablarchを使ってみよう](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17)のサブ記事として作成しております。

今回はWeb画面に入力フォーム、ボタン、コンボボックス、ラジオボタンを作成し、選択した内容をサーブレットで取得するといったものを作ってみようと思います。

本記事以外のコンテンツは[こちら](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17#nablarch%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E8%A8%98%E4%BA%8B%E4%B8%80%E8%A6%A7)から閲覧可能です。

なるべく、初心者目線で作成するつもりですが、分かりづらい部分ありましたら、コメント頂きたいです。

# 動作環境
|種類|バージョン|
|—|—|

元記事を表示

【Java】指定範囲の乱数生成:nextInt(int num)

指定範囲の乱数を生成したい場合、
RandomクラスのnextIntメソッドを使用する。
nextIntメソッドで取得される乱数の性質は下記のとおりである。

nextInt(int num)
・0以上、num未満のint値

使用例は下記のとおりである。
※java.util.Randomをimportした前提での使用例である。
※Randomクラスをインスタンス化した場合の使用例である。

①0~9までの乱数
“`java:nextInt.java
Random random = new Random();
int randomNum = random.nextInt(10);
“`

~説明~
nextInt(int num)で取得できる値は0以上、num未満のint値のため、
範囲:0~x*までの値を取得したい場合はnum = x + 1で指定する必要がある。
*(x=取得したい範囲の上限値)

②1~10までの乱数
“`java:nextInt.java
Random random = new Random();
int randomNum = random.nextI

元記事を表示

OTHERカテゴリの最新記事