JAVA関連のことを調べてみた

JAVA関連のことを調べてみた
目次

Java ローカライズ

Java 11 Gold 取得に向けた学習記録

# ローカライズとは
localize

アプリケーションを異なる国、地域に対応させるプロセスを**ローカライズ**、または **i18n** と言う。

i18n は、internationalization の **i** と **n** の間の文字数が **18** 文字であることに由来する用語。

ローカライズの対象には以下のものが含まれる。

– 言語
– 日付の表示形式
– 時刻の表示形式
– 暦の表示形式
– 通貨の表示形式

# `Locale`
locale = (物語の)舞台、現場、場所
locale ≠ local

ソフトウェアにおける言語、国、地域などの設定のことを**ロケール**(locale)と呼ぶ。(最初 local だと思っていた。。。)

ロケールは単に「国」のことではなく、例えば英語とフランス語が公用語とされているカナダのようにおいては、「カナダで英語を使用する地域」と「カナダでフランス語を使用する地域」などがロケールに相当する。

Javaでは`java.util.Local`クラスがロケール

元記事を表示

[備忘録 その5] Java Silver ~演算子~

# 演算子
演算子は、プログラミングにおいて変数や値に対して操作を行うため記号やキーワードです。javaでは、多くの種類の演算子が提供されている。

演算子の優先度と結合規則

Javaで「return文」の動作を確認してみた

# 概要

Javaで「return文」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/method/index7.html

# 実装

