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

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

Javaの学習 ~識別子~

### 識別子とは
変数やメソッド、クラスなどの名前のことを識別子と呼びます。
識別子の命名規則は、以下の3つです。

①予約語を識別子として使うことはできない
②使える記号はアンダースコア「_」と通貨記号(主に「¥」)のみ
③数字から始めてはいけない

##### 予約語
予約語(キーワードとも呼ばれる)とは、プログラムの文を表現するためにあらかじめ用途が決められている単語のことを言います。
例えば、データ型を表現する「int」や「char」、繰返し等の構文に使用する「for」や「if」は予約後にあたり、識別子として命名することができません。
ただし、予約語単体ではなく、「intA」のように別の文字と組み合わせたりすることで使用可能にはなりますが、推奨はされません。

元記事を表示

マージしたチャートデータからテクニカル指標を計算する(DMI編)

# はじめに

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

元記事を表示

Javaの学習 ~リテラル~

### リテラルとは
ソースコード中に記述する値のことです。
Javaには整数、浮動小数点数、真偽、文字の4つのリテラルがあります。
それぞれのデフォルトは、
整数→int
浮動小数点数→double
真偽→boolean
文字→char
となっています。

### 整数リテラル
##### long型
デフォルトの`int`ではなく`long`として扱いたい場合は、整数の末尾に「L」か「l」を付けます。
“`java
long l = 12345L;
“`
##### 2進数・8進数・16進数
10進数以外にも、2進数・8進数・16進数で記述することができます。

2進数・・・「0b」が接頭辞。
“`java
int a = 0b1000001011;
“`
8進数・・・「0」が接頭辞。
“`java
int b = 0413;
“`
16進数・・・「0x」が接頭辞。
“`java
int c = 0x10B;
“`
##### アンダースコア「_」
桁数の多い数値リテラルを見やすくするため、アンダースコアを使った表記がJava 7から導入されました。

アンダースコ

元記事を表示

Optionalについてメモ

## Optionalについて
java8で追加されたクラス。
値をラップしてくれて、nullチェックやnull制御をしてくれる。
これにより、`NullPointerException`の心配もなくなる。
## 使用できるメソッド
以下サイトを参照するのがおすすめ↓

