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

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

【VSCode+SpringBoot】SpringBootでAPIを作るメモ

## はじめに
**SpringBoot**で**API**を作成するための環境構築

## 環境
* Windows10(11でも可)
* Visual Studio Code
* SpringBoot

## 環境構築
1.VSCodeダウンロード

https://code.visualstudio.com/

2.拡張機能インストール
「Ctrl + Shift + X」で拡張機能の検索バーを出す

「Java Extension Pack」と入力し検索
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627466/d9309c26-0538-1c5f-b899-bca87416af87.png)

Java Extention Packをインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627466/5363fddb-62da-51b0-552a-492e9419f2

元記事を表示

OpenJDK のコンテナイメージについて調べてみた

この記事は [NTTコムウェア AdventCalendar 2023](https://qiita.com/advent-calendar/2023/nttcomware) 11日目の記事です。

# はじめに
NTT コムウェアの坂本翔平です。普段は OpenJDK に関する技術支援や技術調査に従事しています。

コンテナ技術の普及に伴い、コンテナ環境で Java アプリケーションを動作させる機会も増えてきました。
しかし Java アプリケーションをコンテナ環境で動かすために都度 OpenJDK をコンテナ内で手動インストールするのは手間でした。

最近では OpenJDK の多くのディストリビューションベンダが、ビルドした OpenJDK をバンドルしたコンテナイメージを提供するようになりました。
そこで本記事ではそれらの OpenJDK のコンテナイメージについて、どういったものがあるのか簡単に調べた内容を紹介します。

:::note warn
本記事は 2023年11月頃 に確認した情報をベースに記載しています。
今後情報が更新され本記事に記載の内容と異なる点がでてくる可

元記事を表示

Android マイグレーション ガイド(古い技術から新しい技術へ)

# はじめに
Androidの技術にはトレンドがあります。開発現場で10年前まではよく使用されていた技術が、今ではほとんど使われなくなっている技術があります。この記事では、Androidで使われている技術(主にライブラリ)に焦点を当てて、技術の移り変わりを整理してみたいと思います(おそらく、かなり主観的な整理になっていると思いますが、それはご容赦ください)。今自分が使っている技術がトレンド的にはどの位置にあるのか、開発現場で使われている技術はどの位置にいるのかを把握することで、どこをどう強化していけばよいのか、その指針が見えてくると思います。読者様の一助になれば幸いです。

# プログラミング言語

歴史:Java -> Kotlin(Dart)

まずは一番有名なのから。Androidのネイティブ開発として採用されているプログラミング言語は、AndroidがStartした当初はJava言語が使用されていました(NDKはC++やC言語で書けますが話が逸れるので省略)。現在はKotlinが主流になっています。Google I/O 2017辺りから急速にKotlinを使う流れになったでしょ

元記事を表示

日本語プログラミング言語 プロデル Java C# で関数を介した整数カウントアップ実行時間を仲良く競う(プロデル コンパイル済で再計測)

# はじめに
日本語プログラミング言語 プロデル とJava C# とで関数呼び出しを介した整数カウントアップの反復実行時間を仲良く競い合わせてみます。いわゆるファンクションコールのオーバーヘッドとはどんなものなのかを切り分けます。プロデルはコンパイル済中間コードでの実行を再計測してみます。

## この記事内容の作業環境
Windows11 Pro 22H2
VSCode(Visual Studo Code) 1.78.2
java Eclipse Adoptium jdk-20.0.2.9-hotspot
C# 10 dotnet-sdk-6.0.404-win-x64
Produire Version 2.0.1197 for Windows
CPU Intel(R) Core(TM) i3-5005U 2.00 GHz

## この記事内容の保証
※この記事の実行結果は参考情報です。実行環境に大きく依存します。

# お題のソースコード
#### Java
“`Java:main.java
import java.lang.System;
/**
* プログラム型
*/
c

元記事を表示

新設されたList生成メソッドを既存のメソッドの代わりに使う場合の注意点

Java9以降で、List生成メソッドがいくつか新設されましたが、既存のList生成メソッドを単純に置き換えると危険な場合があります。

## Listを生成するメソッド

Listを生成するメソッドで、よく使うものは以下があります。

“`java
// Java1.2から
java.util.ArraysのasList(E…)

// Java8から
java.util.Streamのcollect(java.util.Collectors.toList())

// Java9から
java.util.Listのof(E…)

// Java16から
java.util.StreamのtoList()
“`

このうち、`Stream.of(…).collect(Collectors.toList())`だけは可変リストになっています。

“`java
| JShellへようこそ — バージョン17.0.9
| 概要については、次を入力してください: /help intro

jshell> var arraysAsList = Arrays.asL

元記事を表示

SpringフレームワークにおけるBean定義の使い分け

# 1. はじめに
Springフレームワークを用いたアプリケーション開発をする中で、Bean定義の使い分けがわからずに調べた内容を記事としてまとめます。

# 1. 3種類のBean定義
Springにおいて、Bean(ビーン)の定義はアプリケーションのコンポーネントをSpringのDIコンテナに登録する手段です。Beanの定義には3つの方法があります。

## 1.1 アノテーションベースのBean定義
使用場面: 自動検出によってBeanをスキャンしてコンテナに登録する場合。
特徴: @ComponentScanアノテーションを使用し、特定のパッケージ以下のコンポーネントをスキャンしてBeanとして定義される。
“`java
@Configuration
@ComponentScan(basePackages = “com.example”)
public class AppConfig {
// 何も定義しなくても、スキャンされたコンポーネントが自動的にBeanとして登録される。
}
“`

## 1.2 JavaベースのBean定義
– 使用場面: Java構

元記事を表示

GCP Vertex AI の生成 AI機能と実装

# GCPのVertex AIの生成AIの概要と機能

## 概要
GCPのVertex AI(バーテックス エーアイ)は、人工知能(AI)のモデルを簡単に作成、トレーニング、デプロイするためのクラウドベースのサービスです。Vertex AIは、Google Cloudの強力なコンピューティングパワーを利用して高品質なAIモデルを構築するためのツールとリソースを提供します。また、Java、Go、C#を含むさまざまなプログラミング言語に対応しており、開発者が利便性を重視しながらAIモデルの開発を行うことができます。

## 機能
1. **データ前処理**: Vertex AIは、トレーニングデータの前処理を簡素化するための機能を提供します。データのスケーリング、欠損値の処理、カテゴリカルデータのエンコーディングなど、さまざまな前処理タスクを自動化することができます。

2. **モデルトレーニング**: Vertex AIは、トレーニングデータを使用してAIモデルをトレーニングするための機能を提供します。トレーニングジョブの作成や管理、ハイパーパラメータのチューニングなど、モデルトレー

元記事を表示

Web 開発再入門#1 ― フォルダー構成

Web 開発再入門#1 ― フォルダー構成

# はじめに

Web 開発において、たくさんのファイルを扱っていくことになること、また、今後、他の開発(Python とか)もやることになるので、ある程度、フォルダー構成をきれいに設計することにしました。
きれいな構成にしておくことで、バックアップとかでも便利になるかなと思います。
ただし、フォルダー構成は完璧ではなく、手抜きをしているところが多々あります。技術を速習することが目的でしたので…。

# 基本的な考え

とにかく簡単に。
* インストーラーがあれば、インストーラーを利用する。
* インストーラーによるインストール物は、基本的に C ドライブに置く。
* 開発からリリースに関するものは、全て D ドライブ上に置く。

# フォルダー構成

C:
├ Programs
│ └ pleiades-yyyy-mm
└ Program Files
    ├ MySQL
    │  ├ MySQL Server 8.1

元記事を表示

MapBoxMapをAndroid、JAVAのみで使ってマーカーで詰まった話

MapBoxMapは便利な地図APIです。

https://qiita.com/ppt_msdg_maas/items/c35c07ec2502e9a2de12

↑MapBoxMapの概要はこれ見てください
GoogleMap APIより体感お手軽に使えるしなんかマップの見た目とかかなりカスタマイズ効くので個人的には特に理由がなければ埋め込みのMapはこれを使うのが良いと思う。

## 記事の内容
MapBoxMapのドキュメントはほぼKotlinで書かれてる。
Kotlinはとても強い言語なのでやはり特に理由がなければJavaよりこちらを使うべきだが、なんかの理由でJavaでAndroidアプリを作らなければならない場合があった場合、公式ドキュメントに書かれているメソッドとかクラスとかが一部うまく動かないので、主に詰まったところをこの記事に書いていく。

## マーカーを打つ
公式ドキュメント:

https://docs.mapbox.com/android/maps/guides/annotations/annotations/

ここにはmapboxmapでマーカーを打つ方

元記事を表示

Spring Bootでエクセルファイルをアップロードして読み込む

**この記事は[フリュー Advent Calendar 2023](https://qiita.com/advent-calendar/2023/furyu)の10日目の記事となります。**
# はじめに
社内で利用するウェブアプリの機能追加として、エクセルファイルを読み込ませて一括処理を行いたいという要望があったので、実装しました。
オンメモリからエクセルファイルを読み込む方法がレアケースなのか、意外にも他に記事として見かけませんでしたので、私が得た情報をアップロードからの流れに沿ってまとめておこうと思います。

# ファイルをアップロードする
フロントエンド、バックエンドそれぞれ説明します。
記載しているソースコードに最低限としており、エラー処理などは入っていませんので実際に利用する際には必要に応じてチェックなど行ってください。

## 環境
以下の環境で動作を確認しています。

| ライブラリ | バージョン |
| —- | —- |
| Spring Boot | 3.2.0 |
| Open JDK | 21 |
| JQuery | 3.7.1 |
| Apa

元記事を表示

【初心者向け】SPRINGでCSVデータをDBに登録してみた

# はじめに
押忍!
今日は業務用アプリとかでよく見る
CSVデータをアップロードしてDBに登録する機能をSpringを使って作成してみました!

# そもそもCSVってなんぞ
私は業界に入るまで見たことも触ったこともなかったんで一応記載しておきます。
Comma Separated Valuesの略称で
“`:CSVsample
従業員番号,氏名,部署
A123456789,総務太郎,総務部
B223456789,営業花子,営業部
“`
こんな感じでカンマごとに値を区切ったデータの事です。
ファイル形式は .csv になります。

ちなみに1行目は項目名を記載したヘッダーレコードなのですが、
物によってあったりなかったりします。

今回はある想定で作成をしたので
DBに登録するのは2行目以降ってことですね。

# やりたいこと
画面からCSVを選択してアップロード
アップロードされたCSVの内容をDBに登録

# 作ってみた
まずは画面から
csvに下記のフォームを追加します。

“`HTML

thisには2つの顔がある

thisには2つの用途があると学んだので備忘のため残す。

1つめ
コンストラクタはオーバーロードして複数定義できる。
オーバーロードされたコンストラクタから別のコンストラクタを呼び出すにはthisを使う。

“`java
public class Sample{
public Sample(){
this(null,0);//この引数がオーバーロードされたコンストラクタに渡される。
//thisの前には何も記述しちゃいけない

}
public Sample(String str, int num){
System.out.println(“OK”);
}
}
“`
2つめ
インスタンスそのものを表す参照に入れる特別な変数

“`java
public class Sample{

public String str;
public int num;

public Sample(String str,int num){
this.str = str; //生成したインスタンスのstrに値を入れてる
this.num =

元記事を表示

日本語プログラミング言語 プロデル Java C# で整数カウントアップ実行時間を仲良く競う(プロデル コンパイル済で再計測)

# はじめに
日本語プログラミング言語 プロデル とJava C# とで整数カウントアップの反復実行時間を仲良く競い合わせてみます。いったん素の処理でどんなものなのかなと計測したプロデルがC#と比べて著しく遅いという結果に。実はそれはランタイム版というインタプリタモードで実行していたことが判明。ということでコンパイル済という中間コードでの実行を再計測してみます。

https://qiita.com/advent-calendar/2023/produire

## この記事内容の作業環境
Windows11 Pro 22H2
VSCode(Visual Studo Code) 1.78.2
java Eclipse Adoptium jdk-20.0.2.9-hotspot
C# 10 dotnet-sdk-6.0.404-win-x64
Produire Version 2.0.1197 for Windows
CPU Intel(R) Core(TM) i3-5005U 2.00 GHz

## この記事内容の保証
※この記事の実行結果は参考情報です。実行環境に大きく依存します。

元記事を表示

GCP Contact Center AI機能と実装

# GCPのContact Center AIの概要と機能

## 概要
GCP(Google Cloud Platform)のContact Center AIは人工知能(AI)と自然言語処理(NLP)を活用したクラウドベースのコンタクトセンターソリューションです。このソリューションは、企業が顧客との対話を自動化し、効率的かつパーソナライズされたカスタマーエクスペリエンスを提供することを支援します。

## 機能
1. 対話フローマネージャー:GCPのContact Center AIは、ビジュアルなエディターやAPIを通じて対話フローの作成と管理を提供します。顧客との対話の流れや質問に基づいて対話フローを定義し、顧客が問題を解決するための情報を収集します。

2. 自然言語処理(NLP):Contact Center AIは、顧客の発言やテキストメッセージを解釈し、意図やエンティティを抽出する自然言語処理を提供します。これにより、顧客の要求や問題を正確に理解し、適切な返答やアクションを提供できます。

3. オムニチャネルサポート:GCPのContact Center AIは、電話

元記事を表示

GCP Duet AI for Google Cloud機能と実装

## GCPのDuet AI for Google Cloudの概要

GCPのDuet AI for Google Cloudは、Google Cloud上で提供されるAIを活用したデュエット型のサービスです。ユーザーは、自身のアプリケーションにDuet AIを組み込むことで、音声やテキストなどの入力に対して自然な対話応答を行うAIチャットボットを作成することができます。

## 機能

Duet AI for Google Cloudには以下のような機能が備わっています。

1. デュエット型AI: Duet AIは、対話の流れを理解し、質問に応じた自然な回答を生成することができます。AIモデルは、大量のデータを学習しており、高い応答品質を実現しています。

2. マルチ言語対応: Duet AIは、複数の言語に対応しています。ユーザーは異なる言語での対話インターフェースを簡単に作成することができます。

3. カスタムトレーニング: ユーザーは、独自のデータセットを使用してDuet AIをカスタムトレーニングすることができます。これにより、特定のドメインや業務に適したAIモデルを

元記事を表示

【精選10問】B – 81を解いた

# 問題
https://atcoder.jp/contests/abc144/tasks/abc144_b

# メモ
九九のよくあるループに条件判定を組み込んだ。

# 回答
~~~java:Main.java
import java.util.Scanner;

public class Main{

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
boolean flg = false;

for (int i=1;i<10;i++) { if (flg) { break; } for (int j=1;j<10;j++) { if (N==i*j) { flg

元記事を表示

DreamServiceでエオルゼア時計スクリーンセーバーを作る

# はじめに
この話は『 [ThinkSmart View for Zoom](https://psref.lenovo.com/product/thinksmart/thinksmart_view_for_zoom) 』という製品の新古品を[結構安いお店](https://iosys.co.jp/)で買ったところから始まります。
とりあえずROMイメージをごにょごにょして(保障対象外です)APKのインストールができるようになりましたが、何に使いましょうか…。
そうだね、エオルゼア時計だね!(お約束)
せっかくなのでスクリーンセーバー化して、いつでも見れるようにしましょう。

# コード

アドベントカレンダー進行というわけで、ガシガシとコーディングしていきましょう。

## レイアウトXML

簡易的な割に長いので折りたたんでいます

“`xml:daydream.xml

【Java】var変数とのうまい付き合い方

# var 変数とは
var 変数とはJava11以降で使用が可能となった、いろいろな型を代用する変数のことである。
例えば、

“`
String str=”test”;
“`

とJava10以前であれば、記載する必要があったが、Java11以降であれば、下記の書き方も出来るようになった。

“`
var str=”test”;
“`

# 問題点
上記のように明らかに右側の形式が明確な場合は問題ない。
ただし、他のメソッドからの戻り値の値をセットする場合などではちょっとややこしいことにもなる。

“`

pubic static void main(){

var hogehoge=getStr();

}

pubic String getStr(){

String str=””;
//doSomething

return str;
}

“`
この時点でgetStrメソッドの戻り値ってどんな型がどうか分からない。
確かに右側のメソッドでは必ずString型で返しているが、記述的に問題はなく、コンパイルも通るわけではあるが。

# JavaDo

元記事を表示

GCP Document AI機能と実装

### GCPのDocument AIの概要

GCP(Google Cloud Platform)のDocument AI(Artificial Intelligence)は、文書処理にAI技術を利用するためのクラウドサービスです。Document AIは、自然言語処理や機械学習などの先進的な技術を活用することで、大量の文書を自動的に処理・分析することができます。主な機能としては、文書のOCR(光学式文字認識)、テキスト抽出、情報の分類、自動要約、機密情報の検出などがあります。

### Document AIの機能

1. OCR(Optical Character Recognition): Document AIは、画像やスキャンされた文書からテキストを抽出するOCR機能を提供します。複数の言語に対応しており、高い精度で文字を認識できます。

2. テキスト抽出: Document AIは、文書内の特定の情報を抽出する機能も備えています。例えば、契約書からの特定の項目や注文書からの商品情報などを自動的に抽出することができます。

3. 情報の分類: Document AIは、文

元記事を表示

Web 開発再入門 #0

Web 開発再入門 #0

# はじめに

2000年から 8年間ほど、仕事で Web 開発(C++ の CGI、Perl の CGI、Java、PHP)をしていました。その時は自分でソースコードも作成していました。
その後も Web 開発・運用に関わってきたものの、自分でソースコードを作成することはありませんでした。
今回、Web 開発の新技術を理解(特に、シングル・ページ・アプリケーション技術を習得)すべく、久しぶりに Web 開発(ソースコードの作成)を行ってみました。

開発する際に多いに参考にさせていただいた Qiita に、その開発の記録を書き留めておこうと考えました。
また、そのうち GitHub にソースコードを置きたいとも考えています(って、どなたにソースコードを見ていただけるのかは分かりませんが…)。
ただし、ソースコードは完璧ではなく、手抜きをしているところが多々あります。技術を速習することが目的でしたので…。

CGI:Common Gateway Interface

## Web システム名称

**fmockup (Mock-up for Busi

元記事を表示

OTHERカテゴリの最新記事