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

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

【Java】複合代入演算子

代入演算子には「単純代入演算子」と「複合代入演算子」がある。
本稿では「複合代入演算子」について下記の通りまとめる。

##### ◆複合代入演算子
| 種類 | 意味 |
|:-:|:-:|
| a += b | a = a + b |
| a -= b | a = a – b |
| a *= b | a = a * b |
| a /= b | a = a / b |
| a %= b | a = a % b |

**使用するメリット**
コードを短く記述することができる。
※直観的には分かりにくいため、簡潔ではないと考えている。

実例は割愛する。
以上。

元記事を表示

サーブレットでセッション管理を行う

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

今回はセッション管理について整理します。
本記事ではセッション管理を利用して、(超)簡易的なログインの仕組みを実装してみようと思います。

本記事以外のコンテンツは[こちら](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)から閲覧可能です。

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

# セションとは
セッションとは、クライアントがブラウザなどのアプリケー

元記事を表示

オブジェクト指向を意識した設計ができるようになった気がした - 良いコード/悪いコードで学ぶ設計入門を読んだ感想 –

# はじめに
GWに[「良いコード/悪いコードで学ぶ設計入門」](https://www.amazon.co.jp/%E8%89%AF%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89-%E6%82%AA%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E5%AD%A6%E3%81%B6%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80-%E2%80%95%E4%BF%9D%E5%AE%88%E3%81%97%E3%82%84%E3%81%99%E3%81%84-%E6%88%90%E9%95%B7%E3%81%97%E7%B6%9A%E3%81%91%E3%82%8B%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9-%E4%BB%99%E5%A1%B2/dp/4297127830)という本を読んでみて、非常に勉強になったので、
備忘録も兼ねて感想を残していきたいと思います。

## この本を知ったきっかけ
自身のTwitt

元記事を表示

【Java】int型とdouble型の計算の順番で起きたエラー

## 作成したいプログラム
①与えられた数字を2で割る(切り捨て)
②①で得られた数字をさらに2で割る(切り上げ)

## 正しい出力結果
(例)11が入力された場合
“`
5
3
“`

## 起きたエラー
私が初めに書いたエラーは、
“`
class Keisan{
public static void keisan (int num) {
// ①の処理
int middle = (int)Math.floor(num / 2);
// ②の処理
int middle2 = (int)Math.ceil(middle / 2);

System.out.println(middle);
System.out.println(middle2);
}
}
“`
引数numが11の場合、出力結果は
“`
5
2
“`
となる。

つまり、①の処理で先にint型へキャストしてしまったため、②の処理ではint型通しで計算が行われてしまい、3という結果が得られなかった。

元記事を表示

Spring Boot を使用して REST API を作成する

# はじめに
本投稿は、Spring Boot を使用して簡単なREST API を作成することを目的としています。

# 環境構築
## JDKをインストールする
[AdoptOpenJDK](https://adoptium.net/)からJDKをインストールします。

## IntelliJ IDEA(IDE)をインストールする
IntelliJ IDEAは、JetBrains社が開発したJavaなどの言語に対応した統合開発環境です。
https://www.jetbrains.com/ja-jp/idea/download/ にアクセスしてインストールします。

# アプリケーション作成
## 全体像
– Controller
– コントローラは、入力を受け入れて処理を行います。
– 主処理はController内では行わず、Serviceで行います。
– Service
– ビジネスロジックを担当します。
– Repository
– DBアクセスのための入口を担当します。

![名称未設定.001.jpeg](https://qiita-image-stor

元記事を表示

JavaのメソッドとJavaDocの結びつきを考える

いつもの業務中にメソッド名プラス数字というメソッドが乱発されていた。
ただ、これって改善したほうがいいのかと悩んだということに関して記事にさせていただく。

# 問題のコード
問題のコードと似た状態のコードを参考に記載させていただく。
“`
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
DoSomething1();
DoSomething2();
DoSomething(1);
DoSomething(2);
}

/**
* DoSomething1の説明
*
*/
public static void DoSomething1(){
//do somthing1
}

/**
* DoSomething2の説明
*
*/

元記事を表示

【Java】アクセス修飾子(public / protected / なし / private)

アクセス修飾子は下記4点がある。
|アクセス修飾子| 制限内容|
|:———–:|:——-:|
|public |同じパッケージ:アクセス可能
違うパッケージ:アクセス可能|
|protected |同じパッケージ:アクセス可能
違うパッケージ:アクセス不可*
*継承関係にあるサブクラスからはアクセス可能|
|修飾子なし |同じパッケージ:アクセス可能
違うパッケージ:アクセス不可|
|private |同じクラスからのみアクセス可能*
*継承関係のサブクラスからもアクセス不可|

 
アクセス制限の範囲は下記の順でアクセス範囲が制限されている。
“`mermaid
graph LR;
public–>protected–>修飾子なし–>private;
“`

**◆クラス・インターフェイスのアクセス修飾子**
public・修飾子なしのみ使用可能

**◆フィールド、メソッド、コンストラクタのアクセス修飾子**
上記4点とも使用可能。

実例は割愛。
以上。

元記事を表示

【Java】階乗の計算方法(n!= n ( n − 1 ) ( n − 2 ) ⋅⋅⋅ ⋅ 3 ⋅ 2 ⋅ 1)

階乗とは、『1からある数までの連続する整数の積』である。
そのため、計算としては下記方法で表すことができる。

“`
n! = n( n − 1 )( n − 2 ) ⋅⋅⋅ ⋅ 3 ⋅ 2 ⋅ 1
0! = 1
※本稿では0! = 1の説明は割愛します。
“`

Javaで表現する場合は、下記記載例のとおりである。
※記載例は5!の計算を例に記載しております。(int n = 5)

① 再帰処理
計算の考え方
n!= n ( n − 1 ) ( n − 2 ) ⋅⋅⋅ ⋅ 3 ⋅ 2 ⋅ 1
“`java:Recursion.java
int recursion(int n){
if (n == 0) {
return 1;
}
return n * recursion(n – 1);
}
“`
 
② for文
計算の考え方
n!= 1 ⋅ 2 ⋅ 3 ⋅ ⋅⋅⋅ ( n − 2 ) ( n − 1 ) n
“`java:for.java
int total = 1;
for (int i = 1; i <= n; i++) { total *= i; }

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事