[今更まとめるJava Optional](https://zenn.dev/ayumukob/articles/552d0c7b544838)
[クラス java.util.Optionalのおさらいメモ](https://qiita.com/rubytomato@github/items/92ac7944c830e54aa03d)
## まとめ
`Optional`は今後、使用する機会が増えるクラスではないかと思うので、より理解を深めていきたいです。

Optionalについて(基礎)の参考サイト
→[JavaのOptionaとは?使い方をパターン別にわかりやすく解説](https://www.sejuku.net/blog/60892)

元記事を表示

【SpringBoot】開発環境作成(Jenkins自動デプロイ)

SpringBootの開発環境作成4回目です。
今回はJenkins自動デプロイします。
Jenkinsデプロイ完了後記事書いてるので、もしかすると抜けている部分があるかもしれませんがご了承ください。

## 作成内容
[①Springプロジェクト作成](https://qiita.com/nmaolks/items/ac3860d78822d52bb81c)
[②BitBucketプッシュ](https://qiita.com/nmaolks/items/43dc670b6184d643c0b1)
③VPSにデプロイ
**④Jenkins自動デプロイ**

## 処理の流れ
①Jenkinsインストール
②Jenkins初期設定
③Jenkins SSH設定
④BitBucket設定
⑤Jenkinsジョブ作成

## Jenkinsインストール
前提としてJavaをインストール必要があります。
Javaのバージョン確認します。
`java -version`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

【Java】初心者による初心者のためのstaticのしくみ解説

# はじめに
こんにちは。
staticがよく分からない人です。なのでstaticの勉強をしました。
「staticってなにがどうなってるの!」と感じている方に向けて、そのしくみについて解説していこうと思います。
# 動作環境
OS:Windows10 バージョン20H2
言語:Java 8
使用エディタ:Spring Tool Suite 4

# 1. staticとは?
“`Main.java
public static void main(String[] args){}
“`
staticとは変数やメソッドにつける修飾子のことです。
Java使用者なら必ず見るであろう、処理を始めるためのエントリーポイントについている、**あれ**です。

staticを修飾した変数とメソッドは「**クラスのインスタンスを生成しなくても呼び出すことが出来る**」という特徴があります。

ホントかどうかは試してみないとわからないので試してみましょう。

“`Main.java
class Test {
static int staticNum = 0;
int num = 0;
}

元記事を表示

ByteBufferの単体試験で末尾の0Byte部分を無視する

## これは何?
* `java.nio.ByteBuffer`を用いてString生成する処理にて、部品化したクラスの単体テストで困ったことの解決

## 困りごと

“`NG.kt
@Test
fun hoge() {
val byteBuffer = ByteBuffer.allocate(5) //Byte範囲割り当て
byteBuffer.put(“あ”.toByteArray()) //ByteArray追加
byteBuffer.flip()
assertEquals(“あ”,String(byteBuffer.array())) //これでいけると思ったのだが…
}
“`

↓を参考に、ByteBuffer->ByteArray->Stringの順で変換すればassertできるのでは?と思って書いたところ、テスト失敗しました。

Java で ByteBuffer を String に変換する

![スクリーンショット 2022-08-11 0.18.32.png](ht

元記事を表示

Javaの学習 ~データ型~

Javaのデータ型には、プリミティブ型と参照型の2つがあります。
データ型・・・データの種類を表すもの。コンピュータにデータの扱い方を指定するために記述する。

### プリミティブ型
数値、真偽値、文字を扱うデータ型です。基本型とも呼ばれます。
| 整数型 | |
| —- | —- |
| byte | 8ビット整数(-128~127) |
| short | 16ビット整数(-32768~32767) |
| int | 32ビット整数(-2147483648~2147483647) |
| long | 64ビット整数(-9223372036854775808~9223372036854775807)

| 論理型 | |
| —- | —- |
| boolean | 真偽値(true/false) |

↑※C言語と違い、「bool」ではなく「boolean」であることに注意!

| 浮動小数点数型 | |
| —- | —- |
| float | 32ビット単精度浮動小数点

元記事を表示

多重ループからの脱出(continueとbreakの違い)

# はじめに
ネストされたfor文の中でcontinueとbreakの挙動の違いを整理しました。
JavaScriptで記載していますが、Javaでも同様に記載できます。

# 目次
[1. サンプル](#1-サンプル)
[2. continue](#2-continue)
[3. break](#3-break)
[4. さらに深いループ](#4-さらに深いループ)
[5. ラベルを使用したcontinue](#5-ラベルを使用したcontinue)
[6. ラベルを使用したbreak](#6-ラベルを使用したbreak)
[7. まとめ](#7-まとめ)

# 1. サンプル
次のような簡単な配列の多重ループを例にします。
“`js
const loopA = [1, 2];
const loopB = [1, 2, 3];

for (const a of loopA) {
for (const b of loopB) {
console.log(`A${a}-B${b}`);
}
}

// 出力結果↓↓
// A1-B1
// A1-B2
/

元記事を表示

マージしたチャートデータからテクニカル指標を計算する(Pivot編)

# はじめに

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

元記事を表示

Spring Boot REST Controller でNot Found 404エラーの対処

## 概要
何となくRest Controllerを実装したところ、思わぬところでエラーが発生した。アノテーションでパスの指定方法を誤っていたため、下記に記載するコードの通り修正を行った。

## エラー内容

**Whitelabel Error Page**
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Tue Aug 09 23:41:23 JST 2022
There was an unexpected error (type=Not Found, status=404).
No message available

## エラー発生時
“`java
package com.example.demo.app.api;
import com.example.demo.repository.ZooDao;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.f

元記事を表示

オセロをJavaで簡易的に記述した

## はじめに
超簡易的なので、プレイヤーは先攻のみです。
また、作ったNPCはweb上で無料でできるオセロの初級に負けます。クソ雑魚です。
何か間違っているんでしょうけどちょっと私にはわからなかったので、是非改良してください。

## ざっくりとした説明
まずは、作ったクラスについて説明していきます。

#### Othelloクラス
オセロの盤面の生成やひっくり返すメソッド、指定された場所に置けるか判定するメソッドなどをこのクラスに記述しました。
なお、Othelloクラスのmainメソッドに入力の受け取りなどを記述してあるので`java Othello`で実行ができます。

#### AIクラス
NPC用のクラスです。Othelloクラスから今の状況を表すオブジェクト(Othelloクラス)を渡して、それを元に置く場所を決めてOthelloクラスのメソッドを呼び出します。
今はランダムに選ぶNPC1、今置ける場所で一番ひっくり返せる手を選ぶNPC2、盤面に優先順位を付けてそれを元に選ぶNPC3、相手がNPC3だったときに一番最善手を選ぶNPC4を実装してあります。弱いのは多分盤面

元記事を表示

ReactNativeでスクリーンショットを禁止する

詳細については後ほど記載していく。
先に結論のみ。

## iOS
1)スクリーンショット禁止処理を実装(UIViewやUIWindowのExtention)
2)AppDelegate.mや任意の処理で呼び出し
[参考](https://stackoverflow.com/questions/18680028/prevent-screen-capture-in-an-ios-app)
“`swift
extension UIWindow {
func makeSecure() {
let field = UITextField()
field.isSecureTextEntry = true
self.addSubview(field)
field.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
field.centerXAnchor.constraint(equalTo: self.centerXAnc

元記事を表示

Javaの学習 ~javaコマンド~

### javaコマンドとは
javaプログラムを実行するためのコマンド。
javaコマンドで実行できるものは、

①mainメソッドを持つクラスファイル
②jarファイル内のメインクラス
③モジュールに含まれるメインクラス

の3つです。

※jarファイルとは・・・javaファイルを圧縮した、拡張子が「.jar」のファイルのこと。
※モジュールとは・・・クラスを束ねるパッケージをさらに束ねるもの。

### javaコマンドの構文
クラス名の後に続く引数は、「起動パラメータ」や「コマンドライン引数」と呼ばれます。
“`
//引数は必要な時のみ指定する
$java 完全修飾クラス名 引数
“`
(例)
“`
//下記のPracticeクラスを実行
$java Practice

//結果
練習
“`

“`java
public class Practice {
public static void main(String[] args) {
System.out.println(“練習”);
}
}
“`
### ソースファイルモード
J

元記事を表示

ABC263A~Dの解答[Java]

## はじめに
A~Cはコンテスト中に、Dは解説を見て解きました。Dまで解きたかったな・・・。

では、見ていきましょう。

## A – Full House
問題文は[こちら](https://atcoder.jp/contests/abc263/tasks/abc263_a)

A~Eをそれぞれ見ていっても良いですが、ソートして参照した方がなんとなく楽かなと思いました。
A~Eを配列に入れてソートし、card[0]==card[1]かつcard[3]==card[4]を満たしていて、かつcard[2]がcard[1]かcard[3]と等しければフルハウスになります(全部同じケースは無いと制約にあるのでこれで良い)。

“`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{

//A~Eを格納&ソート
i

元記事を表示

拡張for文ってわかりにくいよね

拡張for文って見た感じ意味が分らない(for文の方がわかりやすい)、謎いからよく分からないまま放置していました。重い腰を上げ、学習したらなんとなく理解できたっぽいです。備忘録として残します。

## 拡張for文とは
配列を取り出すためだけに生まれた、そんな存在。
配列の個体たちを1つずつ取り出したら、自動的に繰り返し処理を終了する。

## 構文
~~~Java
for( データ型 一時変数 : 集合 ){
繰り返し処理
}
~~~

一時変数=繰り返している間だけ使用する変数
集合=値を取り出したい配列

## コード例
~~~Java:拡張for文
public class kakuchoFor {
public static void main(String[] args) {
int[] arry ={10,20,30};
for (int i : arry) {
System.out.println(i);
}
}
~~~
~~~:実行結果
10
20

元記事を表示

とりあえず、JavaからKotlinへの一歩

# 背景
最近Springをやる機会あり、Kotlinをやりました。
Javaよりかなり便利ですと実感しましたので、自分みたいな人にCheatSheetみたいなメモを共有できたらいいかと思います。

# ログ
– Java
“`java
System.out.print(“Hello World!”);
System.out.println(“Hello World!”);
“`
– Kotlin
“`kotlin
print(“Hello World!”)
println(“Hello World!”)
“`
# 変数と定数
– Java
“`java
String name = “これは変数”;
final String name = “これは定数”;
“`
– Kotlin
“`kotlin
var name = “これは変数”
val name = “これは定数”
“`
# 空判定
– Java
“`java
// その他、isNullとかの関数も使える
if (text != null) {
int length = text.length();
}

元記事を表示

ThymeleafからJavaのstaticメソッド等を呼び出す

こんな感じ
“`html
< th:block th:text="#{${T(com.example.Hoge).fuga()}}" />
“`

元記事を表示

SAP Cloud SDKを使った開発

この記事は [chillSAP 夏の自由研究2022](https://note.com/chillsap/n/n62740563aee0) 8/8の記事として執筆しています

# はじめに
SAP BTP上でUI5のApplicationを作成時、DBへの登録処理等でサーバサイドのアプリケーションの開発も必要になることが多いかと思います。特にJavaのアプリケーションを開発する際に便利なSAP Cloud SDK等、Javaのライブラリについて一部紹介させていただきます。

# ログインユーザの情報を取得
IAS(Identity Authentication Service) でユーザ管理をし、IAS上で管理されているユーザID、メールアドレス、従業員番号等を
サーバサイドのJavaアプリケーションで取得する場合に、com.sap.cloud.security.xsuaaのライブラリを使用し、Tokenから情報を取得することができます。

#### pom.xmlへの記載例

“`

com.sap.cloud.security

元記事を表示

Javaの学習 ~エントリーポイント~

### エントリーポイントとは
複数のメソッドが定義されている際に、どのメソッドから処理を始めるべきか決まっていなければいけません。
エントリーポイントとは、その一番最初に処理をするメソッドのことです。

### エントリーポイントのメソッドの定義
定義方法は、よく見かける下記のコードです!
※「args」は変数名の宣言にあたる為、別の名前に変更可能。
“`java
public static void main(String[] args) {

}
“`
### エントリーポイントのルール
・publicであること
・staticであること(インスタンスを作らなくてもよい)
・voidであること(戻り値は戻せない)
・メソッド名がmainであること
・引数はString配列型であること(可変長引数のString型でもよい)

こんなに細かくルールがあるからいつも同じ書き方なんですね…

##### 可変長引数のString型とは
可変長引数とは、引数の数が決まっていない引数のこと。
“`java
public static void main(String… args

元記事を表示

OTHERカテゴリの最新記事