- 1. @Controllerと@RestContollerの違い(備忘)
- 1.1. 参考
- 1.1.1. Java 推奨されるnullチェックについて
- 1.1.2. Python,Ruby,PHP,Java,JavaScript,Perlのファイル・ディレクトリ操作の比較
- 1.1.3. 【Java】コンパイル時にpackage文に関するエラーが出た場合の対処法
- 1.1.4. Javaの文字列操作
- 1.1.5. Java:複数のExcelドキュメントをマージする方法
- 1.1.6. オーバーロードとはなにか〜Java編〜
- 1.1.7. Gatlingを使って負荷試験をする手順
- 1.1.8. Python,Ruby,PHP,Java,JavaScript,Perlの文字列連結の比較
- 1.1.9. Javaのequalsメソッドについて
- 1.1.10. MediatorLiveDataでNullPointerExceptionが出たときの対処法
- 1.1.11. Python,Ruby,PHP,Java,JavaScript,Perlの四則演算の比較
- 1.1.12. インクリメント演算子の前置と後置について
- 1.1. 参考
ABC269A~Eの解答[Java]
## はじめに
今回は初の5完でしたので、Eまで載せようと思います。では、見ていきましょう。
## A – Anyway Takahashi
問題文は[こちら](https://atcoder.jp/contests/abc269/tasks/abc269_a)問題文そのままですね。
“`A.java
class Main{static Library System = new Library(java.lang.System.in,java.lang.System.out);
public static void main(String[] args)throws IOException{
//各値の受け取り
int a = System.in.nextInt();
int b = System.in.nextInt();
int c = System.in.nextInt();
int d = System.in.nextInt();//計算結果の出力
System.out.println((a+b)*(c-d));
リアルタイムにテクニカル指標を計算する
# はじめに
前記事
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のテスト用モック
複数の分足のテクニカル指標を計算する
はじめに
前記事
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. [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のテスト用モックサー
CalcIndicatorクラスの依存性を切る
# はじめに
前記事
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のテスト用モック
Facadeパターンでの開発
開発の初案件が終わったので、何回かに分けてアウトプットします。
今回はFacadeパターンでの実装の流れについてです。
以下のような前提で開発をしました。
ファイル名やクラス名は実際のものと変えています。## Facadeパターン
複数のクラスが集まってできたプログラムは、様々なクラスのメソッドを呼ぶので処理が複雑になります。
このような場合に処理を依頼する側から見た際に窓口となるファイルを用意するのがFacadeパターン。
Facadeに当たるファイルには実際の処理は書かず、メソッドの呼び出しをメインにします。
今回は携帯電話の支払い履歴を閲覧するような処理を実装しました。
処理としては電話番号とIDで顧客情報照会をした後、顧客情報に紐づく履歴情報を取得するという流れです。
中身の処理は今回は省略します。
WB0_01が窓口となるFacadeにあたり、顧客情報照会をするクラスがClient、履歴情報を取得するクラスがPaymentHistoryとします。![スクリーンショット 2022-09-17 17.35.02.png](https://qiita-image-store.s
【Spring】@Controllerと@RestControllerの違い
@Controllerと@RestContollerの違い(備忘)
@Contorollerは戻り値にHTML(View)を返却するためのアノテーション。
@RestControllerはJSONやXMLを返却するためのアノテーション。
参考
Java 推奨されるnullチェックについて
本日も実務の実装の中で、学んだことがあったので備忘録として書き残しておこうと思います。
人知れず変数の中に入ってしまうnullの対処についてです。
Java歴の浅い方や古いバージョン(8以前)を中心に実装していた方もためになるかと思います。## 僕の知っていたnullチェック
僕が研修などで学んだチェックは一般的な以下でした。“`java
String a = null;
String b = “あいう”;if (a != null) {
System.out.print(a);
} else {
System.out.print(b); //こっちが実行される
}“`
!= または == これで比較してif文の分岐でヌルポで落ちないようにすることしか知りませんでした。
今でもシステム内では結構使われていましたが、、、## 推奨されるnullチェック
nullの考慮ができるメソッドやOptionalを利用することで、nullチェックの数は減るとは思いますが、
どうしてもnullチェックをしたい時があります。
そんな時にjava8以降で推奨される
Python,Ruby,PHP,Java,JavaScript,Perlのファイル・ディレクトリ操作の比較
Python,Ruby,PHP,Java,JavaScript,Perlのファイル・ディレクトリ操作の比較
# Python
https://qiita.com/supersaiakujin/items/12451cd2b8315fe7d054
# Ruby
https://qiita.com/prgseek/items/38f74d99b74baa3b42f7
# PHP
https://qiita.com/daichi87gi/items/111cd922991e4a18d1ef
# Java
https://qiita.com/suema0331/items/03330a663773204afc5f
# JavaScript
https://qiita.com/turmericN/items/28e8bc8fca07285ddffc
# Perl
https://perlz
【Java】コンパイル時にpackage文に関するエラーが出た場合の対処法
## 環境
+ Microsoft Windows 10.0.22000.856
+ PowerShell 7.2.4
+ Java 18.0.2.1## はじめに
Javaのpackage文を使用した際に、コンパイル( `javac Main.java` )で `エラー: シンボルを見つけられません` あるいは `error: cannot find symbol` のようなエラーが出た場合の対処法について説明する。“`:ディレクトリ構成
6-1/(カレントディレクトリ)
├ Kouhan.java(commentパッケージに所属する)
├ Main.java
└ Zenhan.java(commentパッケージに所属する)
“`各ファイルの中身
[『スッキリわかるJava入門 第3版』](https://sukkiri.jp/books/sukkiri_java3)の練習問題6-1のコードを一部引用する。
“`java:Main.java
import comment.Zenhan;public
Javaの文字列操作
Javaの文字列操作に関するメモ書きです
## 文字列調査
### equals
equalsメソッドは2つの値が等しいかを調べるメソッドです。
下記サンプルコードのように、2つの文字列が等しいか判定するのに利用します。“`java
public class Main {
public static void main(String[] args) {
String s1 = “iamcat”;
String s2 = “iamcat”;
String s3 = “IAmCat”;
if (s1.equals(s2)) {
System.out.println(“s1とs2は等しい”);
}
// equalsは大文字と小文字を区別する
if (s1.equals(s3)) {
System.out.println(“s1とs3は等しい”);
}
}
}
“`
実行結果
“`java
s1とs2は等しい
“`
数値の比較では ==演算子 を使用しますが、文字列の比較ではequ
Java:複数のExcelドキュメントをマージする方法
Excelドキュメントを操作する際に、複数のExcelドキュメントを1つのドキュメントにマージするのは非常に実用的な機能です。この機能は、関連ドキュメントを一緒に配置するのに役立ち、後で検索するのに便利です。[Free Spire.XLS for Java](https://jp.e-iceblue.com/introduce/free-spire-excel-for-java.html)は、複数のExcelファイルのマージを簡単に実行するのに役立ちます。具体的な操作の詳細は次のとおりです。
## Spire.XLS.Jarのインストール
方法1:
mavenを使用している場合は、次のコードをプロジェクトのpom.xmlファイルに追加することで、JARファイルをアプリケーションにインポートできます。
“`ruby:qiita.rb
com.e-iceblue
e-iceblue
https://repo.e-icebl
オーバーロードとはなにか〜Java編〜
## オーバーロードとは
オーバーロードとは、クラス内に同じ名前のメソッドを複数定義するときに用いる考え方。
## オーバーロードする時のルールは?
引数の型や引数の数が異なる必要がある。
## 引数の数が異なる場合のオーバーロード(OK)
“`java
public class Practice {//引数の数がaの1つ
public void result(int a){
System.out.println(“int a=”+a);//int a=1
}//引数の数がa,bの2つ
public void result(int a, int b){
System.out.println(“int a=”+a+”,int b=”+b);//int a=2,int b=3
}public static void main(String[] args) {
Practice practice = new Practice();
practi
Gatlingを使って負荷試験をする手順
# 概要
**Gatling**とは、**負荷試験のためのテストツール**です。
社内ツールの負荷試験のために初めて使用したので、インストールからGatling実行結果を確認するまでの手順をまとめました。# インストール
### OpenJDKのインストールGatlingは**Java**でテストシナリオを書いていきます。
以前はScalaのみ対応だったのですが、Gatling 3.7からJava(とKotlin)で書けるようになりました。[Oracle公式サイト](https://www.oracle.com/technetwork/java/javase/downloads/index.html)からJDKをダウンロード、インストールします。
インストール後、以下を実行し、Javaのバージョンが表示されていればインストール完了です。“`
java -version
“`### Gatlingのインストール
Gatling公式サイトからzipパッケージをダウンロードし、解凍します。
コマンドでも取得できます。
“`
// ダウンロード
wget
Python,Ruby,PHP,Java,JavaScript,Perlの文字列連結の比較
Python,Ruby,PHP,Java,JavaScript,Perlの文字列連結の比較
# Python
https://qiita.com/masa2223/items/cf3c4cc104e90d3c40d3
# Ruby
https://qiita.com/Kta-M/items/c7c2fb0b61b11d3a2c48
# PHP
https://qiita.com/horikeso/items/01463f5e17985428055c
# Java
https://qiita.com/supercell1023koeda/items/a548f2bdd811168e7c44
# JavaScript
https://qiita.com/saka212/items/11ce1f1d6316c1fbf15b
# Perl
https://perlzemi.com/bl
Javaのequalsメソッドについて
今日の実務で、実装レビューにて指摘があった箇所を備忘録として残す。
Javaの経験が浅い方や、古いバージョン(8以前)を中心に実装していた方もためになるかと思います。
## Stringクラスのequalsメソッド
Java歴が浅い方や最近学習を始めたという方は、文字列比較のために、Stringクラスのequalsメソッドを基本として学ぶと思います。
(僕も研修や独学時代はこれしか学びませんでしたし、今も癖で使ってしまいます。)Stringクラスのequalsメソッドは、比較する文字列が同値であるかどうかを判定してくれます。
なので、参照先が異なっていたとしてもtrueを返却してくれます。
“`java
String a = “あいう”;
String b = “あいう”;
String c = new String(“あいう”);System.out.print(a.equals(b));//true
System.out.print(a.equals(c));//true
“`(余談:実はObjectクラスのequalsメソッドをSt
MediatorLiveDataでNullPointerExceptionが出たときの対処法
### はじめに
以下のエラーが出た。> at androidx.databinding.ViewDataBinding.updateRegistration(ViewDataBinding.java:653)
“`java:ActivityMainBindingImpl.java
if (vModel != null) {
// read vModel.isNetworkError
vModelIsNetworkError = vModel.isNetworkError();
}
pdateLiveDataRegistration(0, vModelIsNetworkError); //この行で上記のエラー
“`>Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘void androidx.lifecycle.LiveData.observeForever(androidx.lifecycle.Observer)’ on a null object
Python,Ruby,PHP,Java,JavaScript,Perlの四則演算の比較
Python,Ruby,PHP,Java,JavaScript,Perlの四則演算の比較
# Python
https://qiita.com/hiroyuki_mrp/items/d7e4c2d75e947ab99caf
# Ruby
https://qiita.com/mat827/items/ee569f6549b83bb954e2
# PHP
https://qiita.com/koala_56/items/7ed631f62cf0f225f5a6
# Java
https://qiita.com/takahirocook/items/748990882f2de7a630a1
# JavaScript
https://qiita.com/_haya_/items/dbe80010a0a8ac9d70b1
# Perl
https://perlzemi.com/blog/
インクリメント演算子の前置と後置について
# インクリメント演算子の前置と後置の違い
javaシルバーの資格勉強をしていた際、インクリメント演算子が前と後ろに置かれているものがあり、「どっちだったかな〜」とど忘れしたので、その備忘録として。
# 前置のインクリメント
“`
++i
“`
このようなもの。# 後置のインクリメント
“`
i++
“`
このようなもの# どう違うのか
簡単にいってしまうと、評価されるタイミングが違う。
前置インクリメントの例
“`
int num=0;System.out.println(++num);
//1が表示される
“`
先にnum=0にプラス1してから(評価してから)表示させている。続いて後置インクリメントの例
“`
int num=0;System.out.println(num++); //0が表示
System.out.println(num); //1が表示
“`
1回目のSysoutでは後置インクリメントなので、一旦変数numの値を表示してから、プラス1をしている。
2回目のSysoutでは、1回目でプラス1した値(