- 1. Azure Container Apps (ACA) に Java JAX-RS カスタムコンテナイメージをデプロイする
- 2. Leetcode 17. Letter Combinations of a Phone Number
- 3. 【Java】HashMapの使い方
- 4. Spring bootで良く見るDI方法の違い(コンストラクタ vs @Autowired)
- 5. Javaで「Pathオブジェクトを使ってファイルやディレクトリを表す」の動作を確認してみた
- 6. スッキリわかるJava入門 第3版を読んでみて-part4-
- 7. Docker 環境で Java JAX-RS Webサービスを起動する
- 8. Hamcrestとは
- 9. JAVA練習_01
- 10. 【JAVA・学習ログ②】「式」「型変換」「命令実行文」について
- 11. java アウトプット メソッド
- 12. Leetcode 46. Permutations
- 13. enumが列挙型だから、enumのコンストラクタは暗黙的にプライベートになり、外部からのインスタンス化ができない件について
- 14. [速習] ドメイン駆動設計 最新 GPT-4 32kを使用した設計手法について
- 15. スッキリわかるJava入門 第3版を読んでみて-part3-
- 16. Javaのサンプルプログラム(電卓)について学習してみた
- 17. 8ビット2進数を10進数に変換するゲームの解説
- 18. Android Bluetooth接続 PINコード setpinで入力(Java)
- 19. Java:インスタンスの考え方
- 20. 【Java】HashSetの使い方
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) {
ArrayListresult = 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) {
// ペアで値を格納
Mapprefs = 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.javapackage 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) {
Setcolors = new HashSet ();
colors.add(“赤”);
colors.add(“黄”);
colors.add(“青”);
// 重複して「赤」を格納しようとしても無視される
colors.add(“赤”);
System.out.println(“色は” + colors.size() + “種類”);
}
}
“`
![image.png](https://qiit