JAVA関連のことを調べてみた2021年09月14日

JAVA関連のことを調べてみた2021年09月14日
目次

[paiza]スキルチェック見本問題 Java 数値演算結果で分岐/ 0 が含まれていないか判定 return sc.closeとは

初めに

今回もpaizaの見本問題(ランクD)に2問挑戦しました。
新たに、「return」 「sc.close」について学べましたので、
まとめていきます。(記事の後半)

易:relaxed:数値演算結果で分岐 (paizaランク D 相当)

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__simple_step3

“`
整数 A, B, C が与えられます。
式 A × B ≦ C が成立している場合はYESを、
そうではない場合はNOを出力してください。
“`

解答コード

“`java:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b

元記事を表示

inheritdocを調査する

# はじめに

[Visual Studio 2019 version 16.4 Release Notes](https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes-v16.4) によると, 継承関係にあるクラスやメソッドには, 親のコメントを引き継いでクイック情報窓に表示するようになりました. `inheritdoc`タグで明示することもできます. `inheritdoc`タグを明示した場合, 警告CS1591は出力されません.
また, 16.4より前のリリースと出力されるXMLドキュメントは変わりません. いつからかはわかりませんが, `inheritdoc`タグの補完がされるようになりました (Visual Studio 2017では候補にでない).

**ここから, コメントからドキュメントを生成することに興味のない方には関係がありません.**

`inheritdoc`タグに対応, だけ見て”16.4より前だから対応していないらしい, コメントもそのままコピーしよう”, とならない

元記事を表示

[Java基礎⑦]文字列の比較 比較演算子とequals メソッドの違い [paiza]スキルチェック見本問題 単純な条件分岐 Java編

初めに

今回、以下の問題に挑戦し、Javaでの文字列と文字列の比較について学びました。
普通に比較演算子を使用したところ不正解になってしまいました。
(以下は見本問題のため、問題、解答コードの公開は自由です。)

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__simple_step1

“`
文字列Sが与えられます。Sがpaizaと一致する場合はYESを、
一致しない場合はNOを出力してください。
“`

誤答 :point_up:文字列の比較演算子に注意!

標準入力をlineで受け取り、==の比較演算子を使い、
“paiza”と一致するかをif文で条件分岐させました。
しかしこれだと不正解です。
(line == “paiza”)が成立してくれません。

“`java:
import java.util.*;
public class Main {
public static void main(String[] args) {

元記事を表示

javaでCUIオセロの制作

#はじめに
javaを勉強する目的で制作してみました。いくつかのサイトを参考にしましたが、裏返すロジックの部分やmainメソッド内など自分で考えた部分が多いので、バグや不都合があるかもしれないです。
#ゲームの流れ
実行するとオセロが開始します。縦列、横列の順番で1~8までの整数を入力していきます。盤上の有効なマスに置くと白と黒のターンが変わり再び入力になります。すべてのマスに駒が置かれるか、白黒どちらか一色になった時点で勝敗を表示します。

![スクリーンショット (24).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685795/f3b9506b-6880-65ac-63af-a4e91e9b080c.png)
![スクリーンショット (23).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685795/1c1b14ba-8ef7-9540-2d49-7642e207261a.png)

#コード
##実行クラ

元記事を表示

転職活動管理アプリを作ろう③(ログイン実装チュートリアル~テーブル定義)

前回は [コチラ](https://qiita.com/soso555/items/b04f0fc80956da472078)
※ 2021/09/13 時点で未完

# ログインを実装してみよう
– 以下チュートリアルを行う

https://spring.pleiades.io/guides/gs/securing-web/

– 上記チュートリアルだとインメモリにアカウントレコードを登録し、そのレコードに対し認証を行う
– MySQL を使用するように設定変更を行う
– 設定変更をして動作確認ができるように、テーブル定義だけ先に行うことにした

# テーブル定義
– 各テーブルについて所管を記述する
– 実際のテーブル定義書については後ほど公開するかも
– __(少しずつ追記していきます)__

## アカウント情報
– テーブル名は「Account」
– “`spring-boot-starter-security“` が提供してくれるアカウント情報テーブル(= User テーブル)の初期スキーマは以下
– username:String

元記事を表示

[paiza]スキルチェック見本問題 Java Fizz Buzz (paizaランク C 相当)

初めに

今回スキルアップチェック見本問題CのFizz Buzzに挑戦しました。
見本問題のため、問題の掲載、解答の掲載は自由です。

https://paiza.jp/works/mondai/skillcheck_sample/fizz-buzz

“`
整数 N が入力として与えられます。

1からNまでの整数を1から順に表示してください。

ただし、表示しようとしている数値が、

・3の倍数かつ5の倍数のときには、”Fizz Buzz”
・3の倍数のときには、”Fizz”
・5の倍数のときには、”Buzz”

を数値の代わりに表示してください。
“`

解答コード

“`java:
import java.util.*;

public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let’s チャレンジ!!
Scanner sc = new Scanner(System.in);

元記事を表示

Spring Boot ActuatorをKubernetesのProbeとして使う

# やりたいこと
Spring Bootアプリをコンテナ化してKubernetes上で動かす際、Spring Boot ActuatorをKubernetesのProbeで指定したい。

確認した環境は次のとおりです。

– Spring Boot 2.4.10および2.5.4
– AdoptOpenJDK 16.0.1
– macOS Big Sur 11.5.2

# そもそもProbeって何?
Probeとは、KubernetesがPod内のコンテナを監視するための機能です。

Probeには下記の3種類があります。

| 名前 | 説明 | Probeに失敗した場合の処理 |
|—–|—–|————————|
| Startup Probe | コンテナの起動処理が完了したかどうかを判定する。Startup Probe成功が確認できた後、以降のProbeが実行される。 | コンテナが再起動される |
| Liveness Probe | コンテナが再起動が必要かを判定する。 | コンテナが再起動される |
| Readinesss P

元記事を表示

Couchbase Server Java SDK解説:エラー処理の応用

## はじめに

ここでは、下記の記事の続編として、Couchbase Server Java SDKにおける、例外処理の応用を整理します。

https://qiita.com/yoshiyuki_kono/items/f5562565604433d51c13

## エラー処理の応用

### RetryStrategyとRetryReasons

`RetryStrategy`は、`RetryReason`に基づいて、リクエストを再試行するかどうかを決定します。デフォルトでは、SDKには`BestEffortRetryStrategy`が付属しており、再試行可能なエラーが発生すると、成功するかタイムアウトが期限切れになるまでリクエストを再試行します。

SDK 2のには、アプリケーションでの使用を目的とした`FailFastRetryStrategy`が付属しています。
SDK 3にも同梱されていますが、`@Internal`としてマークされています。
`RetryStrategy`のカスタマイズの説明に従って、`BestEffortRetryStrategy`を拡張およびカス

元記事を表示

[備忘録]STSの起動ができなったときの対処法

##目的
読書記録のアプリケーションを作成しようとSTSで新規プロジェクトを立ち上げたが、アプリケーションの起動ができなかった。
すぐに解決ができずにいたため、その対処法を備忘録として残したい。

*エラー文*
[selection does not contain a main type]

##結果
結論:HelloWorldApplication.javaを誤って消してしまっていた。

SpringBootで開発したアプリケーションを起動するクラスを削除していたため、起動ができなかった。

内容は以下の通り。

“`HelloWorldApplication.java
package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloWorldApplication

元記事を表示

【AtCoder】JavaとCOBOLで解き比べ。

こんばんは。

AtcoderをCOBOLで解く人は少ないようです。
自分はAtCoderの成績は全く振るいませんが、一応COBOL歴10年ちょいですので、解いてみました。久々にCOBOLを書くと、文法(IF文の構成)やお作法(8カラム目からじゃないと記述できない)を結構忘れており苦戦しました。プログラムを読むと書くとではやはり違うと実感しました。
でも自分の母国語だと思っているCOBOLで解くのは楽しかったです。

Atcoder ABC-215のA問題を使用しました。
※少ないですが、COBOLで解いている方も数人はいらっしゃるようです。
 ただ、A問題は数人ですが、B,Cになると0人のようです。本格的な数学問題だと難しいのでしょうか。

###COBOL

“`COBOL
PROGRAM-ID. Main.
DATA DIVISION.
WORKING-STORAGE SECTION.

元記事を表示

【初心者】Javaのデータ型

# はじめに

Javaのデータ型と演算子についての備忘です。

# 1. Javaのデータ型

`基本データ型`と`ラッパークラス`、あわせて関連するメソッドについてまとめておきます。

## 1-1. データ型一覧

Javaで用意されている`基本データ型`は次のようになります。
なお、最後の`String`だけはデータ型ではなく、クラスオブジェクトとなります。

|基本データ型|種類|サイズ|扱える範囲|ラッパークラス|
|—|—|—|—|—|
|byte|(整数型)|1byte|-128 ~ 127|Byte|
|short|短整数型|2byte|-32,768 ~ 32,767|Short|
|int|整数型|4byte|-2,147,483,648 ~ 2,147,483,647|Integer|
|long|長整数型|8byte|-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807|Long|
|float|単精度浮動小数点数型|4byte|有効桁数6桁の実数|Float|
|double|倍精度

元記事を表示

【俺的】COBOL→Java言語移行ガイド(全体構造編)

## 検証環境
|COBOL|Java|
|:—:|:—:|
|cobc (GnuCOBOL) 3.1.2.0|java 14.0.1 2020-04-14|

## はじめに
[前回の記事](https://qiita.com/zama_8722/items/2e9f82a77c9bebfe12a8)では、「なぜマイグレーションが進んでいるのか」「マイグレーションのいいところと課題点」を見ていきました。今回はCOBOLとJavaで、「全体的な書き方でどう変わってくるのか」を書いていこうと思います。

### 閲覧してほしい方
* これからCOBOLからオープン系へのマイグレーションに従事する方
* COBOLとJavaの言語的違いを知っておきたい方
* COBOL習熟者で、将来オープン言語を触らなければならないがわからない方

COBOL未経験でマイグレーションされる方や、これからCOBOLエンジニアからJavaエンジニアに移る方の駆け出し資料として参考になれば幸いです。

## 全体構造の比較
まずはCOBOLの全体構造、Javaの全体構造(main)を見てみます。

__

元記事を表示

Application Insights2.xでSpring Bootを可視化する

# Application Insights2.xとSpring Boot

APMとしてApplication Insights2.xを使い、Spring Bootの稼働状態を可視化する方法について解説します。
Application Insightは3.xがすでに出ていますが、正直2.xの方が使い勝手がいいです…

# エージェントと設定ファイルの用意

以下の2つのファイルを準備します。

* applicationinsights-agent-2.6.3.jar
* AI-Agent.xml

applicationinsights-agent-2.6.3.jarは以下からダウンロードします。

https://github.com/microsoft/ApplicationInsights-Java/releases/tag/2.6.3

**AI-Agent.xml**

“`xml



<

元記事を表示

AvastによってSpring Bootのjarファイルが消滅する現象

#事象
java(OpenJDK11)コマンドでSpring Boot(v2.5.4)のjarファイルを実行すると、一定時間の後にプロセスが停止してjarファイルが消滅する。
Spring Bootが正しく起動しなければ(例えばクラスパスが不足しているとか、メインメソッドでSpringApplicationを実行しないとか)、これは発生しない。

#原因
avastのファイルシールド(メインシールド)が断りも無く削除していた。メインシールドを切るか、例外ディレクトリに作業ディレクトリを追加すると事象は発生しなくなった。

—-
Spring Bootが正しく起動しないと発生しないのでSpring Boot側の問題かとも思ったが、もちろんそんなことは無かった。消す時に確認するモードにしているはずなんだが、勝手に消されてしまうようだ。

元記事を表示

(JAVA勉強用メモ)3. 演算子・判定構造

## 数値リテラルの型変換
大きな範囲の値を小さな変数に代入するときは、明示的なキャストが必要。
(数値リテラルはデフォルトで特定の型をもっており、整数は`int`型、小数は`double`型が使用される。)

“`java
int i = 10;
short a = (short)i; //『大』を『小』に代入

long l = 10L;
int b = (int)l; //『大』を『小』に代入

double d = 10.0;
float c = (float)d; //『大』を『小』に代入

long d = 10; //『小』を『大』に代入するのは問題ない
“`

ただし、`byte`型や`short`型に整数リテラルを代入する場合、
その値が型の範囲に収まるのであればエラーは発生しない。

“`java
byte a = 127; //『大』を『小』に代入しているが、127はbyte型の範囲内なのでOK
byte b = 128; // 128はbyte型の範囲外なのでNG(コンパイルエラー)
byte c = (byte)128; // 型の範囲外でも、キャストし

元記事を表示

Spring Boot + Excel Upload + CSV出力

#PostmanでエクセルをPOSTし、Spring側でCSV出力

末尾の参考サイトのソースをもとに、PostmanでExcelをPOSTし、受信側(spring boot)でCSVライブラリの「OrangeSignal CSV」を利用してCSV出力した。
CSVのヘッダに日本語の列名を指定するところで物凄くつまったので、サンプルソースを記載する。

“`java
@Service
public class ExcelService {
@Autowired TutorialRepository repository;
public void save(MultipartFile file) {
try {
List tutorials = ExcelHelper.excelToTutorials(file.getInputStream());
repository.saveAll(tutorials);
// 区切り文字と囲み文字、エスケープ文字を指定して CSV 形式設定情報を構築
CsvCon

元記事を表示

NDK at /Users/user.name/Library/Android/sdk/ndk/XX.X.XXXXX did not have a source.properties file エラーが発生する

# やりたいこと
Androidアプリをビルドしたい。

“`
./gradlew build
“`

# エラー文
以下のエラーが発生。

“`
❯ ./gradlew build

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ‘:renderscript-toolkit’.
> com.android.builder.errors.EvalIssueException: NDK at /Users/user.name/Library/Android/sdk/ndk/21.3.6528147 did not have a source.properties file

* Try:
Run with –stacktrace option to get the stack trace. Run with –info or –debug

元記事を表示

Java Silver 5章 クラス定義とオブジェクトの生成・使用

#クラスとインスタンス
###クラスの宣言
【装飾子】 class クラス名 {}
 コンパイラして作成されるクラスファイルは定義したクラス名が付く
 インスタンス化して初めてメモリ領域が確保される
###メンバの宣言
メンバはクラス、またはオブジェクトが持つ変数、メソッドを指す
![スキャン 2021-09-09 8.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601137/4a2ad372-6e91-ec6e-af4f-97332e896d0c.png)

メンバ変数の種類
・インスタンス変数:オブジェクト毎に存在する変数
・static変数   :クラスに対して存在する変数

**インスタンス変数の宣言**
【装飾子】 データ型 インスタンス変数名;

**メソッドの定義**
【修飾子】戻り値の型 メソッド名(引数リスト){}

###インスタンス化

データ型 変数名 = new クラス名();

左辺で変数を宣言(変数はあくまで参照先を示すだけの参照型データ)
右辺で参照先である

元記事を表示

LINE BOT APIのreplyMessageでたまにInvalid reply tokenが発生する

## 概要
[line-bot-sdk-java](https://github.com/line/line-bot-sdk-java)を使ってLINE BOTを作ったが、たまにInvalid reply tokenが発生し返信できないことがある。

この記事ではJavaの場合の解決方法を書くが、他の言語でも原因は同じである。
ちなみに、Herokuの無料hobbyブランを使っている。

## エラー内容

> ERROR 4 — [io-33152-exec-3] c.l.b.s.b.s.LineMessageHandlerSupport : InvocationTargetException occurred.
Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: com.linecorp.bot.client.exception.BadRequestException: Invalid reply token : ErrorResponse(requestId=xx

元記事を表示

[Kotlin/Java] KotlinのデータクラスをJava で利用するには

## 記事でわかること
KotlinとJavaが併存するプロジェクトでJavaのクラス内でKotlinのデータクラスを利用する方法を記載します。

## 背景
現在関わっているサーバーサイドのプロジェクトではJavaからKotlinへの移行を行っています。
新規クラスはKotlinで記述することで少しずつKotlinへの移行を進めています。

その際にKotlinのデータクラスをJavaから呼び出す際にどうすればいいのだろうと少し迷ったので、備忘のために記載します。

## JavaでKotlinのデータクラスを利用するには
結論から言うと Kotlinのクラスを利用側のJavaクラスでimportして、普通に`new`することで利用できます。

“`kotlin
data class User(
val id: Int,
val name: String,
val mailAddress: String
)
“`

例えば、上記のKotlinのデータクラスをJavaで利用する場合には下記のように記述します。

“`java
import User;
public User c

元記事を表示

OTHERカテゴリの最新記事