- 1. 未経験でエンジニアとして入社し、1ヶ月経ったので振り返る
- 2. [BigQuery API(V2)] JavaでBigQueryのジョブの実行結果を取得する
- 3. Javaで「演算の時に自動的に行われる型変換」の動作を確認してみた
- 4. [BigQuery API(V2)] JavaでBigQueryでクエリを実行する
- 5. printとprintfの違い(学習メモ)
- 6. springでトランザクションの制御方法
- 7. javaでjson文字列を操作する方法
- 8. java 文字列の検索
- 9. 文字列操作
- 10. 抽象メソッド
- 11. SpringのDIの仕組みの初歩と実装例
- 12. [Google Cloud Text-to-Speech API(V1)] Javaで音声の変換がサポートされている音声リストを取得する
- 13. Javaで「キャスト演算子と型変換ルール」の動作を確認してみた
- 14. JAVA アクセス修飾子
- 15. [Google Cloud Text-to-Speech API(V1)] Javaで長時間実行オペレーションをキャンセル・削除する
- 16. json文字列をMapに変換する方法
- 17. Javaで「final変数を定数として利用する」の動作を確認してみた
- 18. [Google Cloud Text-to-Speech API(V1)] Javaで長時間実行オペレーションを取得する
- 19. 【浦島太郎状態】久々にJavaをいじってみたら色々便利になってた件
- 20. 【Android】キーボード表示
未経験でエンジニアとして入社し、1ヶ月経ったので振り返る
初めまして。
2024年に入社し、晴れてエンジニアとしてキャリアをスタートしました。
早くも入社から1ヶ月が経ったということで、これまでの学習内容を振り返えるとともに、IT初心者におすすめの参考書や勉強法を紹介できればと思います。# プログラミング学習で使用した教材
研修では、主に『プロになるJava』を使用していました。## 『プロになるJava』
![プロJava.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3772948/034b8f6b-6719-3321-28a7-bb4474e8559e.jpeg “プロになるJava”)>『プロになるJava』は、プログラミングを仕事にしたい、エンジニアとして働きたい方、およびほかの言語で開発しているがJavaも使えるようになりたいという方を対象に、Javaでプログラミングができるようになるための解説をわかりやすく丁寧に行います。
>(技術評論社 書籍概要より) https://gihyo.jp/book/2022/978-4-297-126
[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-レスポンスの内容)|## 1. ジョブの実行結果を取得
ジョブの実行結果を取得します。
ジョブが未実行や実行エラーにより実行結果がない場合は例外が発生します。### 1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
“`
BigqueryScopes.BIGQUERY
Bigq
Javaで「演算の時に自動的に行われる型変換」の動作を確認してみた
# 概要
Javaで「演算の時に自動的に行われる型変換」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/var/index12.html
# 実装
以下のファイルを作成しました。
“`JSample.java
class JSample {
public static void main(String[] args){
double d = 10 * 0.2;
System.out.println(“d = “+d);
int i = (int)(10 * 0.2);
System.out.println(“i = “+i);
short s1 = 14;
short s2 = 8;
int i2 = s1 + s2;
System.out.println(“i2 = “+i2);
short s3 = (short)(s1 + s2);
System.out.println(“s3 = “+s3);
}
}
“`以下のコマンドを実行しました。
“`
$ ja
[BigQuery API(V2)] JavaでBigQueryでクエリを実行する
BigQuery API V2(Java)を使用して、
BigQueryでクエリを実行する方法
についてご紹介します。クエリの実行には適切なIAM権限が付与されている必要があります。
権限付与に関しては
[⧉[BigQuery API(V2)] JavaでBigQueryを使う(2.権限付与)](https://qiita.com/doran/items/8b7ba29672527426e88d#2-権限付与)
を参照ください。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[BigQuery API(V2)] JavaでBigQueryを使う](https://qiita.com/doran/items/8b7ba29672527426e88d)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[クエリを実行](#1-クエリを実行)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|## 1. クエ
printとprintfの違い(学習メモ)
### **コンソール画面に文字列を出力するprintとprintlnとprintfについて**
#### printとprintlnの違いは”改行”するかどうかにある。
– print :改行せずにコンソールへ出力
– println:文字列を出力した後、改行される~~~java:printとprintlnの違い(例1)
System.out.println(“Hello World”);
System.out.print(“Hello World”);
~~~
~~~:結果
Hello World
Hello World
~~~結果は一見同じようにみえるがもう一度Hello Worldを表示してみると
2個目のHello Worldの続きから出力される(改行されないため)~~~java:printとprintlnの違い(例2)
System.out.println(“Hello World”);
System.out.print(“Hello World”);
System.out.print(“Hello World”);
~~~
~~~:結果
Hello
springでトランザクションの制御方法
JavaのSpringフレームワークで1つのメソッド内で複数の場所でコミットを行いたい場合、標準的な@Transactionalアノテーションでは直接それを実現することはできません。これは@Transactionalがメソッドの開始時にトランザクションを開始し、メソッドの終了時にトランザクションをコミットまたはロールバックするため、メソッド内での複数コミットを制御することは想定されていません。
複数箇所でのコミットを行いたい場合、以下のような方法が考えられます:
## 1,トランザクションの手動管理
以下の例では、PlatformTransactionManagerを使用して、一つのメソッド内で複数のトランザクションを開始し、コミットする手順を示します。
“` App.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.Plat
javaでjson文字列を操作する方法
以下のような二つのjsonを1つのjsonにマージする
“` target1.json
{
“detail”: [
{
“itemId”: “a1”,
“itemName”: “a1_a”,
“lastuUpdate”: “”
},
{
“itemId”: “a2”,
“itemName”: “a2_a”,
“lastuUpdate”: “”
},
{
“itemId”: “a3”,
“itemName”: “a3_a”,
“lastuUpdate”: “”
},
{
“itemId”: “a4”,
“itemName”: “a4_a”,
“lastuUpdate”: “”
java 文字列の検索
## 文字列の検索
文字列の内部から、別の文字列(または文字)を探すためのメソッド
2種類ある
①含まれているか否かだけの判定
②文字列のどこに含まれているかという位置情報を返すもの|メソッド定義|操作|
|:———-|:——–|
|contains|ある特定の文字列(文字)が対象の文字列に含まれているか|
|startsWith|文字列がある特定の文字列(文字)で始まるか|
|endWith|文字列がある特定の文字列(文字)で終わるか|
|indexOf|ある特定の文字列(文字)が最初に登場する位置を調べる|
|lastIndexOf|ある特定の文字列(文字)を後ろから検索して最初に登場する位置を調べる|#### contains
特定の文字列(文字)が含まれているかを調べる
(大文字/小文字の区別する)
`対象の文字列.contains(検索する文字列)`
“`Main.java
public class Main {
public static void main(String[] args) {
String s1 = “Hello”;
文字列操作
## 文字列調査
|メソッド| 操作内容|
|:——:|:——–|
|equals|内容が等しいか調べる|
equalsIgnoreCase|大文字/小文字を区別せず内容が等しいか調べる|
|length|文字列長を調べる(スペースも1文字としてカウント)|
|isEmpty|空文字か(長さが0か)調べる|#### equals
内容が等しいか区別する
(大文字、小文字、空白を区別する)
“`Main.java
public class Main {
public static void main(String[] args) {
String s1 = “Hello”;
String s2 = “Hello”;
String s3 = “HELLO”;
String s4 = ” Hello “;
System.out.println(s1.equals(s2)); // s1とs2を比較
System.out.println(s1.equals(s3)); // s1とs3を比較
System.out.println(s1.eq
抽象メソッド
## 抽象メソッド
現時点では処理内容が未定で実装をもたず、メソッドや引数などの定義だけ宣言するメソッド。
処理内容は子クラスなどで記述。クラスによって処理内容を変えられる。### 抽象メソッドの宣言
“`
public abstrct 戻り値の型 メソッド名(引数リスト);
“`
#### 宣言するメリット
・オーバーライドの強制
・何もしないメソッドなのか、現時点で処理内容が確定できないメソッドなのか区別ができる### 抽象メソッドを含むクラスの宣言
抽象メソッドを1つでも含むクラスは抽象クラスの宣言を行う
“`
public abstract class クラス名 {
}
“`
#### 宣言するメリット
・抽象として宣言されるとnewによるインスタンス化が禁止される。抽象クラスを継承した子クラスで必ず、メソッドの内容を記述する必要はなく、孫クラスやひ孫クラスなどどこかの時点で記述できる
インタフェースなどもでてき意味は分かるけど、ぴんと来ないというか使いこなせない:sweat:
為になりそうな記事がいくつかあったので読んで理解したいと思います:rela
SpringのDIの仕組みの初歩と実装例
# この記事に書いてあること
– [プロになるためのSpring入門](https://gihyo.jp/book/2023/978-4-297-13613-0)の基本編のDIに関する内容を読んだまとめ
– DIを使ったコードと対応するテストコードの実装例# DIとは?
Dependency Injection(依存性の注入)の略。
ソフトウェアの設計パターンの一つで、クラス間の依存関係をフレームワーク等で管理して外部から注入する仕組みのこと。[^1]
[^1]:厳密には依存性の注入自体はフレームワークを利用しなくても可能だが、コードが煩雑になるため何らかのフレームワークを使う方が管理しやすい。# DIのメリット
– 依存オブジェクトの切り替えが簡単になり、コードの再利用性、可読性、テスト容易性が上がる
– 依存オブジェクトをインターフェースにすることでビジネスロジックから低レイヤーへの依存を切り離せる具体例として保存処理や読み込み処理でServiceクラスがその処理の中でRepositoryクラスを利用してデータベース等に保存や読み込みを行う処理を考えてみます。
この時
[Google Cloud Text-to-Speech API(V1)] Javaで音声の変換がサポートされている音声リストを取得する
Cloud Text-to-Speech API V1(Java)を使用して、
Javaで音声の変換がサポートされている音声リストを取得する方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Text-to-Speech API(V1)] JavaでText-to-Speech APIを使ってみる](https://qiita.com/doran/items/9edbd7d4ed11c5c4ec5f)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[サポートリストを取得](#1-サポートリストを取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|## 1. サポートリストを取得
音声の変換がサポートされている音声リストを取得します。### 1.1. スコープ
OAuth2.0でこのAPIを実行するには、以下のスコープを指定してください。
サービ
Javaで「キャスト演算子と型変換ルール」の動作を確認してみた
# 概要
Javaで「キャスト演算子と型変換ルール」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/var/index11.html
# 実装
以下のファイルを作成しました。
“`JSample11_1.java
class JSample11_1{
public static void main(String[] args){
float f = 10;
double d = 1234L;System.out.println(“f=:” + f);
System.out.println(“d=:” + d);
}
}
“`
“`JSample11_2.java
class JSample11_2{
public static void main(String[] args){
int i1 = 123456789;
float f1 = i1;
System.out.println(“i1=:” + i1);
Syst
JAVA アクセス修飾子
## JAVA アクセス修飾子テーブル
| アクセス修飾子 | クラス内 | 同一パッケージ内 | サブクラス | その他のパッケージ |
| ————– | ——– | —————- | ———- | —————— |
| public | 〇 | 〇 | 〇 | 〇 |
| protected | 〇 | 〇 | 〇 | × |
| (なし) | 〇 | 〇 | × | × |
| private | 〇 | × | × | × |## アクセス修飾子補足
– public:
どこ
[Google Cloud Text-to-Speech API(V1)] Javaで長時間実行オペレーションをキャンセル・削除する
Cloud Text-to-Speech API V1(Java)を使用して、
長時間実行オペレーションをキャンセル・削除する方法についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Text-to-Speech API(V1)] JavaでText-to-Speech APIを使ってみる](https://qiita.com/doran/items/9edbd7d4ed11c5c4ec5f)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[オペレーションをキャンセル](#1-オペレーションをキャンセル)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[オペレーションを削除](#2-オペレーションを削除)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|##
json文字列をMapに変換する方法
“` 変換.json
{
“name”: “John”,
“age”: 30,
“address”: {
“street”: “1234 Elm St”,
“city”: “Somewhere”,
“zip”: “12345”
},
“phoneNumbers”: [
{“type”: “home”, “number”: “123-456-7890”},
{“type”: “work”, “number”: “098-765-4321”}
]
}
“`“` Main.java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;public class Main {
public static void main(String[] args) {
// JSON文字列の定義(ネストされた構造を含む)
String json
Javaで「final変数を定数として利用する」の動作を確認してみた
# 概要
Javaで「final変数を定数として利用する」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/var/index10.html
# 実装
以下のファイルを作成しました。
“`JSample10_1.java
class JSample10_1{
public static void main(String[] args){
final float TAX = 0.1F;float price = 800 * (1 + TAX);
System.out.println(“料金は” + price + “です”);
}
}
“`以下のコマンドを実行しました。
“`
$ javac JSample10_1.java
$ java JSample10_1
料金は880.0です
“`# まとめ
何かの役に立てばと。
[Google Cloud Text-to-Speech API(V1)] Javaで長時間実行オペレーションを取得する
Cloud Text-to-Speech API V1(Java)を使用して、
長時間実行オペレーションを取得する方法についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Cloud Text-to-Speech API(V1)] JavaでText-to-Speech APIを使ってみる](https://qiita.com/doran/items/9edbd7d4ed11c5c4ec5f)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[オペレーション一覧を取得](#1-オペレーション一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[オペレーションを取得](#2-オペレーションを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|## 1. オペレー
【浦島太郎状態】久々にJavaをいじってみたら色々便利になってた件
# もともとJava使い
自分がこの業界入った時はJava 1.5ぐらいでstruts 1.3でWebシステム作るのがモダンだった古き悪しき時代を乗り越えてきた、え~すけさんですよ。
そんなわけで、自分は転職組なので前の会社の話ですが、もれなく入社してから最初のプログラム研修はJavaを使って生のServlet/JSPや、strutsを使ってWEBシステムを作らされた記憶があり、大学でJavaのアプレットでなんか作るみたいなことはやってましたが、Webという覚えることだらけの魔境に四苦八苦してました。
ほら、WebってJavaだけじゃなくて、HTML/JavaScript/CSSが漏れなくついてくるから、覚えること増えるじゃん?そんなこんなで、この業界に入ってから割とずっとJavaのプロジェクトをやってきており、実務ではJava 1.4/1.5/6/8/11ぐらいまでの記憶しかなかったですが、久々にAndroidStudioのバージョンアップしたら17以降を使えやコラみたいな警告が出てしまったので、今っていくつまで出てるのか調べたのと、Java8ぐらいが全盛期の人がどれだけうらしま
【Android】キーボード表示
# はじめに
キーボードを表示する方法が調べたところ二つ出てきたので、どちらも調べ直さなくいていいようにメモがわりに記事にしておきます。# 表示(Java)
“`
binding.edtMessage.requestFocus();
InputMethodManager keyboardManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(binding.edtMessage, 0);
“`
または、
“`
binding.edtMessage.requestFocus();
InputMethodManager keyboardManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
keyboardManager.toggleSoftInput(1, InputMetho