JAVA関連のことを調べてみた2022年12月01日

JAVA関連のことを調べてみた2022年12月01日

curry化と部分適用をJavaで

この記事は アイスタイル [Advent Calendar 2022](https://qiita.com/advent-calendar/2022/istyle) 1日目の記事です。

みなさんこんにちは。
入社4年目、アイスタイルのバックエンドサービスを担当しているkuriyamayです。

アドベントカレンダーへの参加はこれで3年連続3回目となりまして、去年・一昨年の記事はこちらです。

* [kubernetes(k8s)を構築してデプロイやスケールで遊んでみた](https://techblog.istyle.co.jp/archives/6296)
* [Java SE 11(Java Silver)を受験した話](https://techblog.istyle.co.jp/archives/8225)

ここ最近はオンプレサービスをAPI Gateway + Lambdaにしたり、オンプレサービスをコンテナ化してECSで動かしたりとAWS移行を主にやっていました。
プログラミング関連のアウトプットはあまり出来ていなかったのでアドベントカレンダーでしていこうと思います。

元記事を表示

Cloud Run の CPU boost 機能を試してみた

# はじめに

こんにちは、京セラコミュニケーションシステム 福留(@kccs_kazuo_fukudome)です。

先日、Cloud Run の新機能 CPU boost が発表されました。
参考:https://cloud.google.com/blog/ja/products/serverless/announcing-startup-cpu-boost-for-cloud-run–cloud-functions

Cloud Functions、Cloud Run で CPU boost 機能を利用すると、コールドスタートからの起動が早くなる、とくに Java アプリケーションでの効果が高いという説明でした。今回は Spring Boot アプリケーションで、簡単な REST API のアプリケーションのコンテナを作成し、CPU boost を利用した時と利用しない時で、どのくらいレスポンスタイムに差が出るのかを検証してみました。

:::note info
本記事は 2022 年 11 月ごろに作成しております。
Google Cloud の機能を利用した場合は、利用料が

元記事を表示

Reactiveプログラミング初めの一歩

この記事は[SRA Advent Calendar 2022](https://qiita.com/advent-calendar/2022/sra)の1日目の記事です。

こんにちは! 関西事業部の佐々木です。

# Reactiveプログラミングとは
Reactiveプログラミングを勉強しようと思って「Reactiveプログラミングとは」などのキーワードでWeb検索するとたくさんの記事がヒットします。
ただ、それら記事をあまり前提知識のない状態で目を通しても理解するのは難しいのではないでしょうか。

> 値の変更を伝播させるデータフロー指向のプログラミングパラダイム

> 値の関係性を記述してプログラミングする

などと説明されて一発でわかる人はいいですが、何のことかよくわからない人もいると思います。
他にも「Reactiveプログラミング」と「関数型Reactiveプログラミング」の違いだとか難しい説明がいくらでも出てきます。
Reactiveプログラミングを本質から理解することは、それはそれで重要でしょうが、具体的なプログラミングを通して徐々に慣れていくことで本質に近づい

元記事を表示

12月1日

はじめに


初投稿、スマホで入力しております。数日前より家のネット環境が繋がらなくなり、スマホのデータ使用量が制限オーバーとなり、ダイヤルアップ時代のような感じでやっております。事前に投稿方法を勉強し、予約投稿もばっちりしておく予定は崩れ去りました。書式や文体、内容がルールに反しておりましたら申し訳ありません。復旧したあかつきには修正して参ります。

自己紹介


大学まで、完全な文系学生でした。
社会人になってからは、色々なお仕事をしまして、気づけばIT業界の片隅で20年くらい生きてきたようです。

前職はWebディレクターをやっていました。Webディレクターといっても、会社の規模や方針などによって、担当する業務は色々なのかな、と思います。
私は1サイト専属で、立ち上げ準備から始まり、その後の運営に関わる中の人を長らくしていました。

具体的には

  • サイトの更新
  • 企画の立案
  • 制作進行
  • ライティング・編集
  • メルマガの作成・配信
  • データベー
元記事を表示

初めてのJAVA

初めてJAVAに触れたのは、いつだったろう。 

Visual J++という開発環境があった頃だったかもしれない。

https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ms715962(v=vs.85)

https://microsoft.fandom.com/wiki/Visual_J%2B%2B

GUIのコードを自動生成してくれる。 
他の自動生成系と同様、人間にとっての可読性は低かったような気がする。 

何か月かで、Visual C++に戻りつつ、他のJAVA環境へと移っていった。

ありがとうVisual J++

# 参考資料

「基礎からわかるTCP/IP JAVAネットワークプログラミング」Eclipseでコンパイル。Wiresharkでデバッグ。

https://qiita.com/kaizen_nagoya/items/14519536b827fdadb32e

第二章JAVAによるネットワークプログラミング phttpd 三箇所でException収集

https:

元記事を表示

KotlinでSpock入門[基礎編]

この記事は筆者のソロ [Advent Calender 2022](https://qiita.com/advent-calendar/2022/panda) 1日目の記事です。

普段はKotlinを業務で使っており、テストに関してはKotestを使用していますが、テストの書きやすさなどでSpockを使用しているという方もいるようで気になっていたためKotlinプロジェクトにSpockを導入してみました。

# Spcok is 何?
SpockはJava, GroovyなどのJVMアプリケーション向けのテスティングフレームワークです。テストコードはGroovyで記述し、given・when・thenブロックでそれぞれの処理を書いていくため見やすく、綺麗なテストコードが書け、それ自体が仕様書の役割を果たせます。

https://spockframework.org/

# 対象読者
– Java, Kotlinで開発している人
– Java, Kotlinでテストを書いている人
– Spockを聞いたことはあるけど触ったことない人
– テストについて興味がある人

# setup

元記事を表示

Null

null

元記事を表示

日本語クエリオートコンプリーションの実現

## はじめに

スタンバイ一発目のアドベントカレンダーです。
現在スタンバイでは、クエリオートコンプリーション機能のリプレイスを行っており、その際にぶち当たった難しさや日本語クエリオートコンプリーション実現の考え方を書いています。
また、日本語のクエリオートコンプリーションに関しての記事が少なかったので一助になれたらいいなと思っています。

## 前提
Luceneを使った実現方法
実際のコードなどは書いていない

## クエリオートコンプリーションとは

百聞は一見にしかずということで↓この機能です。

検索窓に対して文字を入力するとその文字で始まるサジェストワードを一覧で出してくれる機能のことを言います。

![スクリーンショット_2022_11_26_23_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150144/fcb8e990-f9ef-a995-e1db-605ecf6955c6.png)

## どのようなことを実現したいのか

ではどのような文字列を受け取った時にどの

元記事を表示

Javaで何か作ってみる(2022/11/30 Day41)

## 今日やった事
– Twitterで、ビンゴゲームの課題があったので、やってみた。
→コミットした内容は[こちら](https://github.com/takamatsuryota3/Java/commit/d91d2406394620ee9ca6c33596e0f6a45703cf75)
## 参考にしたもの
– [Javaでビンゴゲームのコードを作成したい](https://teratail.com/questions/kav3aoefaf30b6)
→ここに答えが書いてあるようなものだが、見てやっても意味ないので、極力見ないようにしている。
– [【Java】ビンゴカード作成問題を解く – Qiita](https://qiita.com/kim-shun/items/fee32cf0cb3cc009756a)
→こちらも同様。

## 所感
– 今日は抽選回数をコマンドライン引数で指定できるようにしたのと、指定した回数内でビンゴになった場合と
そうでない場合で、メッセージが変わるように修正した。
– リーチについては、全てのマ

元記事を表示

Javaで何か作ってみる(2022/11/29 Day40)

## 今日やった事
– Twitterで、ビンゴゲームの課題があったので、やってみた。
→コミットした内容は[こちら](https://github.com/takamatsuryota3/Java/commit/f5eae6a29604b5f8484885930dc8ad97825aacd9)
## 参考にしたもの
– [Javaでビンゴゲームのコードを作成したい](https://teratail.com/questions/kav3aoefaf30b6)
→ここに答えが書いてあるようなものだが、見てやっても意味ないので、極力見ないようにしている。
– [【Java】ビンゴカード作成問題を解く – Qiita](https://qiita.com/kim-shun/items/fee32cf0cb3cc009756a)
→こちらも同様。

## 所感
– 今日はビンゴ判定の追加、ビンゴの時のメッセージを追加した。
– リーチについては、全てのマスについて、管理しなきゃならなそうなので、面倒なので後回し。
## 明日の予定
– ビンゴゲーム作

元記事を表示

【Struts2】ファイルダウンロード機能の作成

# 概要
Struts2でファイルをダウンロードするAPIを作成しました。(厳密には全部Struts2ではない。。。)

ファイル情報を取得するクラスからリターンされたらダウンロードできる仕組みです。
今の現場でここしかStruts2を触ってきていませんが、せっかくなので備忘録として残します。

流石に現場のソースを丸々書けないので、今回は機能として主要な部分だけを記載します。
記載されていることだけでは動かないので悪しからず。。。

Struts2でどうやってファイルをダウンロードすればいいんだと詰まっている人の参考にはなるかなと思います!

##### この記事でわかること
・Streamを使ってレスポンスでファイルをダウンロードさせる

##### 逆にこの記事ではわからないこと
・Struts2の概要
・ファイル情報の作成の仕方

##### 前提
・ファイル情報がある(モデルクラスが存在している)

# ファイル情報(モデルクラス)
今回、ファイル情報が格納されるクラスは以下のようなものを例として使用します。
最低限のシンプルなクラスです。

“`Java:FileDat

元記事を表示

Leetcode 744. Find Smallest Letter Greater Than Target

# 744. Find Smallest Letter Greater Than Target

https://leetcode.com/problems/find-smallest-letter-greater-than-target/
## 難易度
### Easy

## アプローチ
### 二分探索

“`java
class Solution {
public char nextGreatestLetter(char[] letters, char target) {
int letters_length = letters.length;
int low = 0;
int high = letters_length – 1;

if (target < letters[low] || target >= letters[high]) {
return letters[low];
}
while (low <= high) {

元記事を表示

#22 Spring Mybatisを利用したデータベース操作[3. SELECT 複数件]

# #22 Spring Mybatisを利用したデータベース操作[3. SELECT 複数件]
今回はMybatisを用いてSELECT文を実装し、データを複数件取得します。

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため所々説明は省略します。

# 前回まで
前回はMybatisを利用してデータの挿入を行いました。

https://qiita.com/Jackoguro/items/f89993b68de898b1441c

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5
mybatis-spring-boot-starter ver 2.2.2
Model Mapper ver 3.1.0
jquery ver 3.6.1
bootstrap ver 5.2.2
webjars-locator ver 0.46
thymeleaf-layout-dialect ver 3.0.0

2. 依存関係
![image.png](htt

元記事を表示

#23 Bootstrapの各機能まとめ3 [Tables]

# ##23 Bootstrapの各機能まとめ3 [Tables]
Bootstrapを機能毎にまとめて行きます。
今回は第3弾として今回はTablesをまとめます。

# 前回まで
前回はNavbar, Dropdown, Containersの機能を中心にまとめました。

https://qiita.com/Jackoguro/items/d9e3ef1203bd79234610

## 1. Tables
https://getbootstrap.jp/docs/5.0/content/tables/

Tablesの使い方として、“

“タグに基本形クラス“.table“を追加した上で任意でオプションを付けていきます。

### 1. Variants
表、表の行、表の項目等に色を付けることができます。
“`html

jarで実行するSpringBoot(Java)アプリケーションで、resources配下のExcelファイルを扱う方法

####  jarに圧縮してデプロイするタイプのSpringBootアプリケーションで、resourcesフォルダ内のExcelファイルを使用したい
 以下のようにPathクラスを使用しても、jarに圧縮するアプリケーションでは取得できず、NoSuchFileExceptionが吐かれます。

“`java:Pathクラスで取得するソース.java
// resourceフォルダ内に存在するファイルのパスを変数:pathに代入 <--NoSuchFileExceptionがスローされる Path path = Paths.get("example/src/main/resources/Excel.xlsx"); // パスのファイルを操作(Excelを操作するWorkbookクラスを使用) Workbook wb = WorkbookFactory.create(new File(path.toString())); ``` ####  なぜ例外が発生するのか?  Javaプロジェクト内に存在するresourceフォルダ内のリソースファイルは、ja

元記事を表示

アルゴリズム

###アルゴリズム?
1 2 3 5 8 13 21 34 55
“`java
int [] argo = new int [3];
argo [0]=0;
argo [1]=1;
argo [2]=argo [0]+argo [1];
// System.out.print(argo [0]);
// System.out.print(” “);
// System.out.print(argo [1]);
// System.out.print(” “);
// System.out.print(argo [2]);
// System.out.println(” “);

for(int i = 0;i<=10;i++){

元記事を表示

gradlew.batが見つからないときの対応

VSCodeでflutterを使った開発をしようと立ち上げるとgradleのエラー。
gradleは便利なんだろうけど、いつも初っ端にエラーを発生しやる気を削いでくれる。
gradleのパス等は設定したけど
`C:\\xxxxx\\xxxxx\\android/gradlew.bat`に対して`指定されたファイルが見つかりません。`と言われるときの対応

確かに該当ファイルは存在しない。 なので作成する必要がある。
コマンドプロンプトを立ち上げ、上記のフォルダに移動して以下のコマンドを入力する。
そうすると`gradlew.bat`が作成される。

“`
gradle wrapper
“`

元記事を表示

java 二次元配列で成績表を作るメモ

まったくの初心者がJavaプログラミング学習を始めたので
アウトプットのため投稿します。
使っている教材の課題です。

Javaで一覧表を作成して表示させましょう。
また、各教科の合計点と、平均点をそれぞれ算出して表示しましょう。

“`java
package jp.win.java.chapter7;
public class sample7_05 {

public static void main(String[] args) {
int test [][] ={
{64,60,73},
{72,55,70},
{48,58,83},
{58,63,60},
{79,83,62},
};
int goukei[] = {0,0,0};

System.out.println(“\t”+ “\t英語”+ “\t数学”+ “\t国語”);

for(int i = 0;i < test.length; i++){ System.out.print("\n"+(i+1)+"人目"); for(i

元記事を表示

GithubPackagesでパッケージを公開する時に発生した問題

# 書こうと思った動機
Github Packageに登録しようとした時に、この問題に遭遇しました。
この問題を解決するのに、ちょっとだけ時間がかかったので、自分の備忘録として何か書いておこうと思いました。

# 背景
最近ではGithub Actionsは無料枠があり、CI/CD環境として知名度が上がってきました。
私自身も興味があったのですが、公開したいライブラリを作るみたいな案が私自身にあまりなく、触る機会がありませんでした。
この度は参加している案件で、Github Actions/Github Packagesに触れる機会があり触ってみた所、この問題に遭遇しました。
私が0から作ったわけではなく、既に環境整備が終わっている状態で、Packagesに追加で登録するというタスクでした。
なので基本コピペしたら動くだろうと考えていました。
公開するPackageはJavaのLibraryで、Mavenを使ってBuildしています。

# 本記事では触れないこと
– github actionsの定義ファイルの書き方

# 本題
実際どういう問題が発生したかというと、**ビルドが通ら

元記事を表示

Leetcode 1207. Unique Number of Occurrences

# 1207. Unique Number of Occurrences

https://leetcode.com/problems/unique-number-of-occurrences/

## 難易度
### EASY

## アプローチ
### HashMap, HashSet

“`java
class Solution {
public boolean uniqueOccurrences(int[] arr) {

HashMap hashMap = new HashMap<>();
HashSet set = new HashSet<>();
for(int i : arr){
hashMap.put(i, hashMap.getOrDefault(i,0) + 1);
}

for (Map.Entry a: hashMap.entrySet()) {

元記事を表示

OTHERカテゴリの最新記事