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

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

[Google Cloud Speech-to-Text API(V2)] Javaで認識精度を向上させるフレーズセットの削除を取り消す

Cloud Speech-to-Text API V2(Java)を使用して、
認識精度を向上させるフレーズセットの削除を取り消す方法についてご紹介します。

**フレーズセット(PhraseSet)とは**
フレーズセット(PhraseSet)はモデル適応機能を実現させるためのリソースの1つです。

モデル適応機能を使用すると提案される可能性がある他の候補よりも、
Speech-to-Textが特定の単語やフレーズをより高い頻度で認識するように設定できます。

フレーズセット(PhraseSet)リソースでは下記が設定できます。
|できること|概要|
|—|—|
|単語とフレーズの認識精度を向上させる|フレーズを指定することで、Speech-to-Text がその単語の並びを認識しやすくなります。
フレーズを提供することで、個々の単語を含むフレーズの一部を認識する確率も高まります。|
|[クラストークン](#クラストークン)を使用して認識精度を向上させる|通貨単位やカレンダー日付など、自然言語で発生する一般的なコンセプトを表します。
クラスにより、共通のコンセプト

元記事を表示

Firebase Admin SDK (Java) を使って FCM Push を Proxy 越え送信する場合の注意

# 概要

Firebase Admin SDK (Java) を使って FCM Push を Proxy サーバ越えで送信するときにドハマリしたので、注意点を記載します。

なお、Proxy 設定を行う手順は Firebase Admin SDK ドキュメントには一切記載がありません
(そのくらい書いといてよね >Google)

# FCM Push の送信手順(Proxyなし)

Proxyなしの場合の送信手順は [送信リクエストを許可する](https://firebase.google.com/docs/cloud-messaging/auth-server?lang=ja&hl=ja) に記載されています。

このうち重要なのは初期化部分で、以下のようなコードになります。

“`java
// GoogleCredentials を生成
GoogleCredentials googleCredentials = GoogleCredentials
.fromStream(new FileInputStream(“service-account.json”))

元記事を表示

ECS Scheduled TasksをTerraformとSpring Bootで作る

ECS Scheduled Tasksは公式ドキュメントの内容が少ない上に、マネジメントコンソールでの手順しか書いていなかったので苦戦しました。なんとか動かせたので共有します。

# 環境
– macOS 14.5 (Intel版)
– Terraform 1.7.5
– Terraform AWS Provider 5.49.0
– Spring Boot 3.2.5
– JDK 21
– OrbStack 1.5.1

# アプリ
## ソースコード
“`java:BatchApplication.java
@SpringBootApplication
public class EcsTestBatchApplication {

private static final Logger logger = LoggerFactory.getLogger(EcsTestBatchApplication.class);

public static void main(String[] args) {
String param1 = System.get

元記事を表示

[Google Cloud Speech-to-Text API(V2)] Javaで認識ツールの削除を取り消す

Cloud Speech-to-Text API V2(Java)を使用して、
認識ツールの削除を取り消す方法についてご紹介します。

**認識ツールとは**
認識ツールは構成可能で再利用可能な認識構成です。

頻繁に使用される認識構成を使用して認識ツールを作成すると、
認識リクエストを簡素化し、リクエストのサイズを削減できます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Speech-to-Text API(V2)] JavaでSpeech-to-Text APIを使ってみる](https://qiita.com/doran/items/8e4ef896588229c4fed3)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[削除を取り消す](#1-削除を取り消す)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. 削除を取り消す
認識ツールの削除を取り消し

元記事を表示

Javaで「変数の初期化と変数への値の代入」の動作を確認してみた

# 概要

Javaで「変数の初期化と変数への値の代入」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装
“`JSample6_1.java
class JSample6_1{
public static void main(String[] args){
int old;
String name;

old = 24;
name = “Tarou Yamada”;

System.out.println(old);
System.out.println(name);
}
}
“`
“`JSample6_2.java
class JSample6_2{
public static void main(String[] args){
int old = 24;
String name = “Tarou Yamada”;

System.out.println(old);
Sy

元記事を表示

JavaSilver合格→次のステップ

2024/5/13
JavaSilver11の試験が終わりました。

結果は68%。

余裕ではないものの、無事に一発合格。

学習期間は約2ヶ月(あくまで期間)

正直、気分が乗らない、頭に入らない、PCに向かったけど全然違うことをする等の自分の集中力に腹が立つときもあった。

実務経験は約半年。

まったく何もわからない時に比べたら成長したと思う。

学習に使用した教材は黒本と紫本を用意。

先に黒本を購入したので、黒本をメインに学習しました。
紫本は半周くらいやって、解説を軽く読む程度で、それ以降触りませんでした。

あとはYouTubeで「黒本著者のやさしくない!?Java」を一通り観て、理解が浅い箇所は何回か観て理解を深めました。
(メンバーになると、知識がより深まるのかもしれないが、わたしは傍観者でいました。)

模擬試験3周目の末章終了後、模擬試験前にあえて数日あけました。
試験2日前に最後の模擬を行い、結果75%となんとも言えないけっかだったので、間違った箇所を軽く復習して終えました。
(脳がパンクしかけていました。)

試験日は前祝しているかのような雨、、

受付で

元記事を表示

Javaで「基本のデータ型」の動作を確認してみた

# 概要

Javaで「基本のデータ型」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`JSample4_1.java
class JSample4_1{
public static void main(String[] args){
int n = 100;
long l = 12345678910L;
double d = 3.14;
float f = 3.14F;
char c = ‘花’;
boolean b = true;

System.out.println(“n=” + n);
System.out.println(“l=” + l);
System.out.println(“d=” + d);
System.out.println(“f=” + f);
System.out.println(“c=” + c);

元記事を表示

Java の標準 URI ライブラリが RFC 3986 に対応していないので、自作ライブラリで対応する羽目になった話

# はじめに

Java 開発者にとっては周知の事実かもしれませんが、Java の標準 URI ライブラリ (`java.net.URI` クラス) は未だに古い仕様である [RFC 2396](https://datatracker.ietf.org/doc/rfc2396/) をベースに実装されており、今日のデファクトスタンダードである [RFC 3986](https://datatracker.ietf.org/doc/rfc3986/) に完全準拠していません。[RFC 6749 (The OAuth 2.0 Authorization Framework)](https://datatracker.ietf.org/doc/rfc6749/) や他の規格・仕様によって RFC 3986 が参照されているにも関わらず標準ライブラリがそれに対応していないとなると、開発者としては不足部分を何らかの手段で補完せざるを得なくなります。かく言う私も自社製品の開発おいて他ライブラリで不足部分をカバーしていましたが、利用していたライブラリに不具合があること、それにも関わらずそのアップデート

元記事を表示

java:クラスを使って買い物システムを作ってみた

# はじめに
この度はこの記事をご覧いただきありがとうございます。今回はクラスについて学んだことを活かして商品の在庫管理と買い物のシステムを作成いたしました。アドバイス等あればご教授ください!

# システム概要
まず、商品を表す`Product`クラス、商品棚を表す`ProductShelf`、商品を入れるカートを表す`Cart`クラスを定義。その後これらのクラスを使って`App.java`で商品棚に商品を追加、削除し、追加された商品を実際にカートに入れて購入するシステムを作成した。
また、`Product`、`ProductShelf`、`Cart`は`Package`というパッケージ内に入っている。

# クラスの概要
今回使用したクラスのファイルを以下に記述する。
## Product
“`java
package Package;
public class Product {
//商品名
private String name;
//商品の値段
private int price;
//商品の在庫数
private int s

元記事を表示

[Google Cloud Speech-to-Text API(V2)] Javaで長時間実行オペレーションを取得する

Cloud Speech-to-Text API V2(Java)を使用して、
長時間実行オペレーションを取得する方法についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Speech-to-Text API(V2)] JavaでSpeech-to-Text APIを使ってみる](https://qiita.com/doran/items/8e4ef896588229c4fed3)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[オペレーション一覧を取得](#1-オペレーション一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[オペレーションを取得](#2-オペレーションを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|

## 1. オペレー

元記事を表示

javaのプロトタイプ(Prototype)パターン

## はじめに

プロトタイプパターンは、既存のオブジェクトを複製することで新しいオブジェクトを生成するデザインパターンです。複雑なオブジェクトを一から作成するのではなく、既存のオブジェクトをコピーすることで効率的にオブジェクトを生成できます。

## プロトタイプパターンの概要

プロトタイプパターンは以下の要素で構成されます。

– Prototype (原型): 複製可能なオブジェクトを宣言するインターフェースまたは抽象クラス。
– ConcretePrototype (具体的な原型): Prototypeインターフェースを実装し、複製機能を提供する具体的なクラス。
– Client (利用者): 新しいオブジェクトを生成するために、Prototypeに複製を要求します。

## プロトタイプパターンの利点

– 複雑なオブジェクトを一から生成する必要がなくなり、コードがシンプルになります。
– 実行時に動的にオブジェクトを生成できます。
– サブクラス化を減らすことができます。

## サンプルコード (Java)

“`java
// Prototype インターフェース

元記事を表示

1時間でなんとなくわかった気になる Open Liberty でアプリケーション開発 & コンテナビルド & OpenShift へデプロイ

# はじめに
タイトルどおりのハンズオンです。
古すぎない Mac or Windows PC とインターネット接続、やり遂げる意志以外の前提条件はありません。
作成したコンテナのデプロイまで試したい場合は、OpenShift クラスター環境が必要です。

以下の記事は M1 Mac で検証 & 執筆しておりますので、Windows 組の方はよしなに読み替えて下さい。

# 準備
ハンズオン実施中はインターネットに接続している必要があります。

まずは Java がないと始まりません。
“`
% java -version
“`
として、Java 17 または 21 が見つかれば OK です。
なかった場合は Semeru Runtimes をインストールしましょう。
https://developer.ibm.com/languages/java/semeru-runtimes/downloads/
このハンズオンの作成は M1 Mac で Semeru Runtimes の 21 を使用しています。

Mac で複数の JDK インストールを切り替える方法は、”Mac Java

元記事を表示

[Google Cloud Speech-to-Text API(V2)] Javaで認識ツールを作成・更新・削除する

Cloud Speech-to-Text API V2(Java)を使用して、
認識ツールを作成・更新・削除する方法についてご紹介します。

**認識ツールとは**
認識ツールは構成可能で再利用可能な認識構成です。

頻繁に使用される認識構成を使用して認識ツールを作成すると、
認識リクエストを簡素化し、リクエストのサイズを削減できます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Speech-to-Text API(V2)] JavaでSpeech-to-Text APIを使ってみる](https://qiita.com/doran/items/8e4ef896588229c4fed3)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[認識ツールを作成](#1-認識ツールを作成)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[認識ツールを更新](#2-認識ツール

元記事を表示

(調査中)logback。java。JUnitでテストコードで、ログレベル変更

JUnitテストコードでLogbackのログレベルを変更することは可能です。Logbackの設定をプログラム内で変更することで、特定のテストケース内でログレベルを調整できます。以下は、その方法を示すサンプルコードです。

## 1. Logbackの依存関係を追加
まず、Mavenプロジェクトの場合は、pom.xmlにLogbackの依存関係を追加します。

“`java

ch.qos.logback
logback-classic
1.2.3
test

“`

## 2. テストコードでログレベルを変更

次に、JUnitテストコード内でLogbackのログレベルを変更する方法を示します。

“`java
import static org.junit.jupiter.api.Assertions.*;
import org.junit.

元記事を表示

(調査中)Spring MVC コンストラクタ内で例外が発生する状況のモック化

Mockitoを使用してコンストラクタ内で例外が発生する状況をテストすることができます。Mockito-inlineを利用することで、コンストラクタ内で特定の依存関係が例外をスローするようにモックし、その結果としてコンストラクタが適切に例外を処理するかどうかをテストできます。

以下に、例外処理をテストするための具体的な例を示します。

例: コンストラクタ内で例外が発生する状況のモック

## コントローラクラス
まず、例外処理を含むコントローラクラスを定義します。

“`java
import org.springframework.stereotype.Controller;
import org.springframework.beans.factory.annotation.Autowired;

@Controller
public class MyController {

private final MyService myService;
private String message;

@Autowired
public

元記事を表示

JUnit @ParameterizedTestをテキストブロックで超見やすくする!

# はじめに
JUnit5 テストの共通前処理用に `@BeforeEach` がありますが、複数のテストメソッドで前処理が異なる場合は `@Nested` でインナークラスを分けて、個別に `@BeforeEach` できます。しかし、これらの多くのケースでは `@ParameterizedTest` を使用することにより、`@Nested` と `@BeforeEach` 無しで、同じメソッドに対して複数の条件・期待値を繰り返し引数として渡せるユニットテストを簡潔に記述し、冗長性を回避することができるようになり、絶大な進歩をもたらしました。ですが、`@ParameterizedTest` に `@CsvSource` でソース上に指定する条件や期待値が String 配列のため、ダブルクォートとカンマで見た目がとても嫌でした。でも、Java 15 でサポートされたテキストブロックが遂に最新の JUnit 5.10 から使えるようになって、超見やすくなりました!(個人の感想です)

# テスト対象クラス
なんでもいいですが、例として Jakarta サーブレット。リクエストパラメータ

元記事を表示

[Google Cloud Speech-to-Text API(V2)] Javaでコンフィグレーションを取得する

Cloud Speech-to-Text API V2(Java)を使用して、
Speech-to-Textのコンフィグレーションを取得する方法についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Speech-to-Text API(V2)] JavaでSpeech-to-Text APIを使ってみる](https://qiita.com/doran/items/8e4ef896588229c4fed3)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[コンフィグを取得](#1-コンフィグを取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. コンフィグを取得
Speech-to-Textのコンフィグレーションを取得します。

### 1.1. スコープ
OAuth2.0でこのAPIを実行するには、以下のスコープを指定してください。
サービスア

元記事を表示

argsの読み方について

引数【argument】argsは、アーギュメントと読む。

引数(argument)とは、プログラム中で関数やメソッド、サブルーチンなどを呼び出すときに渡す値のこと。渡された側は、その値に従って処理を行い、結果を返す。オペレーティングシステム(OS)の操作などで利用者がコマンドを実行する際に指定するパラメータ(コマンドライン引数)などを指すことがある。

以上

元記事を表示

ランダム処理が確率通りに実行されているかテストしたい!

こんにちは、サーバエンジニアの池脇と申します。

みなさんはランダムに実行される処理を実装した際に、その処理が設定した確率通りに振る舞っているかテストしたいと思ったことはないでしょうか?
今回は適合度検定を利用して、そのテストを行う方法をご紹介したいと思います。

## 適合度検定
適合度検定とは、観察されたデータが特定の理論的な分布(期待値)にどの程度適合しているかを検定する方法です。主に以下のような状況で使用されます。
– ある標本が特定の分布に従っているか確認したい場合
– 観察データが理論的な期待値に一致しているか評価したい場合

例えば、サイコロを十分な回数[^1]振って各面が出た回数を数え、それが公平なサイコロ(各面が1/6の確率で出現する)に従っているかどうかを確認する場合に適合度検定を使用します。
適合度検定は期待値がわかっている場合に利用できます。つまり、出力される値の出現率がわかっている場合にこれを利用してテストが可能です。

### カイ二乗検定
適合度検定の主要な手法の1つがカイ二乗検定です。カイ二乗検定は、カテゴリーデータに対して期待された頻度と観察された頻度

元記事を表示

Java Sliverに合格しました

# 初めに
この記事は初心者視点での説明になります。正確性に欠ける可能性がございますが、ご了承ください。明らな誤りがありましたら、ご指摘くださると幸いです。

## きっかけ
Javaを使用した開発案件に入りたいと思い、転職活動の準備を兼ねて資格取得に向けた学習を始めました。あとかっちりした言語を学びたいと思いJavaを少し齧ったところ、オブジェクト指向楽しい!となったので。

## 学習期間
4月末から学習を始め、5月13日に受験しました。
期間としては2週間と少し、勉強時間は100時間弱だと思います。かなり詰め込み学習になってしまったので、余裕がある方は2ヶ月くらいを想定するといいと思います。

## 使用した教材
まずは基礎固めのためスッキリわかるJava入門を1周しました。書籍で紹介されているWeb上のエディタ環境は動作が重めなので、余裕があれば自分のPC上に環境構築することをお勧めします。

自分は他の言語の学習経験があったのでサクサク進んだのですが、全くのプログラミング初心者ですと難しい部分も多いと思います。深く考えず、5割くらいの理解で進めても大丈夫です。

https:

元記事を表示

OTHERカテゴリの最新記事