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

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

未経験エンジニア1年目:学びにおいて効果的だと感じた取り組み

## はじめに
 この記事では2023年度、新卒1年目(SE1年目)の振り返りをしようと思う。IT知識・プログラミングスキルゼロからの私にとって、IT業界につま先を踏み入れた2023年度は、全てが初めての経験・学びで個人的にはとても楽しかったし、悔いのない1歩を踏み出せたと感じている。何がその要因かは明らかで、それはアサイン先での取り組みであったと思っている。
 具体的な取り組みは後述するとして、そもそもの背景を簡単に記載する
## 背景
 2023年度私はOJTとして、同期5人とアジャイル道場にアサインされた。アジャイル道場では、アジャイルコーチの指導の元、PBL(Project Based Learning)にて、開発スキルを培っていくというものだった。とは言っても実際の開発時間は1日4時間と決めており、残りの時間は土台となる知識やスキルを学習する取り組みに費やしていた。私個人としては、もちろん開発を進める上で開発スキルやPOとのコミュニケーションの取り方など多くを経験できたと思っているが、未経験者からすると、より効果的だったと感じるのは開発以外の学習としての取り組みの方である。

元記事を表示

[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. 音声を変換(同期)
音声をテキ

元記事を表示

[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-認識ツールを取

元記事を表示

Javaで「変数を宣言する」の動作を確認してみた

# 概要

Javaで「変数を宣言する」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`JSample2_1.java
class JSample2_1{
public static void main(String[] args){
int old, height;
old = 20;
height = 184;

System.out.println(“年齢:” + old);
System.out.println(“身長:” + height);
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample2_1.java
$ java JSample2_1
年齢:20
身長:184
“`

# まとめ

何かの役に立てばと。

元記事を表示

JavaのOptionalをgolangにportする – Method Reference と Method values

[JavaのOptionalをgolangにportする](https://qiita.com/shinnara/items/dca2181717e72b92d10d) が他の記事に比べて見られてます。といっても3桁程度ですが。タイトル詐偽的な状況になってしまったのかなと反省してます。今回も大した事は書いてないのでゆるゆるお付き合いください。

# 前回までのあらまし
* Javaを勉強するために、golangでJavaの[Optional](https://github.com/openjdk/jdk/blob/jdk-21%2B35/src/java.base/share/classes/java/util/Optional.java#L86)を実装してみます
* Optionalをいきなり実装できないので、まず[Function](https://github.com/openjdk/jdk/blob/jdk-21%2B35/src/java.base/share/classes/java/util/function/Function.java)を実装します
* golangで[

元記事を表示

[Google Cloud Speech-to-Text API(V2)] Javaで認識精度を向上させるカスタムクラスを取得する

Cloud Speech-to-Text API V2(Java)を使用して、
認識精度を向上させるカスタムクラスを取得する方法についてご紹介します。

**カスタムクラス(CustomClass)とは**
カスタムクラス(CustomClass)はモデル適応機能を実現させるためのリソースの1つです。

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

カスタムクラス(CustomClass)リソースでは下記が設定できます。
|できること|概要|
|—|—|
|固有名称(店名や商品名など)の認識|カスタムクラスを使用すると、音声に出現した際に固有名称を正しく認識するように認識モデルにバイアスをかけることができます。|

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Speech-to-Text API(V2)] JavaでSpeech-to-Text APIを使ってみる](https:/

元記事を表示

[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 がその単語の並びを認識しやすくなります。
フレーズを提供することで、個々の単語を含むフレーズの一部を認識する確率も高まります。|
|[クラストークン](#クラストークン)を使用して認識精度を向上させる|通貨単位やカレンダー日付など、自然言語で発生する一般的なコンセプトを表します。
クラスにより、共通のコンセプトに対応

元記事を表示

その単体テストは 振る舞い を検証できていますか?

# はじめに

本記事は単体テストにおける偽陰性に焦点をあてています。偽陽性は別記事にします。

# 目次

– [振る舞いを検証できていない場合ただの負債になりかねない](#振る舞いを検証できていない場合ただの負債になりかねない)
– [そもそも単体テストの目的って?](#そもそも単体テストの目的って)
– [単体テストで検証したいものって?](#単体テストで検証したいものって)
– [振る舞い と 内部実装(実装の詳細)](#振る舞い-と-内部実装実装の詳細)
– [観察可能な振る舞い とは](#観察可能な振る舞い-とは)
– [内部実装(実装の詳細) とは](#内部実装実装の詳細-とは)
– [注意:振る舞いと内部実装は視点によって変化する](#注意振る舞いと内部実装は視点によって変化する)
– [検証したいものは外部から観察可能な1単位の振る舞い](#検証したいものは外部から観察可能な1単位の振る舞い)
– [現実世界で 振る舞い と 内部実装 を考える](#現実世界で-振る舞い-と-内部実装-を考える)
– [テストケースに内部実装が漏れ出ている例](#テスト

元記事を表示

(java silver)演算子

## JavaSilverでメモしたところ備忘録として残しておこうと思います。
# 三項演算子
“`java
条件式?式1:式2
“`
* 条件式がtrueの場合は式1を評価した値を返す、falseの場合は式2を評価した値を返す
“`java
//(num = 6,num = 6, result = 6)

String str = num == count? num < result?"ARG":"Bol":"CHL";//"BOL"が出力される ``` ::::note ()をつけるとわかりやすい :::: ```java //(num = 6,num = 6, result = 6) String str = num == count? (num < result?"ARG":"Bol"):"CHL";//"BOL"が出力される //numがtrueならnum < result?"ARG":"Bol"が評価 //numがfalseなら"CHL" ``` # ビット演算子 * 整数値の値に対してビット単位で処理を行うために用意されているもの | 1 | 2 | 3

元記事を表示

Javaで「Javaにおける変数とは」の動作を確認してみた

# 概要

Javaで「Javaにおける変数とは」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`JSample1_1.java
class JSample1_1{
public static void main(String[] args){
int sum = 58 + 72 + 90;
System.out.println(“合計 ” + sum);
System.out.println(“平均 ” + sum / 3);
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample1_1.java
$ java JSample1_1
合計 220
平均 73
“`

# まとめ

何かの役に立てばと。

元記事を表示

[Google Cloud Speech-to-Text API(V2)] JavaでSpeech-to-Text APIを使ってみる

Google Cloud Speech-to-Text API(V2)をJavaで使ってみました。
今回の記事はAPIを利用するにあたり準備する必要があるものを記事にしました。

***Cloud Speech-to-Text APIとは***
Googleが提供する機械学習を活用して音声をテキストに変換するAPIです。

機械学習の深い知識がなくとも変換を可能にしてくれますが、
下記の基本的な機能(リソース)を利用することで変換の精度を向上させることができます。
|用語|内容|
|—|—|
|認識ツール|再利用可能な認識構成です。
頻繁にテキスト変換を使用する場合、構成ツールを利用することでリクエストを簡素し、料金の削減にも寄与できます。|
|フレーズセット(PhraseSet)|モデル適応機能を実現させるためのリソースの1つです。
単語とフレーズの認識精度を向上させることができます。|
|カスタムクラス(CustomClass)|モデル適応機能を実現させるためのリソースの1つです。
固有名称(店名や商品名など)の認識させることができます。|

料金は、サー

元記事を表示

ApplicationContextの適切な閉じ方

ApplicationContextはAutoCloseableを実装していないため、try-with-resources文で直接使用することができません。そのため、try-with-resources文でApplicationContextを使用すると、警告が表示されます。

代わりに、try-with-resources文で使用するリソースは、AutoCloseableを実装している必要があります。しかし、SpringのApplicationContextはAutoCloseableを実装していないため、この方法は適切ではありません。

代替案として、ApplicationContextを使用した後に、finallyブロック内で明示的に閉じることが推奨されます。以下はその例です。

“`java
ApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext.xml”);
try {
// ApplicationContextを使用するコード
} finally {

元記事を表示

Java・okhttp3ライブラリで簡単WebAPIアクセス・レスポンスデータはJavaオブジェクトに変換してみる

開発現場において外部サービスが展開するAPIにアクセスし、何らかの情報を取得するというケースはよくあることだと思う。
okhttp3というライブラリを使用すると簡単にアクセスできるが、細かい記述方法を忘れてしまうため備忘録としてまとめておく。
なお、今回はLINEが公開しているWebAPIにアクセスする形式を例として紹介する。

## okhttp3ライブラリを準備する
まずはアプリケーション上にライブラリをインストールする。
build.gradleファイル内部のdependencies内に以下の記述を追加しよう。

“`build.gradle
dependencies {


implementation ‘com.squareup.okhttp3:okhttp:4.9.2’
}
“`
 使用しているIDEがintelliJの場合はファイル右上に象さんの更新アイコンが表示されるはず。
クリックしてしばらくするとライブラリのインストールが完了するはず。

## WebAPIアクセス時に必要な情報を確認する
WebAPIにアクセスする際

元記事を表示

javaのクラスを使ってプログラムを書いてみた。

# はじめに
今回はクラスについて自分で勉強したことを活かして作成したプログラムを解説してみようと思います。
解釈が違っている点やアドバイスがあればご教授頂けると幸いです。

# プログラム概要
乗り物を表す親クラス`Vehicle`、バスを表す`Bus`クラス、電車を表す`Train`クラス、タクシーを表す`Taxi`クラスを定義する。`Bus`クラス、`Train`クラス、`Taxi`クラスは`Vehicle`クラスを継承している。また、停車を表す`Stoppable`インターフェースを定義し、`Bus`と`Taxi`にのみ実装する。そして`test.java`ファイルで全クラスの挙動を確かめる。
全クラス、のコードは以下に示す。

# 全プログラムのコード

## Vehicle
“`java
public class Vehicle {
protected int passenger_num;

public void setPassenger_num(int passenger_num){
this.passenger_num = passe

元記事を表示

[BigQuery API(V2)] JavaでBigQueryテーブルの行レベルのアクセス許可をテストする

BigQuery API V2(Java)を使用して、
BigQueryテーブルの行ベルのアクセス許可をテストする方法についてご紹介します。

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

|No|||目次|
|—|—|—|—|
|1|||[アクセス許可をテスト](#1-アクセス許可をテスト)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
||4||[IAM権限](#14-iam権限)|
|||1|[BigQueryの権限](#141-bigqueryの権限)|
|||2|[BigQueryMLタスクの権限](#142-bigquerymlタスクの権限)|

## 1. アクセス許可をテスト
指定したテーブルの行レベ

元記事を表示

[BigQuery API(V2)] Javaでデータセットのルーティンを生成・更新・削除する

BigQuery API V2(Java)を使用して、
BigQueryデータセットのルーティンを生成・更新・削除する方法
についてご紹介します。

**ルーティンとは**
処理を事前に定義しておいて、後から呼び出せるようにしておくためのコンポーネントです。
BigQueryでは、以下のリソースをルーティンと定義付けています。
|リソース|概要|
|—|—|
|リモート関数を含むユーザー定義関数(UDF)|SQL または JavaScript で記述するステートメント群|
|ストアドプロシージャ|SQLで記述するステートメント群|
|テーブル関数(TFV)|戻り値にテーブルを返すユーザー定義関数|

データセットのルーティンを生成・更新・削除するには、
データセットに対し適切なIAM権限が付与されている必要があります。

権限付与に関しては
[⧉[BigQuery API(V2)] JavaでBigQueryを使う(2.権限付与)](https://qiita.com/doran/items/8b7ba29672527426e88d#2-権限付与)
を参照ください。

:::n

元記事を表示

Javaで「論理値リテラル」の動作を確認してみた

# 概要

Javaで「論理値リテラル」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/num/index10.html

# 実装

以下のファイルを作成しました。
“`JSample10_1.java
class JSample10_1{
public static void main(String[] args){
System.out.println(10 > 7);
System.out.println(5 == 4);
}
}
“`

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

# まとめ

何かの役に立てばと。

元記事を表示

DI(Dependency Injection)について粗々に理解していく

## はじめに
自社開発のエンジニアをやっているものです。
普段バックエンドではspringbootを使っているのですが、初めはDIの仕組みやメリットに対する理解が定着しなく、DIに関する実装は通例的な感覚で書いていました。
それから1年間経験した結果、ある程度理解できたと思うのでアウトプットしてより理解度を高めていきたいと考えました。
## DIとは
DIはあるクラスからみて依存するであろうクラスの切り替えを容易にする機能を持っていると考えています。
上記で表現した「依存」について説明します。
### プログラムにおける依存とは
以下のクラスがあるとします。(細かい設計云々の不備は許容してください><) - UserService(ユーザの情報に関するビジネスロジックを実施してくれる) ``` java public class UserService{ UserRepository userRepository = new UserRepository(); // UserRepositoryUnitTest userRepository = new Use

元記事を表示

[初心者向け]レビューアーから見る「こんなコードは書かないで!」(その1)

# 2024年のGWも終わりましたが。。。
みなさん、お元気ですか?
大丈夫?遊びすぎて体調崩したりしてない?
休みすぎてやる気無くなったりしてない?
4月に教えてもらったこと全部忘れるとかいう、とんでもないボケをかましてない?

社会人だったら、、、そうだね、 __【自己責任】__ だね(エビバディパッション

# そんなこんなで、いよいよネタが。。。
いろんなプロジェクトを同時並行とかでやらせてもらえてれば、きっとそれぞれのプロジェクトでネタになるような出来事(炎上ネタ)がたくさんあるはずなのに、縛りプレイな諸事情でメインのプロジェクトしかやらせてもらえてないので、もうネタが無くて辛い。。。
ネタになりそうな開発のお仕事ください(要約:実装したいし給料も上げて欲しい

# お前は本当にそのコードでレビューに出すんだな?
偉く(色々と一人で出来るように)なる、と言うか他に見る人がいなかったりすると、巡り巡ってくるレビューと言う、他人が書いたコードを __【読んで、ダメ出しをする】__ お仕事が回ってくるわけで。。。

そんな

【Java初心者】複数のWordファイルの表をまとめる

# オフィスではコピペによるデータのまとめが多すぎる

ビジネスの現場では、上司への説明用にワードファイルの「個表」を作ることが多い。

そして、それを後でまとめるために、複数の「個表」のワードから特定のセルの文字を抽出し、エクセルにまとめたりする。

オープンデータとして公開されているCSVやJSONばかりいじっていたので、「まずはデータを作り、差し込み印刷で個表にしたらいいのに」と思うが、ビジネスの現場では、資料は上司に提出したり、会議用の資料としてまとめたりするのに使われる。つまり、多くのWordファイルは、データの再利用は全く想定していない。

ただ、それをあとになって「エクセルで一覧を作って下さい」となると、一枚ずつWordで開いてデータをコピペせざるをえない。そういう要求は多いし、多くのビジネスマンがその作業に時間を使っていると思われる。

# 参考にしたサイト

マクロでやればいいのかもしれないけど、詳しくないので、Javaでできるか試してみる。

「word 表 セルから文字抽出 java」として検索すると、

[Word文書で表を作成または読み取る方法【Java】](