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

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

Javaをvscodeで使う(macOS)

## 初めに
javaの環境構築をvscodeで行った際に詰まったので、自分用の忘備録として残します。
初学者のため、至らない点も多いかと思います。明らかな誤りがある際にはコメントいただけますと幸いです。

## 環境構築

### 私の環境
– macOS M2
– 2024/04現在最新verのJDK

### 手順

1. JDKのインストーラをダウンロード
1. ダウンロードしたファイルを開いて、インストール
1. システム設定にJavaが表示されているか確認
1. `java -version`でインストールを再度確認
1. vscode拡張機能のExtension Pack for Javaをインストール
1. vscodeを再起動し、先ほどのプラグインを有効化する
1. vscodeを開き、`Hello.java`ファイルを作成
1. クラス名の下に表示されるRunをクリックすると、実行結果がコンソールに表示されます

以下にそれぞれの工程の詳細を記します。

### JDKのインストーラをダウンロード
以下のサイトからダウンロードしてください。

https://www

元記事を表示

Java SE Bronzeの範囲における矛盾点(主観)

# はじめに
 Java Bronze SEを受験しまして、一応合格しました。ただ得点率が100%ではなかったので、ちょっと悔しいです。
 そこでこの記事では、Java SE Bronzeの試験範囲内で、私がよく理解できなかった点を整理します。また、(勉強に行き詰っている誰かのために)一応の解説もつけておきます。(でも、間違っているかもしれません。一応、参考文献は明記します)

# 1. 用語の定義の混乱
 Java SE Bronzeという試験では、「Javaに関する用語の意味」が問われることがあるそうです。いわゆる専門用語というやつですね。しかし現状、この専門用語の定義は、あまり統一されていません。

## 1-1. カプセル化
 例えば、「カプセル化」という言葉の定義を見てみましょう。さて、「カプセル化」とはなんでしょうか。「カプセル化」という言葉はどのように定義されているのでしょう。3つの書籍を比較してみます。

### 1-1-1.『徹底攻略 Java SE Bronze問題集[1Z0-818]対応』

 まずは、いわゆる黒本と呼ばれている、志賀澄人, 山岡敏夫『徹底攻略

元記事を表示

No.7【フローチャート(流れ図) 分岐処理&練習問題】プログラミングは一部の方だけのものではない!はじめてのプログラミング入門講座(アルゴリズムとJava基礎)動画付き

**【動画URL】** https://youtu.be/R9rgRonurkI