以下のファイルを作成しました。
“`JSample7_1.java
class JSample7_1{
public static void main(String args[]){
int data[];

test(15, 4);
test(7, 0);
}

private static void test(int n1, int n2){
if (n2 == 0){
System.out.println(“0で割ることはできません”);
return;
}

System.out.println(n1 + ” / ” + n2 + ” = ” + (n1 / n2));
return;
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSamp

Nablarch 6のRESTfulウェブサービスのExampleで開発中に再デプロイしたい

# What’s?

タイトルとおりで、Nablarch 6のRESTfulウェブサービスのExampleを開発中に再デプロイできるように設定してみます。

# お題

デプロイ対象のアプリケーションサーバとMavenプラグインを使って、ソースコードを変更した際に再デプロイして開発を効率化したいという話です。

アプリケーションサーバは以下で試しました。

– Jetty
– Open Liberty

試したものの、諦めたのは以下です。

– Payara Micro
– WildFly

そもそも利用できるものがなかったのはApache Tomcatです。

Payara Microは、うまく起動できませんでした…。
WildFlyは、プロジェクトの構成(URLマッピングやActionの実装)をけっこう変えないといけなさそうだったので諦めました…。

# 環境

今回の環境はこちら。

“`shell
$ java –version
openjdk 21.0.3 2024-04-16
OpenJDK Runtime Environment (build 21.0.3+9-U

Java アノテーション

Java 11 Gold 取得に向けた学習記録

# アノテーションとは
Annotation = 注釈

メタデータとしてコードに付加される情報を**アノテーション**と言う。メタデータとは、情報自体に対する付随的な情報のことを指す。

“`java:アノテーション
@アノテーション名(属性名=値)
“`

## `@Deprecated` / `@SuppressWarnings`

特定の要素(クラス、メソッド、フィールド、コンストラクタなど)が**非推奨**であることを示すために使用されるアノテーションとして`java.lang.Deprecated`がある。

https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/lang/Deprecated.html

また`@Deprecated`アノテーションは、`forRemoval`と`since`と言う属性を持つ。

– `bool forRemoval()`
– 将来のリリースで削除される予定であることを示す
– `String since()`

[備忘録 その4] Java Silver ~変数と配列 その2~

# 配列
配列は、同じデータ型の要素を一定の順番で並べたデータ構造です。プログラミングにおいて、複数のデータを効率的に扱うために広く使われています。配列を使うことで、データの集まりを一つの変数で管理し、インデックスを用いて個々の要素にアクセスできます。
## 配列の基本
* 固定長:配列の長さは一度作成されると変更できません。要素数を変更したい場合は新しい配列を作成し直す必要があります・
* 同じデータ型:配列に格納されるすべての要素は同じデータ型である必要があります。
* インデックスによるアクセス:配列の要素にはインデックス(番号)を使ってアクセスします。インデックスは0から始まります。

## 配列のメリット
* 簡単なデータ管理:複数の同種のデータを一つの変数で管理できるため、コードが簡潔になります。
* 効率的なアクセス:インデックスを使って特定の要素に直接アクセスできるため、効率的です。

## 配列のデメリット
* 固定長:配列の長さは変更できないため、要素数が事前にわからない場合は不便です。
* メモリの無駄:必要な要素数より大きな配列を作成するとメモリの無駄が生じます

[備忘録 その3] Java Silver ~変数と配列 その1~

# 変数
## リテラル
リテラルとは、プログラムのなかで直接記述される値のことです。リテラルは具体的な値を表し、変数や定数に代入されたり、計算や比較に使用されたりします。
### 1\.整数リテラル
整数リテラルは、整数値を表します。デフォルトでは’int’型として扱われますが、’long’型として扱いたい場合は、末尾に’L’または’l’を付けます。
“`java
int decimal = 10; // 10進数
int octal = 012; // 8進数(10進数で10)
int hex = 0xA; // 16進数(10進数で10)
int binary = 0b1010; // 2進数(10進数で10)

long longValue = 10L; // long型
“`
### 2\.浮動小数点リテラル
浮動小数点リテラルは、小数点を含む数値を表します。デフォルトでは’double’型として扱われますが、’float’型として扱いたい場合は末尾に’F’または’f’を付けます。
“`java
double doubleValue = 3.14;
float

クライアントからSpring WebFluxにAPIアクセスを試してみた

# 背景・目的
過去に、Spring Bootについて下記の記事にまとめました。今まではサーバサイドとは代わり、クライアント側からサーバサイドアプリケーションを呼び出す処理を書いてみます

– [SpringBootでSpring WebFluxを試してみた](https://qiita.com/zumax/items/f07ce794cfd597ca58b1)
– [Spring BootでDAOからデータベースにアクセスしてみた-その2(クライテリア)](https://qiita.com/zumax/items/0eab43e74eb76143530e)
– [Spring BootでDAOからデータベースにアクセスしてみた-その1(DAOとアノテーション)](https://qiita.com/zumax/items/4dd856cd108d23a15188)
– [Spring Bootでバリデーションを試してみた](https://qiita.com/zumax/items/f09bacf18f3bb96d1331)
– [Spring Bootでデータを保存する-その2]

ORACLE PL/SQLとは 〜初学者向け入門編〜

#### 【背景】
ネット上でのPL/SQLについての文献が少ない為、現場で培ってきたPL/SQLについての知識をまとめようと思います。
PL/SQLを使用している現場に参画して1年以上が経過し、ある程度ノウハウが蓄積されたので改めて知識共有として
自身の知識と+αネット上に転がっている数少ない文献とを組み合わせて**初学者でも取り組みやすい資料**にしました。

私の経歴だけ前提として記載しておきます。間違った記載があればご指導ご鞭撻の程、宜しくお願い致します。

#### 【職務経歴・言語】

|言語 |言語歴 | 業界|
|—|—|—|
|PL/SQL |1年3か月|銀行系システム・リース決済システム
|Java |2年0ヶ月 |保険系業務システム等


### 目次
1.PLSQLとは何か
2.何が出来るのか
3.実務的にどう使うか
4.基本構造
5.データ型
5.プロシージャ
6.ストアドプログラム
7.パッケージ
8.資料についてのまとめ

↓別添資料にて記載
・使用可能なオラクル関数(ファンクション)
・例外処理

1.PL

SpringBootでSpring WebFluxを試してみた

# 背景・目的
過去に、Spring Bootについて下記の記事にまとめました。今回は、Spring WebFluxを試してみます。

– [Spring BootでDAOからデータベースにアクセスしてみた-その2(クライテリア)](https://qiita.com/zumax/items/0eab43e74eb76143530e)
– [Spring BootでDAOからデータベースにアクセスしてみた-その1(DAOとアノテーション)](https://qiita.com/zumax/items/4dd856cd108d23a15188)
– [Spring Bootでバリデーションを試してみた](https://qiita.com/zumax/items/f09bacf18f3bb96d1331)
– [Spring Bootでデータを保存する-その2](https://qiita.com/zumax/items/06d0465218478840a949)
– [Spring Bootでデータを保存する-その1](https://qiita.com/zumax/items/2e3

Java Silver 試験対策 メソッドまとめ一覧

## Stringクラスのメソッド
### indexOf
指定された文字列や文字が最初に出現するインデックスを返します。見つからない場合は-1を返します。

“`java
String str = “Hello, World!”;
int index = str.indexOf(“World”); // 7
int charIndex = str.indexOf(‘o’); // 4
“`
### substring
指定された範囲の文字列を返します。substring(int beginIndex)とsubstring(int beginIndex, int endIndex)の2種類があります。

“`java
String str = “Hello, World!”;
String sub1 = str.substring(7); // “World!”
String sub2 = str.substring(7, 12); // “World”
“`
### replace
指定された文字や文字列を別の文字や文字列に置き換えます。

“`java
String st

instanceof演算子

参照変数と型を比較する際にinstanceof演算子を使用しています。

“`java
#1 if (obj instanceof String){
#2 String str = (String) obj;
}
“`
#1でobjがStringに変換可能なら、trueになる。

Javaで「戻り値として配列を返す」の動作を確認してみた

# 概要

Javaで「戻り値として配列を返す」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/method/index6.html

# 実装

以下のファイルを作成しました。
“`JSample6_1.java
class JSample6_1{
public static void main(String args[]){
int data[];

data = init();
System.out.println(data[0]);
System.out.println(data[1]);
}

private static int[] init(){
int data[] = new int[2];
data[0] = 10;
data[1] = 19;

return data;
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample6_1.java
$ java JSample6_

Raspberry PiでMinecraft 1.21のサーバーを建てる

# 環境
– Raspberry Pi 4 8GB
– Raspberry Pi OS 64bit
– ストレージ:SSD(USB3.0接続) 128GB
# サーバーが起動できない
Minecraftの新バージョン(1.21)が出たので、ラズパイサーバーで起動しようとした。
しかし、エラーが発生し起動できない。
“`bash
$ java -Xmx4G -Xms4G -jar server.jar nogui
Error: LinkageError occurred while loading main class net.minecraft.bundler.Main
java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recogni

Thymeleafの設定(spring bootなし)

## はじめに

spring bootに頼らないspring MVCプロジェクトのThymeleafの設定方法の備忘録

プロジェクト自体の作成方法は下記を参考
[MavenによるSpringプロジェクトの作成 #Java – Qiita](https://qiita.com/shirobako2016/items/622e417bf35dd2be1e4d)

## 設定方法

### pom.xml

pom.xmlには下記を追加してあげればよい

“`xml
・・・



org.thymeleaf
thymeleaf-spring6
3.1.2.RELEASE

・・・
“`

## Java Config設定

Thymeleaf用のJava

MavenによるSpringプロジェクトの作成

## はじめに

spring frameworkの学習用にspring bootに頼らずspring MVCのプロジェクトを作成する方法の備忘録

Java17, spring framework6で構成しています

## 構築方法

– シンプルなプロジェクトの作成(アーキタイプ選択のスキップ)にチェック
![5037b3485edc45cfbfa2169e8d2cb660png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3635129/ee628181-93c0-9d13-c93c-7525508d0ffb.png)

– グループID:ルートパッケージ名
– アーティファクトID:プロジェクト名
![4ba60c68c48f4a8c868f59fe5e45d5c0png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3635129/918a7dc5-2b39-3263-1792-9d6700981d60.png)

No12. 変数の宣言・変数への代入・練習問題02

**【動画URL】** https://youtu.be/X-oBdKR3x6A?feature=shared

変数を使いたい時は宣言をする
データ型 変数; int number;

![](https://storage.googleapis.com/zenn-user-upload/d6c5ba284fb4-20231009.png)


**【動画URL】** https://youtu.be/6KRixzAZQUU?feature=shared

かごにものを入れること
後で計算に使うなど取っておきたいものは変数に入れておくと良い
int number=7;
boolean result=true;
String item=”りんご”;
など

![](https://storage.googleapis.com/zenn-user-upload/73f9562d9a9f-20231009.png)

変数に初めて値を入れる事を初期化という
同じ変数に値を再び入れると上書きされる
![](https://storage.googleapis.com/zenn-use

データベースパフォーマンスを最適化するコネクションプーリングとは

# データベースのコネクションプーリングについて
## 1. コネクションプーリングの概要
コネクションプーリングは、データベースとの接続(コネクション)を効率的に管理するための技術です。データベースへの接続はコストが高く、頻繁に作成・破棄するとパフォーマンスに影響を与えます。コネクションプーリングでは、一度作成したコネクションを再利用することで、接続のオーバーヘッドを削減し、アプリケーションのパフォーマンスを向上させます。

## 2. コネクションプーリングのメリット、デメリット
### メリット:
* パフォーマンス向上: コネクションの作成と破棄にかかる時間とリソースを節約。
* スケーラビリティの向上: 多くのリクエストを効率的に処理できる。
* リソース管理: データベースサーバーへの負荷を軽減し、安定性を向上させる。

### デメリット:
* 設定の複雑さ: 正しいプールサイズの設定や管理が必要。
* メモリ使用量: 使用されていないコネクションがメモリを消費する可能性。
* デッドロックのリスク: 不適切な使用でデッドロックが発生することがある。

## 3. O

なぜControllerでインターフェースを呼び出すと、そのインターフェースの実装クラスのメソッドを実行できるのでしょうか?(インターフェースとポリモーフィズムに対する理解を深めましょう)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3809422/087ce4e2-89c7-057f-9cfb-3a2d38a40bc8.png)

Springを学ぶときに、このような疑問が生じることがあるかもしれません。**私たちはここでインターフェースの抽象メソッドを呼び出しているだけなのに、なぜ実行時にそのインターフェースの実装クラスのメソッドが実行されるのでしょうか?**

直接に答えると:ここではJavaの三大特徴の一つである**ポリモーフィズム**が使われています。

**ポリモーフィズム**はオブジェクト指向プログラミングの重要な特徴の一つです。**ポリモーフィズムを通じて、親クラス(またはインターフェース)の参照変数は、任意の子クラス(または実装クラス)のインスタンスを指すことができます。** これにより、より汎用的で柔軟なコードを書くことができます。

:::note info
Javaの三大特徴は、カプセル化、継承、そしてポリモーフィズムです。
:::
_______

Javaで「戻り値を使ってメソッドから値を返す」の動作を確認してみた

# 概要

Javaで「戻り値を使ってメソッドから値を返す」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/method/index5.html

# 実装

以下のファイルを作成しました。
“`JSample5_1.java
class JSample5_1{
public static void main(String args[]){
int kekka;

kekka = bai(9);
System.out.println(kekka);

kekka = bai(5);
System.out.println(kekka);
}

private static int bai(int n){
return n * 2;
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample5_1.java
$ java JSample5_1
18
10
“`

# まとめ

何かの役に立てばと。

優先度 演算子 結合規則 説明
1 [] () . 左から右 配列アクセス、メソッド呼び出し、フィールドアクセス
2 ++ —