JAVA関連のことを調べてみた2023年08月04日

JAVA関連のことを調べてみた2023年08月04日

Azure Container Apps (ACA) に Java JAX-RS カスタムコンテナイメージをデプロイする

# Azure Container Apps (ACA) に Java JAX-RS カスタムコンテナイメージをデプロイする

こんにちは、株式会社船井総研デジタルの @fsdg-adachi_h です。今回は、Azure Container Apps 環境で、Java JAX-RS Web アプリケーションをコンテナとして起動する方法を紹介します。
![java_on_azure-container-apps.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3206449/2debf0a5-df60-adb4-3efa-fe8eb0c69ad9.png)

## 目的

Windows 11 の Linux でクラウド開発します。

こちらから記事の一覧がご覧いただけます。

https://qiita.com/fsdg-adachi_h/items/6119ab05d8b13527efd8

## 実現すること

Microsoft Azure Container Apps (ACA) に Java

元記事を表示

Leetcode 17. Letter Combinations of a Phone Number

https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/

## アプローチ
– backtracking

“`java
class Solution {

public List letterCombinations(String digits) {
ArrayList result = new ArrayList<>();
if (digits.length() == 0) {
return result;
}

HashMap map = new HashMap<>();
map.put(‘2’, “abc”);
map.put(‘3’, “def”);
map.put(‘4’, “ghi”);
map.put(‘5’, “jkl”);

元記事を表示

【Java】HashMapの使い方

# はじめに

### Mapとは
* 「キー」と「値」をペアにして複数のデータを格納できる
* 要素を繰り返し処理で「ループ」する事が可能
※ 「キー」任意の文字列を使用できます。「値」StringやIntegerなどの参照型です。

# HashMap
* Mapの実装クラス
* キーと値のペアをマップに追加します
※ Hash(寄せ集め)、Map(位置付け)

### HashMapのインスタンス化
“`java:インスタンス化
Map<キーの型, 値の型> マップ変数 = new HashMap<キーの型, 値の型>();
“`

# サンプルコード
“`java:HashMapクラスの利用
public class ClassA {
public static void main(String[] args) {
// ペアで値を格納
Map prefs = new HashMap<>();
prefs.put(“北海道”, 1000);
prefs.put(

元記事を表示

Spring bootで良く見るDI方法の違い(コンストラクタ vs @Autowired)

日頃の業務でなんだかんだJavaを書きますが、良くわかっていない部分があったのでその解消。

Springフレームワークを使っていますが、他のクラスを利用する際にDIしますよね。
書き方としては、@Autowiredを利用する場合とコンストラクタを利用する場合があると思います。

皆さんはどちらですか。
私が担当しているアプリでは後者のコンストラクタを利用する方が主流です。
せっかくなのでこの違いを整理してみました。

# コンストラクタを利用する書き方
HogeValidatorクラスをDIする際こんな感じで書きますね。
“`Main.Java
@Service
public class HogeServiceImpl implements HogeService {

// ① インターフェースのfinal宣言
private final HogeValidator hogeValidator;

// ② コンストラクタでのDI
@Autowired
public HogeService(HogeValidator hogeVal

元記事を表示

Javaで「Pathオブジェクトを使ってファイルやディレクトリを表す」の動作を確認してみた

# 概要
Javaで「Pathオブジェクトを使ってファイルやディレクトリを表す」の動作を確認してみました。以下のページを参考にしました。

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

# 実装
以下のファイルを作成してみました。
“` JSample1_1.java
import java.nio.file.Path;
import java.nio.file.Paths;

class JSample1_1{
public static void main(String[] args){
Path p1 = Paths.get(“C:\\code\\java\\file\\report.txt”);
Path p2 = Paths.get(“C:”, “code”, “java”, “file”, “report.txt”);
Path p3 = Paths.get(“C:/code/java/file/report.txt”);
Path p4 = Paths.get(“C:/code/ja

元記事を表示

スッキリわかるJava入門 第3版を読んでみて-part4-

# はじめに
こんにちは(・ω・)ノ
今回は配列について学びました!

## 第4章 配列
### 1.配列のメリット
データ構造…一定のルールに従ってデータを格納する形式
代表的なもの __配列__

配列とは…
 同一種類の複数データを並び順で格納するデータ構造
<イメージ>
箱が連続して並んでいる
[0][1][2][3][4][5][6][7]

箱の一つひとつを __要素__
配列の各要素には同一種類のデータしか格納できない
 ⇨「1つ目には数値、2つ目には文字列」のようなことはダメ?

各要素にある番号を __添え字__
添え字は0から始まる決まりになっている

### 2.配列の書き方
配列の作成には以下の2ステップが必要
Step1.配列変数の宣言
 `要素の型[] 配列変数名`
Step2.要素の作成と代入
 `配列変数名 = new 要素の型[要素数]`
上記のStep1,2を同時に行うことも可能
例:`int []scores = new int[5];`

配列の要素数の取得
 `配列変数名.length`
配列の利用方法
`scores[1]=10;`

元記事を表示

Docker 環境で Java JAX-RS Webサービスを起動する

# Docker 環境で Java JAX-RS Webサービスを起動する

こんにちは、株式会社船井総研デジタルの @fsdg-adachi_h です。今回は、WSL Ubuntu 22.04 の Docker 環境で Java JAX-RS Web アプリケーションをコンテナとして起動する方法を紹介します。
![java_on_docker.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3206449/bae348c7-5527-6f0f-5eb6-38c684377bc5.png)

## 目的

Windows 11 の Linux でクラウド開発します。

こちらから記事の一覧がご覧いただけます。

https://qiita.com/fsdg-adachi_h/items/6119ab05d8b13527efd8

## 実現すること

ローカル環境の Ubuntu の Docker 環境で、Dockerfile からビルドした Java JAX-RS Web サービスのカスタムコンテナを起

元記事を表示

Hamcrestとは

### Hamcrestとは

:::note
JUnitと一緒に使われることが多い**ライブラリ**である
**テスト結果の検証(アサーション)を行うときに便利**
:::

### Hamcrestの特徴

– 独自のマッチャーを使用してテスト結果を意味のある文章で表現できる
よって**テストコードの可読性が上がりテストの意図が明確となる**

### Hamcrestのマッチャーの例

– **文字列**
“`java
String actualString = “Hello, World!”;
assertThat(actualString, containsString(“Hello”)); // actualStringに”Hello”を含むか検証
assertThat(actualString, startsWith(“Hello”)); // actualStringが”Hello”で始まるか検証
assertThat(actualString, endsWith(“World!”)); // actualStringが”World!”で終わるか検証

“`
– *

元記事を表示

JAVA練習_01

初めまして

現在都内でITエンジニアとして働いている者です。

ITエンジニアとしてキャリアをスタートして現在9か月程です。
この記事ではこれからJAVAを触り始めましたので自身の勉強したことや感想を書いていきます。
まだ始めたばかりでこんなこともわからないのかと思うかもしれませんが見ていただきましたら勉強方法など教えていただけると嬉しいです。

目次

・JDKのインストール
・OpenJDKのインストール
・PATHの設定及び環境変数JAVA_HOMEの設定

JDKのインストール

まず最初にJAVAアプリケーションを開発するうえで必要となるJava SE Development Kit (JDK)のダウンロード、インストールから始めました。
今回は参考にしたサイトに記載されていたoracle社が提供しているOpenJDKをダウンロード、インストールしました。

参考:
以下のサイトで勉強しました。
タイトル「JAVA入門」
https://www.javadrive.jp/start/

以下のURLからダウンロードしました。
・http://jdk.java.net

元記事を表示

【JAVA・学習ログ②】「式」「型変換」「命令実行文」について

第2回教本に沿ってやってみたシリーズ

≪使用教材≫スッキリわかるJava入門 第3版 スッキリわかるシリーズ
## ■「式」
計算処理をコンピューターに行わせる文を「式」という。
式は”オペランド”と”演算子”のみで構成される。
![スクリーンショット 2023-08-02 002333.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520365/3f018352-7655-6817-6e50-0e1e97ea300f.png)

*リテラル
 ”オペランド”の中でソースコードに記述される具体的な値。画中だと「12」「6」。
 リテラルはそれぞれ適したデータ型を持っており、「12」や「6」などの小数点のない整数は『int型』に属す。

*エスケープシーケンス
 「”」「’」などの引用符記号、¥、改行を記述する際に用いられる特殊な文字。
 上記記号を画面に表示したい場合に用いる。

  ▽ 表示したい文字列
![スクリーンショット2023-08-02 020143.png](https://

元記事を表示

java アウトプット メソッド

# mainメソッド
mainメソッドには以下の2つのルールがあります。

① ファイルを実行するとmainメソッドが実行される
② mainメソッドの引数などは、必ず決められた通りに記述する必要がある

__① ファイルを実行するとmainメソッドが実行される__
今までreplitにコードを書く際に、以下のような記述を行ってきました。
“`java
class Main {
public static void main(String[] args) {
// ここに処理を書く
{
}
“`
この2行目を見ると「main」という文字が見えますが、これはメソッド名を表しています。

つまり、今まで書いてきたコードは、mainメソッドの中身を定義してきたことになります。
Javaのmainメソッドには、ファイルの実行時に自動的に実行されるというルールがあります。そのため、mainメソッドを実行するコードを書かなくても実行されるのです。

__② mainメソッドの引数などは、必ず決められた通りに記述する__
通常のメソッドは引数の設定などを変更できますが、m

元記事を表示

Leetcode 46. Permutations

https://leetcode.com/problems/permutations/description/

## アプローチ
– Backtracking

“`java
class Solution {
public List> permute(int[] nums) {
List> result = new ArrayList<>();
helper(new ArrayList<>(), new boolean[nums.length], nums, result);
return result;
}

public void helper(ArrayList arrayList, boolean[] isVisited, int[] nums, List> result) {
if (arrayList.size() == nums.length) {
resu

元記事を表示

enumが列挙型だから、enumのコンストラクタは暗黙的にプライベートになり、外部からのインスタンス化ができない件について

# :mag_right:enumが列挙型だからと言われてもピンとこない

:::note
**enumは列挙定数を表現するために使用されることが多く、その定数はプログラム内で固定された値として利用される
新しいインスタンスを生成することができると、enumの特性を損なう可能性がある**
そのため、enumのコンストラクタを暗黙的にプライベートにして、外部からのインスタンス化を禁止している
:::

例えばこんなenumがあったとする
“`java
enum DayOfWeek {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}
“`

> enumは列挙定数を表現するために使用されることが多く、その定数はプログラム内で> 固定された値として利用される

例のenumは曜日を表現するものであり、定数は固定された値である

> 新しいインスタンスを生成することができると、enumの特性を損なう可能性がある

もし新しいインスタンス(曜日)を生成できてしまうと困るよねということ

>

元記事を表示

[速習] ドメイン駆動設計 最新 GPT-4 32kを使用した設計手法について

![c05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521573/6cc17903-9d1a-aeab-2629-baff058f039c.png)

## GPT-4 32k

大規模なコンテキストサイズにより複雑なタスクを破綻せずに実行することが可能となりました。これを利用し、ドメイン駆動設計(DDD)のプロセスをGPT-4 32kを使用して実現したいと思います。これは、あくまで思いつきによる実験ですが、32kの可能性を探求する一環として、その結果は大いに意義があると考えています。

## ステップの解説

GPT-4 32kを使用したドメイン駆動設

元記事を表示

スッキリわかるJava入門 第3版を読んでみて-part3-

# はじめに
こんにちは・ω・)ノ
今回は条件分岐と繰り返しについて学びました!

## 第3章 条件分岐と繰り返し
### 1.プログラムの流れ
 __制御構造(制御フロー)__…文を実行させる順番

代表的なもの3つ
・順次 
 文 → 文
・分岐 
     → A
 文 ー|
     → B
・繰り返し
 文 → 文
 ↑______|

:star2:構造化定理
 順次・分岐・繰り返しの3つの制御構造の組み合わせで
 どんな複雑なプログラムでも作成可能

制御構造を表す文ー __制御構文__
分岐ーif文
繰り返しーwhile文

制御構文の構成要素
・条件式ー分岐条件や繰り返しを続ける条件を示した式
・ブロックー分岐や繰り返しで実行する一連の文の集まり

### 2.ブロックの書き方
__ブロック__…複数の文をひとまとまりとして扱うもの

ルール1:波カッコの省略
 内容が1分しかなければ波カッコを省略可能
※プログラムのミスの防止として省略は非推奨
ルール2:ブロック内で宣言した変数の寿命
  ブロック内で宣言した変数は、そのブロックが終わると同時に消滅する

元記事を表示

Javaのサンプルプログラム(電卓)について学習してみた

# 概要
Javaのサンプルプログラム(電卓)について学習してみました。以下のページを参考にしました。

サンプルプログラム(電卓)

https://www.javadrive.jp/start/sample1/

入力された値の読み取り

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

演算子のチェック

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

数字のチェック

https://www.javadrive.jp/start/sample1/index3.html

完成版

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

# まとめ
何かの役に立てばと。

元記事を表示

8ビット2進数を10進数に変換するゲームの解説

# 8ビット2進数を10進数に変換するゲームの解説

この記事では、Javaで作成された8ビット2進数を10進数に変換するゲームについて解説します。このゲームはランダムに生成される8ビットの2進数を10進数に変換し、ユーザーにその答えを入力してもらい、正解かどうかを判定するシンプルなゲームです。
基本情報技術者を勉強の合間につくりました。

# プログラムの概要

1. ランダムな8ビットの2進数を生成し表示する。
2. 8ビットの2進数を10進数に変換する。
3. ユーザーに10進数を入力してもらう。
4. ユーザーの入力と正解を比較し、結果を表示する。

# ゲームのコードの解説

1. ランダムな8ビットの2進数を生成し表示する

“`java
int[] binary_bits = new int[8];
for (int i = 0; i < binary_bits.length; i++) { binary_bits[i] = new Random().nextInt(2); System.out.print(bin

元記事を表示

Android Bluetooth接続 PINコード setpinで入力(Java)

### ■概要
##### 1:Bluetooth接続テスト
##### 2:PinCodeを手動ではなく、プログラムで挿入し、その後SPP通信でsocketをconnectして、接続状態 & デバイス登録状態をつくる。
##### 3:2の状態を作ることによって、connectがほぼ100%繋がる状態を作る。

### ■UI
![Screenshot_2023-08-01-17-06-50-514.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/bd7fd071-f972-39f8-79e3-374a14447e62.jpeg)

### ■ソースコード
“`java MainActivity.java

package com.example.bluetooth_con_test_01;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
impor

元記事を表示

Java:インスタンスの考え方

インスタンス生成って何よってお話

新卒SE一年目
Java未経験
→業務で2ヶ月弱使用
→Oracle Java bronzeに挑戦予定

Javaを勉強していく中で今まで全く聞き覚えがないインスタンスやらメソッドやらフィールドやら継承、ポリモフィズムなどの言葉がずらずらと…
未経験者の自分としては勉強中の自分に共感してくれる人が多いのではないかと思う。

今回はインスタンス生成、メソッド、フィールドについて取り上げたいと思う。

コメントで//インスタンス生成〜
とか書いてあることがちらほらと

正直インスタンスって何?何を生成するの?
疑問が次々に湧き出てきてもやもやが止まらなかった。

しかし!
そんななかわかりやすい例えをしている人が!

その例えとは
遊戯王やポケモンカードなどを例えにしていた。
今回は遊戯王例にしていく。

どういうことかというと…

モンスターカードを召喚
→インスタンス生成

カードの効果
→メソッド

モンスターのステータス
→フィールド

正直これが自分にとって1番しっくり来た。

ただしカードゲームを知っている人しか共感していただけないと思

元記事を表示

【Java】HashSetの使い方

# はじめに
## HashSetとは
* 要素の重複を許可しない集合構造
※ 集合(Set)
# Setの特性
## 1.重複が許されない
* add()で要素を格納できるが、同じ要素ががあると(`equals()`で等価と判断される)が格納されていると`無視される`
“`java:重複した値の追加
public class ClassA {
public static void main(String[] args) {
Set colors = new HashSet();
colors.add(“赤”);
colors.add(“黄”);
colors.add(“青”);
// 重複して「赤」を格納しようとしても無視される
colors.add(“赤”);
System.out.println(“色は” + colors.size() + “種類”);
}
}
“`
![image.png](https://qiit

元記事を表示

OTHERカテゴリの最新記事