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

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

[Cloud Storage API(V2)] Javaで論理的削除されたオブジェクトをリストア(復元)する

Cloud Storage API V2(Java)を使用して、
Cloud Storageの論理的削除されたオブジェクトをリストア(復元)する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::

|No|||目次|
|—|—|—|—|
|1|||[オブジェクトをリストア](#1-オブジェクトをリストア)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[バケット内の複数オブジェクトをリストア](#2-バケット内の複数オブジェクトをリストア)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#23

元記事を表示

MapのKeyの小文字化がStreamAPIで簡単にできた

# はじめに

Mapのキーに大小文字が混在している場合、for文の中で`String.toLowerCase()`と`Map.put()`を繰り返してキーを小文字化する処理を作ったことがあるが、最近のJavaではStreamを使って簡単にできるらしいと聞いたので試しに書いてみた。

# サンプルコード

“`java:toLowerKey()
public static Map toLowerKey(Map map) {
return map.entrySet().stream()
.collect(Collectors.toMap(
e -> (e.getKey() == null) ? e.getKey() : e.getKey().toLowerCase(),
e -> e.getValue(),
(oldEntry,newEntry) -> newEntry
));
}

“`

## 解説

元記事を表示

@WebMvcTestや@JdbcTestではなく@SpringBootTestを使おう

`@WebMvcTest`や`@JdbcTest`は、テスト起動時のAuto Configurationで生成されるBeanを減らすことで、テスト時間を削減することが目的です。
対して`@SpringBootTest`は基本的に`main()`メソッド実行時と同じだけAuto ConfigurationでBeanが生成されます(特に`webEnvironment = RANDOM_PORT`または`webEnvironment = DEFINED_PORT`の場合)。
しかし、テスト時間削減により効果的なのはDIコンテナの作成回数を減らすことです。それに比べればAuto Configurationで生成されるBeanを減らすことによる時間削減効果は微々たるものです。
加えて、`@WebMvcTest`や`@JdbcTest`は一部のBeanが生成されないため、「あれ?この機能が動かないぞ?」といったハマりに頻繁に遭遇します。これのトラブルシュートは不可能ではありませんが、けっこう大変です。
そうなると、基本的には
1. `@SpringBootTest`を使う
1. DIコンテナ作成回

元記事を表示

[Cloud Storage API(V2)] Javaでバケットのアクセス制御リスト(ACL)エントリを作成・更新・削除する

Cloud Storage API V2(Java)を使用して、
Cloud Storageのバケットのアクセス制御リスト(ACL)エントリを作成・更新・削除する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[ACLを作成](#1-aclを作成)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[ACLを上書き](#2-aclを上書き)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|
|3||[ACLを更新](#3-aclを更新)|
|

元記事を表示

Javaで「実行環境のエンコーディングに合わせてプログラムを実行する」の動作を確認してみた

# 概要

Javaで「実行環境のエンコーディングに合わせてプログラムを実行する」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/encoding/index4.html

# 実装

以下のファイルを作成しました。
“`JSample4_1.java
class JSample4_1{
public static void main(String[] args){
System.out.println(“いい天気ですね”);
}
}
“`

以下のコマンドを実行しました。
“`
$ javac -J-Dfile.encoding=UTF-8 JSample4_1.java
$ java JSample4_1
いい天気ですね
“`

# まとめ

何かの役に立てばと。

元記事を表示

Javaの「渡し」を完全に理解したい

# 値渡しと参照渡しについて
Javaを勉強していくと**関数**の**引数**の渡し方で混乱すると思います。
世間では、**値渡し**、**参照渡し**、**参照値渡し**という3種類の区分があり、なんじゃそれと思われている方々も多いと思います。
今回はそんな疑問点を解消する一助になるようにできるだけシンプルにまとめてみました。

### 値渡し
“`java:sample1
public void sample1(int a){
a = STATIC_NUM;
}
“`
例えば、上記のような関数を定義したとします。
この関数は説明が不要なほどシンプルですね。int型の変数1つを引数に受け取り、それに定数を代入しているだけの関数です。

ではこの関数を実際に使って出力結果を見てみましょう。

“`java:main
public static void main(String args[]){
int a = 10;
System.out.println( a ); //10が出力される
sample1(a);
System.out.pr

元記事を表示

Render_DBをA5m2で使えるようにする

## 宣伝
[作成した大喜利アプリリンク](https://hello-4m00.onrender.com/)
ユーザ作成が面倒な人は、「ユーザ:test,パス:test」でログインできます
それすら面倒な人は、ゲストログインできます
*無料プランのため、初期サイト表示に時間がかかります。

## 目次
1. はじめに
1. 接続方法

## はじめに
WEBアプリを作成し、デプロイ先にRenderを選択した。そこでpostgresDBもRenderで実現した。DBの状態を確認するためにA5M2で表示したかったので、その時の設定方法をまとめる

[Webアプリ作成の記事1](https://qiita.com/ssatoshi_117117/items/ec18bcdd039461afae43)
[Webアプリ作成の記事2](https://qiita.com/ssatoshi_117117/items/b5fe92d85dd44283b86f)

## 接続方法
RenderのDachbord/Infoの「External Database URL」と「Password」を使う

!

元記事を表示

javaのシングルトン(Singleton)パターン

## はじめに

シングルトンパターンは、あるクラスのインスタンスが1つだけ存在することを保証するデザインパターン。グローバルな状態を持つオブジェクトや、複数のインスタンスを持つことが望ましくない場合に使用。

## シングルトンパターンの概要

シングルトンパターンは以下の特徴を持つ。
– private なコンストラクタ: 外部からのインスタンス化を防ぐ。
– static なインスタンス変数: クラスの唯一のインスタンスを保持。
– static な getInstance メソッド: インスタンスを取得するための唯一の方法。

“`mermaid
classDiagram
class Singleton {
-instance: Singleton
-Singleton()
+getInstance() Singleton
+someMethod()
}

Singleton –> Singleton: Creates
“`

## シングルトンパターンの利点

– グローバルなアクセ

元記事を表示

【備忘録】Javaの変数宣言と同時に初期化、ストリームAPIでソート

:::note warn
備忘録
:::

“`java:TEST.java
import java.util.ArrayList;
import java.util.Comparator;
import java.util.TreeMap;
import java.util.stream.Collectors;

public class TEST {
private record Point(String no1, String no2, String value) {
}

public static void main(String[] args) {
// 初期化
var btree = new TreeMap() {
{
put(“2011-2”, “1”);
put(“2011-1”, “1”);
put(“2012-2”, “1”);

元記事を表示

[Cloud Storage API(V2)] Javaでバケットの保持ポリシーをロックする

Cloud Storage API V2(Java)を使用して、
Cloud Storageのバケットの保持ポリシーをロックする方法
についてご紹介します。

**バケット保持ポリシーとロック**
保持ポリシーとは、バケット内にオブジェクトがアップロードされた後、
そのオブジェクトが削除・変更されないように期間を設定することができる機能です。

保持ポリシーを「ロック」することにより、すべてのユーザーが
設定した保持ポリシーの保持期間を短縮/削除できないようにします。

「ロック」した状態の保持ポリシーを削除したい場合は、
バケット自体を削除するしかありません。
ただし、バケット内にオブジェクトが存在する場合、
保持ポリシーを満たした期間外にならなければ削除することもできません。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照くださ

元記事を表示

[Cloud Storage API(V2)] Javaでバケットを生成・更新・削除する

Cloud Storage API V2(Java)を使用して、
Cloud Storageのバケットを生成・更新・削除する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[バケットを生成](#1-バケットを生成)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[バケットを上書き](#2-バケットを上書き)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|
|3||[バケットを更新](#3-バケットを更新)|
||1|[スコープ](#31

元記事を表示

Javaで「ソースファイルのエンコーディングを指定してコンパイルする」の動作を確認してみた

# 概要

Javaで「ソースファイルのエンコーディングを指定してコンパイルする」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/encoding/index2.html

# 実装

以下のファイルを作成しました。
“`JSample2_1.java
class JSample2_1{
public static void main(String[] args){
System.out.println(“こんにちは”);
}
}
“`

以下のコマンドを実行しました。
“`
$ javac -encoding UTF8 JSample2_1.java
$ java JSample2_1
こんにちは
“`

# まとめ

何かの役に立てばと。

元記事を表示

🔰一ヶ月で作成したWEBアプリのバージョンUP!! Ver2

[作成したWEBアプリリンク](https://hello-4m00.onrender.com/)
ユーザ作成が面倒な人は、「ユーザ:test,パス:test」でログインできます
それすら面倒な人は、ゲストログインできます
*無料プランのため、初期サイト表示に時間がかかります。

## 目次
1. はじめに
1. 改修・追加
1. 今後

## はじめに
WEBアプリを作成し、Qiitaで公開したところ、多くの人に見ていただいた。そして、アプリを触っていただいた。
その結果、できたらいいなや、直したいなと思い、今回のバージョンアップを考えた。

[最初に公開した記事](https://qiita.com/ssatoshi_117117/items/ec18bcdd039461afae43)

## 改修・追加
1. ゲストログイン
最初にWEBアプリを公開したとき、皆さんが好き勝手に触っていただいた。そこで感じたのが「大喜利の回答をしたい」ということだった。
しかし、設定上、同じユーザーでは回答は一回のみだったのでできなかった人もいたのではないかと思った。そこで、ゲストユーザの思想に至

元記事を表示

[Cloud Storage API(V2)] Javaでオブジェクトのコピー・置換する

Cloud Storage API V2(Java)を使用して、
Cloud Storageのオブジェクトのコピー・置換する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::

|No|||目次|
|—|—|—|—|
|1|||[オブジェクトをコピー](#1-オブジェクトをコピー)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[オブジェクトを置換](#2-オブジェクトを置換)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#23-レスポンスの内容)|

## 1. オブジェクトをコピー
指定

元記事を表示

Mavenでライフサイクル構成でカバーされていないプラグインの実行を解決する

Eclipseで Maven で tomee-webapp-archtype でMavenプロジェクトを作成すると、以下のようなエラーが出力された。
“`
ライフサイクル構成でカバーされていないプラグインの実行: org.apache.openjpa:openjpa-maven-plugin:3.2.2:enhance (実行: enhancer, phase: process-classes)`
“`

調べると、同じような事象が発生しており、“`pom.xml“`の “`plugins“`タグを“`pluginManagement“`タグで囲うことで解決できたとのことで、試したところ解決した。

“`xml:pom.xml
←このタグを追加 ….

元記事を表示

自前PCでjava・HTML・SQLの環境構築

# java・HTML・SQLの環境構築

## 1.各種パッケージのインストール
・Eclipseのインストール
 ※コードエディタ java・HTML開発で使用
 [統合開発環境 Eclipse 日本語化プロジェクト](https://willbrains.jp/ “統合開発環境 Eclipse 日本語化プロジェクト”)
 
 【インストール手順】
 引用:[No.2【Eclipseのインストール】プログラミングは一部の方だけのものではない!はじめてのプログラミング入門講座(アルゴリズムとJava基礎)動画付き](https://qiita.com/kunchan2/items/a4af8544b0064a1c7fa8 “【Eclipseのインストール】”)

・xamppのインストール
 ※SQL環境を構築するためにインストール
 [XAMPP Installers and Downloads for Apache Friends](https://sourceforge.net/projects/xampp/ “XAMPP Installers and Downloads fo

元記事を表示

オーバーロード

## JavaSilverでメモしたところ備忘録として残しておこうと思います。

# オーバーロード
* 一つのクラス内に同じメソッド名で引数の型や数が違うメソッドを複数定義することができる。シグニチャ(メソッド名・引数の型・引数の数)の組み合わせで決められている
* 呼び出す側でメソッド名と引数の組み合わせで合うものがなければコンパイルエラー

:::note info
戻り値の型は違っていても呼び出せる
:::

:::note info
変数名だけが異なっている場合、戻り値だけが異なっている場合はコンパイルエラー
:::

## オーバーロードの際の型変換
* オーバーロードされた複数のメソッドと一致しない型の引数を渡した場合、そのメソッドを呼び出しているコードがコンパイラにより型変換され対応するメソッドを呼び出すように最適化される
* 配列はObjectクラスのサブクラスであるため配列をObject型で受け取るオーバーロードにより処理することは可能。Object型(参照)の集合を扱う配列とプリミティブ型(値)の集合を扱う配列は扱っている集合の種類に互換性がない

# オーバーロ

元記事を表示

[Cloud Storage API(V2)] Javaでバケットのアクセス制御リスト(ACL)エントリを取得する

Cloud Storage API V2(Java)を使用して、
Cloud Storageのバケットのアクセス制御リスト(ACL)エントリを取得する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::

|No|||目次|
|—|—|—|—|
|1|||[ACLリストを取得](#1-aclリストを取得)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[ACLを取得](#2-aclを取得)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#22-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|

## 1. ACLリストを取

元記事を表示

[Cloud Storage API(V2)] JavaでCloud Storage上のオフジェクトを結合する

Cloud Storage API V2(Java)を使用して、
Cloud Storage上のオブジェクトを結合する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::

|No|||目次|
|—|—|—|—|
|1|||[オブジェクトを結合](#1-オブジェクトを結合)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|

## 1. オブジェクトを結合
Cloud Storage上のオブジェクトを結合します。

一度に結合できるオブジェクトの数は最大32個までです。
結合できるオブジェクトは同じバケット内のオブジェクトのみです。

### 1.1. スコープ
このAPIを実行

元記事を表示

Javaで「デフォルトエンコーディングを確認する」の動作を確認してみた

# 概要

Javaで「デフォルトエンコーディングを確認する」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/encoding/index1.html

# 実装

以下のファイルを作成しました。
“`JSample1_1.java
class JSample1_1{
public static void main(String[] args){
System.out.println(System.getProperty(“file.encoding”));
}
}
“`
“`JSample1_2.java
class JSample1_2{
public static void main(String[] args){
System.out.println(“こんにちは”);
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample1_1.java
$ java JSample1_1
UTF-8
“`
“`
$ javac JSam

元記事を表示

OTHERカテゴリの最新記事