- 1. Couchbase Server Java SDK解説:エラー処理の応用
- 2. [備忘録]STSの起動ができなったときの対処法
- 3. 【AtCoder】JavaとCOBOLで解き比べ。
- 4. 【初心者】Javaのデータ型
- 5. 【俺的】COBOL→Java言語移行ガイド(全体構造編)
- 6. Application Insights2.xでSpring Bootを可視化する
- 7. AvastによってSpring Bootのjarファイルが消滅する現象
- 8. (JAVA勉強用メモ)3. 演算子・判定構造
- 9. Spring Boot + Excel Upload + CSV出力
- 10. NDK at /Users/user.name/Library/Android/sdk/ndk/XX.X.XXXXX did not have a source.properties file エラーが発生する
- 11. Java Silver 5章 クラス定義とオブジェクトの生成・使用
- 12. LINE BOT APIのreplyMessageでたまにInvalid reply tokenが発生する
- 13. [Kotlin/Java] KotlinのデータクラスをJava で利用するには
- 14. (JAVA勉強用メモ)2. データ型と文字列操作
- 15. java swingでテトリス作ってみた(外部ライブラリなし)
- 16. (JAVA勉強用メモ)1. JAVAの基礎基本
- 17. 【JSON】jackson で JSON化したくないプロパティをプログラムで設定
- 18. Springbootでhelloworldを表示(InteliJ利用)
- 19. [備忘録]バッチ処理的なものを作成
- 20. [Java] Long型とlong型の比較メモ
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.xmlapplicationinsights-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 {
Listtutorials = 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 buildFAILURE: 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
(JAVA勉強用メモ)2. データ型と文字列操作
## リテラル
### 真偽値
– boolean### 文字
– char“`java
char a = ‘a’; // 文字は”
String b = “a”; // 文字列は””char c = ‘\u30A2’; // Unicode(『\u』+『16進数4桁』)
char d = 65; // 0 ~ 65535の数値
“`### 整数
– byte … 8ビット
– short … 16ビット
– int … 32ビット
– long … 64ビット“`java
int a = 0b10010; // 2進数
int b = 0320560; // 8進数
int c = 0x10b2c; // 16進数int d = 123_456_789; // 桁区切りの_(アンダースコア)は、先頭・末尾・記号の前後以外で使用できる
“`### 小数
– float … 32ビット
– double … 64ビット## 識別子
変数やメソッド、クラスなどの名前– 予約語は識別子に使えない
– 使える記号は『_』(ア
java swingでテトリス作ってみた(外部ライブラリなし)
javaを初めて約半年なので、何か作ってみたいなーと思い作りました。
……テトリスとして最低限の機能しかないけど初心者なので多少はね?
コードも見れなくはないと思いたい。java version 16
外部ライブラリは使ってないのでそのまま使えると思います。https://github.com/o7r/Tetris.git
(JAVA勉強用メモ)1. JAVAの基礎基本
## パッケージ
クラスなどの名称が重複して、予期せぬ不具合が発生することを防ぐための仕組み。使用目的は3つ– 名前空間を提供して、名前が重複することを防ぐ
– アクセス修飾子と組み合わせてアクセス制御機能を提供する
– クラスを分類する“`java
package sample; // package宣言はソースコードの先頭行に書くimport aaa.*
public class Test { }
“`## javaコマンド
javaコマンドで実行できるのは次の3つ– mainメソッドをもつクラスファイル(.class)
– jarファイル(.jar)内のメインクラス
– モジュールに含まれるメインクラス“`bash
$ java Main
“`## ソースファイルモード
javacコマンドでのコンパイルなしでソースファイルを直接実行できる。(Java SE 11以降)
※メモリ上でコンパイル後のコードを扱っており、コンパイル自体を行っていないわけではない。“`bash
$ java Sample.java
“`
【JSON】jackson で JSON化したくないプロパティをプログラムで設定
## まえがき
・Jackson を使ってオブジェクトを JSON 形式に変換
・アノテーションを使わない(使えない)場合
・具体的には “beanClass” を除外したかった## 環境
Java 8
jackson 2.6## ObjectMapper で設定
“`sample.java
ObjectMapper mapper = new ObjectMapper()
// … 設定
mapper.setAnnotationIntrospector(new JacksonAnnotationIntrospector() {
private static final long serialVersionUID = -1L; // <- 適宜設定 @Override public boolean hasIgnoreMarker(final AnnotatedMember m) { Listexclusions = Arrays.asList(“beanClass”);
return exclu
Springbootでhelloworldを表示(InteliJ利用)
私はプログラミングの勉強を始めてまだ1週間も経ちませんが、メモがわりに投稿します。
少し長い説明になってますが、飛ばしているようなステップは無く、下記の通りにやればできるはずだと思います。対象読者:
* Javaの超初心者(1ヶ月以内)
* コードの内容は分からないが、とりあえずブラウザ上に「HelloWorld」を表示させてみたい方
* InteliJで下記のYoutubeサイトを見たがよく分からない人内容に関しては、以下のInteliJが上げているYoutubeサイトの内容ほぼそのままです。
#目次
1.プロジェクトの新規作成
2.Springbootアプリの実行(test)
3.HTTP Responseチェックの作成
4.Spring Controllerの作成
5.ブラウザへのHelloworld表示#1.プロジェクトの新規作成
##1-1.New Project
InteliJを開き、「New Project」ボタンをクリック
![1.png](https://qiita
[備忘録]バッチ処理的なものを作成
##目的
初めてバッチ処理のようなものを作ったので備忘録として記述。
挙動は以下の通り。
・CSVファイルからデータを受け取り、DBへインサート。
・DBの内容を受け取り、CSVファイルとして保存。##用語
Q . バッチ処理とは?
A . 任意のタイミングでデータの処理を自動で行うプログラムのこと。Q . CSVファイルとは?
A . 「,」で区切られたテキストデータのこと。##コード
・CSVファイルからデータを受け取り、DBへインサート。この挙動を実現するコードが以下の通り。
“`InsertItemCSV.java
package com.example.common;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.
[Java] Long型とlong型の比較メモ
Javaで社内システムを作ってるときに、Long型の値とlong型の値を「==」で一致判定しようとしたら一致しなくて詰まったのでメモ。まだまだ未熟なエンジニアなので許してください\_m(-_-)m\_
#プリミティブ型の数値と参照型の数値をそのまま比較したいときは?
参照型のequalsメソッドを使いましょう。“`java:compare.java
Long num1 = 1L;
long num2 = 1l;
if(num1==num2) { //1
System.out.println(“true”);
} else {
System.out.println(“false”);
}if(num1.equals(num2)) { //2
System.out.println(“true”);
} else {
System.out.println(“false”);
}
“`「1」のような比較を行うと、必ず**false**になりますが、「2」のような比較を行えば