**【分岐処理】:天気を確認する**
![](https://storage.googleapis.com/zenn-user-upload/e1ec06f5afb9-20231009.png)

**【練習問題】**
バスに乗車した時に大人なら大人料金、子供なら子供料金を支払う様子をフローチャートにしてみよう
※解答例はあくまでも例で、これが正しい!という唯一の正解はありませんのでご了承下さい

<解答例>
![](https://storage.googleapis.com/zenn-user-upload/53c931a91517-20231009.png)

まとめてご覧になりたいあなたは
https://zenn.dev/codek2/books/63c880c460c21e

詳しく学びたいあなたは
https://zenn.dev/codek2/articles/e9e44f3e0023fb

Youtube
https://youtube.com/@co

元記事を表示

[Cloud Translation Basic API(V2)] Javaで翻訳がサポートされている言語のリストを取得する

Cloud Translation Basic API V1(Java)を使用して、
翻訳がサポートされている言語のリストを取得する方法
についてご紹介します。

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

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

## 1. 言語リストを取得
言語リストを取得します。

### 1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
“`
TranslateScopes.CLOUD_TRANSLATI

元記事を表示

[Android] Arm64でAnti-Disassembly/Decompile

昨日、このような素晴らしい記事を見かけました

こちらの記事ではPLDという命令を使用してアンチディスアセンブルを施していましたが、こちらでも言及されている通り、Arm64では存在しない命令です。

そこで、Arm64ではアンチディスアセンブルを施すことはできないのかと気になったので自分なりに調べてまとめてみました。

# 初めに

ArmにはDCBディレクティブという1バイト以上のメモリを割り当て、メモリの実行時の初期内容を定義するものがあります。

https://developer.arm.com/documentation/dui0473/m/directives-reference/dcb?lang=en

> The DCB directive allocates one or more bytes of memory, and defines the initial runtime contents of the memory.

そのほかにも種類があり、

元記事を表示

[Cloud Translation Basic API(V2)] JavaでTranslation Basic APIを使う

Googleが提供しているCloud Translation APIをJavaで使ってみました。
APIには、BasicとAdvancedがありますが、こちらの記事は**Basic**の方を扱います。

**Cloud Translation APIとは**
テキストを翻訳するAPIです。
翻訳には、Googleの事前トレーニング済みカスタムモデル、
または翻訳に特化した大規模言語モデル(LLM)が使用されます。

APIには、「Basic」と「Advanced」の2つのエディションがあります。
Basicでも翻訳は可能ですが、Advancedではさらに機能の追加がされています。
機能の違いは公式ドキュメントの[⧉Basic と Advanced の比較](https://cloud.google.com/translate/docs/editions?hl=ja)をご覧ください。

APIの利用料金は、どちらも 500,000文字/月まで無料です。
料金の詳細は公式ドキュメントの
[⧉Google AI でドキュメント、音声、動画をリアルタイムで翻訳できます](https://clo

元記事を表示

Javaで「Javaを使ったプログラムの作成と保存」の動作を確認してみた

# 概要

Javaで「Javaを使ったプログラムの作成と保存」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

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

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

# まとめ

何かの役に立てばと。

元記事を表示

苦手なラムダ式を克服する

## はじめに
今までラムダ式は**コードを簡潔に書ける便利なもの**くらいの理解でしかなかったので、今回はラムダ式を分解しながら克服していこうと思います。

## ラムダ式とは
> ラムダ式(lambda expression)とは、プログラミング言語に用意された記法の一つで、名前の無い無名関数(匿名関数)を簡潔に定義するもの。

よくわかりません。実際にコードで理解していきます。

## 前提知識
ラムダ式は**ローカルクラス**と**無名クラス**という仕組みを利用しています。

### ローカルクラスとは
ローカルクラスは**メソッド内で宣言するクラス**のことです。
インターフェースを実装したローカルクラスも定義できます。
“`java
public static void main(String[] args) {

class Local implements Runnable {
@Override
public void run() {
System.out.println(“Hello Lambda!”);
}
}

元記事を表示

[Google Docs API(V1)] Javaでドキュメントを作成・更新する

Google Docs API V1(Java)を使用して、
ドキュメントを作成・更新する方法
についてご紹介します。

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

|No|||目次|
|—|—|—|—|
|1|||[ドキュメントを作成](#1-ドキュメントを作成)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[ドキュメントを更新](#2-ドキュメントを更新)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#22-実行)|
||3||[レスポンスの内容](#23-レスポンスの内容)|

## 1. ドキュメントを作成
空白のドキュメントを作成します。

APIからドキュメント

元記事を表示

流れる美:ReactFlowを使ったジョブ実行グラフの表示

# はじめに
今回は、React Flowを使用してバックエンドシステムのジョブの実行状態を表示します。
![flow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3554924/53ee5f44-bd17-782a-ee55-ef26ef51bd8c.png)

# ReactFlow
React Flowは、ノードベースのアプリケーションを構築するためのライブラリです。これには、シンプルな静的なダイアグラムからデータの視覚化、複雑なビジュアルエディタまで、さまざまなものが含まれます。

# Job
銀行や保険のITシステムでは、バッチジョブの実行が一般的です。ジョブ同士には、実行順序や依存関係があります。このような複雑な関連性を表現するために、DAG(有向非巡回グラフ)を使用できます。

# DAG
DAG(Directed Acyclic Graph)は、ノードとエッジから構成されるデータ構造です。DAGは、ノードが順方向に結ばれた非循環グラフであり、ノード間には一方向の関係があります。これによ

元記事を表示

エンジニアに転職して3年目の今の気持ち

## はじめに
どうもこんちは!
現在フリーランスとして開発系のエンジニアをやらせてもらってます。

久しぶりに記事でも書くかぁ~と思いましたが
まぁ技術的な記事を書く意欲はもちろん起こらないので、
日常というか今までの振り返りを書いていこうと思います。

エンジニアに転職して、2年半くらいになります。
今までの経歴や、どんな気持ちで仕事をしていたかなどを徒然なるままに書いていきます。

暇な人は見てやってください~

## 1年目
当時27歳になるタイミングで転職しました。
前職はコールセンターや通信系の営業をしており、IT系というかパソコンは苦手でしたw

転職のきっかけは親しい友人がエンジニアに転職して1年くらいたって、
まぁなんか良い感じで仕事していたんで、転職の1つの候補くらいでエンジニアを考えてました。

そんで未経験でもOKな会社に応募して、面接が通りました。
当時はよっしゃー!合格したぞー!とか思ってましたが、今思えば誰でも採用しているような感じでしたw

最初の1カ月は座学で勉強して、毎週テストがありました。
最初の2週間後のテストで不合格の人は不採用で去っていきまし

元記事を表示

[Google Docs API(V1)] Javaでドキュメントの情報を取得する

Google Docs API V1(Java)を使用して、
Googleドキュメントの情報を取得する方法
についてご紹介します。

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

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

## 1. ドキュメントを取得
ドキュメントの情報を取得します。

### 1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
“`
DocsScopes.DOCUMENTS
DocsScopes.DOCUMENTS_READONLY
DocsS

元記事を表示

Spring + Authlete で OAuth / API サーバーを超速で構築する

# 概要
[Spring Boot](https://spring.io/projects/spring-boot) + [Authlete](https://www.authlete.com) を利用して、OAuth 2.0 / API サーバーを超速で構築する方法を解説します。

# アーキテクチャ

![](https://storage.googleapis.com/zenn-user-upload/865ecde5ad81-20240422.png)

# 手順

## 1. Authlete にサインアップ

[サインアップページ](https://so.authlete.com/accounts/signup)から、Authlete にサインアップします。

サインアップが成功すると、サービスオーナーコンソールに自動ログインされます。

## 2. サービス作成&設定

サービ

元記事を表示

単体テストでstatic変数いじったのに初期化しないのは時限爆弾を仕込むようなものだよ、というお話

# まず言いたいこと

単体テストの中で静的(`static`)なフィールド変数に変更を加える必要がある場合は、そのクラスでのテスト終了時に初期化しましょう。

# はじめに

本記事のタイトルは以下記事をオマージュしてます。読み物としても面白くてオススメなのでぜひ読んでみてください。

https://qiita.com/moromi25/items/61a8ae8750bec3078c10

で、本記事で伝えたいのは、`Mockito.mockStatic` と同様に **静的(`static`)なフィールド変数も時限爆弾化する** ということです。

※ 正しくは `static` なフィールドが時限爆弾化するんだから `mockStatic` も同様に…のロジックだけど上記の記事ありきの本記事だから許せサスケ(デコトン)

開発者のローカル環境やテストを差分実行しているCI上でテストが通ったとしても、日次のテスト全件実行で落ちることがあります(実行順とかがうまくかみ合えば落ちないんだけどね)

`static` なんだから当たり前でしょ、はそうなのですが意外とわかってない

元記事を表示

[Google Docs API(V1)] JavaでDocs APIを使う

Googleが提供しているGoogle Docs APIをJavaで使ってみました。

***Google Docs APIとは***
Googleが提供しているAPIで、Googleドキュメントに関する操作ができます。

Google Docs APIの利用料金は無料です。
ただし下記の利用制限があります。
|リクエスト|単位|1分単位の上限|
|—|—|—|
|読み取りリクエスト|プロジェクト単位|3000回/分|
||ユーザー単位|600回/分|
|書き込みリクエスト|プロジェクト単位|600回/分|
||ユーザー単位|60回/分|

詳細は[公式ドキュメント](https://developers.google.com/docs/api/limits?hl=ja)を参照ください。

|No|||目次|
|—|—|—|—|
|1|||[Google Docs APIを使用するための準備](#1-google-docs-apiを使用するための準備)|
||1||[プロジェクトの作成](#11-プロジェクトの作成)|
||2||[Google Docs A

元記事を表示

EclipseでSpring スターター・プロジェクトが出たり出なかったりする

# 1.はじめに
EclipseでSpring Bootアプリケーションを作成しようとした際に新規プロジェクトの
ウィザードがEclipseのバージョンやJDKの違い?によって出たり出なかったりしたので
調査結果を備忘録として結果を残していきます。

# 先に結論(追記)
どうして新規プロジェクトのウィザードが出たり出なかったりするの?
→各Eclipseが要求しているJDKの最低バージョンをこちらが守らなかったから

完全に自業自得でした。

# 2.実行環境、使用したソフト・JDKのバージョン

### 実行環境
Windows11
java version “1.8.0_291”

### 使用ソフト・JDK
Eclipse-2020-12-20201222
Eclipse-2021-12-20220106
Eclipse-2022-12-20230212
いずれもPleiades All in One のStandard Editionです

JDKは11及び17を使用して確認した
(Eclipse2022のFull Editionに付属していたものを使用しており環境変数には設

元記事を表示

Spring BootでWebアプリケーションを作ろう!

Spring Boot(Spring Data JPA)、PostgreSQLを使ってWebアプリケーションの作り方を解説しています

~ 新着情報一覧機能編~ 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3680113/45c9454c-9cf0-cfaf-4ae7-ecf07c06bab4.png)

〜新着情報登録機能編〜

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3680113/21dd810c-462c-f13c-b425-68e8923cc4a1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3680113/1a18c10b-1af4-9ca

元記事を表示

Todoアプリ(Java)

chatGPTにJavaで作らせたTodoアプリです。以下の3つのソースファイルを作ります。

~~~java:TodoItem.java
public class TodoItem {
private String task;
private boolean completed;

public TodoItem(String task) {
this.task = task;
this.completed = false;
}

public void complete() {
this.completed = true;
}

public boolean isCompleted() {
return completed;
}

@Override
public String toString() {
return (completed ? “[完了] ” : “[未完了] “) + task;
}
}
~~~

元記事を表示

【Maven】プロジェクト作成からビルドまで

## はじめに
Mavenプロジェクトの作成からビルドまでの概要をサクッと知りたい方向けの記事です。
初めてMavenに触れる方への参考になれば幸いです。

Mavenは、Javaでソフトウェア開発を行うためのプロジェクト管理ツールです。
プロジェクトをビルドしたり、Javadocやプロジェクトサイトを生成することができます。
ビルド手順を書かないため、シンプルで高度な自動化が実現できます。

## 0.実行環境
vscode
Java 17
apache-maven-3.9.6

## 1.プロジェクト構成
以下のような、Maven標準のフォルダ構造を作成します。
“`:maven-sample-project
│ pom.xml

└─src
├─main
│ ├─java
│ └─resources
└─test
├─java
└─resources
“`

## 2.pom.xml(構成ファイル)の作成
pom.xmlは、プロジェクトの設定を記述したファイルです。
ビルド内容や、依存するライブラリの情報

元記事を表示

Interfaceを使用してSwitch文の保守性を上げる

interfaceを使用して、Switch文を多用したコードの可読性を上げる方法を記載します。

### サンプルコード

ワンちゃんの種類に応じて、可愛さ、攻撃力、知名度を返す関数を考えます。
ワンちゃんの種類は`DogType`のEnumに定義し、`Dog`クラスの各関数がそれぞれ値を返します。

“`DogType.java
package org.example.interfaceExample;

public enum DogType {
kyabaria,
tiwawa,
doberman
}
“`

“`Dog.java

package org.example.interfaceExample;

public class Dog {
public int cutePoint(DogType dogType) {
switch (dogType) {
case tiwawa -> {
return 5;
}
ca

元記事を表示

OTHERカテゴリの最新記事