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

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

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 開発再入門 #00

## はじめに

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

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

## 名称
fmockup (Mock-up for Business System Demonstration and Development Templates)
業務シス

元記事を表示

Spring BootでSwingアプリケーションを動かす

Spring BootでSwingアプリケーションを動かす方法を示します。

まずmainメソッドは以下の通りになります。Headlessをfalseにすることが重要です。

“`HelloWorldApplication.java
package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloWorldApplication {

public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(HelloWorldApplication.class);
springApplication.setHeadless(false);
sp

元記事を表示

うるう年の一年前を取得すると…

## 冒頭

現場のPJでの詳細設計にて以下のような記載をしました。
「○○日より1年前の日付を取得する。」
特定の日付を基準にして、その前後の日付を取得するというよくある処理だと思うのですが
レビューにて「うるう年の一年前の日付を取得した場合どうなりますか?」と質問があり、私もふと疑問に思いました。

「うるう年の一年前の日付を取得したら、前年の3月1日なのか?それとも2月28日なのか?」

今回の記事はそんな疑問から始まった記事であり、実際にいくつかの言語、DBで試してみた結果を書いていきたいと思います。

## Javaの場合

Javaにて日付の計算を行う場合、Calendarクラスを使用します。Caleandarクラスのインスタンスを生成し、生成したインスタンスのsetTimeメソッドの引数にDate型を指定することで日時の設定ができます。そしてaddメソッドにて第一引数にCalendar.YEAR、第二引数にint型(加算の場合は正の数、減算の場合は負の数)を指定することで日付の計算が可能となります。
以下がサンプルコードになります。
“`java:main.java
i

元記事を表示

未経験エンジニアがJavaSilverを取得した話

# はじめに

はじめまして、Lincraftの酒井です。
アドベントカレンダー8日目の記事を担当します。
今回、会社でアドベントカレンダーに参加することになり、こうして1つ記事を書かせていただくことになりました。
僕自身、会社に入社して1年半ほど経ちましたが、まだまだ実力不足でわからないことだらけです。
他の社員のように技術に関してかっこよく書きたいのですが書けません。
そこで今回は先日自身のスキルアップのために取得した”JavaSilver”の合格体験記のようなものを書けたらと思います。
暖かい目で見ていただけましたら幸いです。

# JavaSilverとは

[Oracle公式](https://www.oracle.com/jp/education/certification/1z0-815-jpn-48261-ja.html)より抜粋

試験名:Java SE 11 Programmer I
受験料(税込):37,730 円
出題形式:選択問題
試験時間:180 分
出題数:80 問
合格ライン:63 %

Javaアプリケーション開発に必要とされる基本的なプログラミン

元記事を表示

Mapper XMLの内容紹介

## 0.前置き
本日は私がDFのアドベントカレンダーの8日目を担当いたします。
少し思いを書きますが、私はこの間31歳になり、IT業界に入っておよそ10年くらいです。
20代の週末は結構な頻度で資格勉強や目標達成のために、PCと参考書持参で、カフェやファミレスに通いつづけ、周りの他業種の友人が人生をステップアップし続けているのを横目で見ていて、趣味の時間と仕事の忙しさと将来のことのワークライフバランスに苦しみ続けた10年でした。

そんな私ですが、私ごとですが本日、12/8に結婚しました。
(公開時点は7:00なので本日します!)

そのため、今日にアドベントカレンダーを引き受けました笑
これからは家庭と仕事をうまく両立し、楽しい家庭を気づいていきたいと思っています。

ではJava開発で使用したMapper XMLについて紹介いたします。

## 1.目的
以前、紹介した以下の記事、
「MyBatisGeneratorを用いて、Model・Mapperの作成」

で作成した、Ma

元記事を表示

FUNCTIONのリターンの桁精度が取得できない件と対策方法【PostgreSQL、JDBC】

## 概要
JDBC(Java)から検索結果のメタ情報を取得する場合、ResultSetMetaDataを使用します。
検索結果のカラムの桁精度は、ResultSetMetaData#getScale()で取得することができます([サンプルコード](#補足jdbcで型精度情報を取得するサンプル))。

しかし、以下の両方の条件に当てはまる場合に取得できる桁精度の値が、データ型によって固定された値になってしまいます(例:timestamp型なら6、numeric型なら0 など)。
– データベースがPostgreSQLである。
– SELECT句で取得する値がFUNCTIONの戻り値である。

この記事では、FUNCTIONの戻り値の桁精度をJDBCで取得するための方法を紹介します。

## 経緯

弊社製品[^1]は、データベースに長らくOracleを使用しています。
また、2020年にリリースされたバージョンから、Oracleに加えてPostgreSQLも使用できるように改善しました。

弊社製品は、SQL実行などのDBアクセスに関する処理を、自社開発しているフレームワークで実装して

元記事を表示

Bungeecord で接続したサーバーに存在するプレイヤーを他のサーバーにテレポートさせる

# はじめに
Bukkit プラグインから Bungeecord で管理しているサーバーに接続したプレイヤーを他のサーバーにテレポートさせる方法について。

# 準備
他のサーバーにテレポートさせるにはサーバーに BungeeCord plugin チャンネルを登録する必要があるので、`onEnable` メソッドに登録するコードを含めておきましょう。

“`java
@Override
public void onEnable() {
this.getServer().getMessenger().registerOutgoingPluginChannel(this, “BungeeCord”);
}
“`

これにより、Bukkit プラグインから BungeeCord に文字列を送信する準備が整いました。

# 送信する文字列の準備
登録したチャンネルに命令を送り込むには、文字列を Byte 配列に変換する必要があります。
Spigot のリファレンスには Google Guava の `ByteArrayDataoutput`, `DataInputStream`

元記事を表示

AndroidStudioチートシート

# AndroidStudioチートシート

個人的な備忘録です.内容の薄さに関しては悪しからず.
変数として渡す際に面倒なので作りました.よく使うものを追加していきます.
Javaは長いためKotlinで記述しています

## 引数として渡す記述

Adapterはかなり無理やりです
UI関連は出来ればActivityとFragmentですることが望ましいです

||Activity|Fragment|Adapter|
|—|—|—|—|
|view||inflater.inflate|itemView
`ViewHolder(itemView: View)`|
|findViewById|findViewById|view.findViewById|itemView.findViewById
`ViewHolder(itemView: View)`|
|context|this|requireContext()|holder.itemView.getContext()
`onBindViewHolder(holder: ViewHolder,`|

元記事を表示

Java Mapの使い方

# はじめに

PaizaでJavaの問題を解いて、解法にMapを使うあり、よく知らないので、Mapについての使い方メモ

# メソッド?データ型?
Rubyではmapというとメソッドを連想する。
“`Ruby
array = [1, 2, 3]

array.map {|n| n * 3 }
=> [3, 6, 9]

“`

JavaではMapというとデータ型を指す
いわゆる連想配列、辞書といわれるもので、
キーと値をセットで保持するデータ型のことを指す 
Rubyでいうハッシュのこと

## 使い方

**変数の宣言**
“`Java
1. Map<キーの型, 値の型> 変数名 = new HashMap<>()
2. HashMap<キーの型, 値の型> 変数名 = new HashMap<>()
“`

Mapインターフェースのが拡張性があり、
Mapインターフェースを継承しているのが、HashMap

**メソッド**

・get(key):キーに紐付られた値を取り出す

・put(key, value):キーに紐付けて値を格納する

“`Java
Map

元記事を表示

Javaのprint()内で”+”で数値と文字列の結合したとき出力されるのは文字列か数値か

# はじめに

Javaを学ぶため、Paizaのスキルアップ問題に取り組んでいたところ、うまくいかず少しだけ悩んだのでアウトプット

# 問題

スキルアップ問題で、
入力された数値を読み取り、0の数=何個、1の数=何個 ….9の数=何個
というように出現回数を出力する問題

問題URL
https://paiza.jp/works/mondai/data_structure/data_structure__dict_step1

自分の回答

“`Java

import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List a = new ArrayList<>();
for(int i=0;i

元記事を表示

Quarkus(Java)のテストで@Injectが上手く行かなかった時は@QuarkusTestで大体どうにかなる

# はじめに
JavaのAWS SDKを使って、cognitoの情報を取得するコードを書いて、テストで動作確認しようとしたら詰まった。依存関係が深くなってくると、作成したインスタンス内の“`@Inject“`が適応されないらしい。“`@QuarkusTest“`を使えば、ランタイム環境まで模倣されるので複雑な依存関係もちゃんと動くことが分かった。

# 上手く行ったコード
**プロジェクト環境**
Java: 17.0.9
Quarkus: 3.2.7.Final
Gradle: 7.6.3

cognitoユーザープールに登録されているユーザーの一覧を取得してみる。

“`java
// /config/AWSClientConfig.java

import io.quarkus.runtime.annotations.StaticInitSafe;
import io.smallrye.config.ConfigMapping;

@StaticInitSafe
@ConfigMapping(prefix = “aws.credentials”)
public inte

元記事を表示

日本語プログラミング言語 なでしこ3 Java C# でHello World実行時間を仲良く競う

# はじめに
日本語プログラミング言語 なでしこ3 とJava C# とで「Hello World」コンソール出力の反復実行時間を仲良く競い合わせてみます。ついに、なでしこ3コンソールで「Hello World」にもどってきました。

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

## この記事内容の作業環境
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
nadesiko version 3.4.5 nadesiko3win32-3.4.5
Node.js v20.10.0.
CPU Intel(R) Core(TM) i3-5005U 2.00 GHz

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

# お題のソースコード
#### Java
“`Java:main.java

元記事を表示

I’ll try connecting it and running it for H2DB

This is an easy to understand article.

エラー時に使用した記事

元記事を表示

Javaでxml形式のデータをリストに変換する

“`main.java
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import java.util.ArrayList;
import java.util.List;

public class Main {

public static void main(String[] args) {
List items = parseItems(“example.xml”);
items.forEach(System.out::println);
}

private static List parseItems(String filePath) {
List itemList

元記事を表示

ICU4Jの変換が強力すぎるので文字種を規制したい

## とどのつまり…
UnicodeSetを使って正規表現で文字種を規制してFilterに設定すべし
“`java
// カタカナとか巻き込まれて半角になると困る!全角英数字だけ半角にさせてくれ!!
Transliterator transliterator = Transliterator.getInstance(“Fullwidth-Halfwidth”);
transliterator.setFilter(new UnicodeSet(“[0-9a-zA-Z]”).freeze());
return transliterator.transliterate(“FULL width text”);
“`

元記事を表示

JavaプログラムからRPGプログラムの呼び出し

## 初めに
IBMi (AS/400)は優れたシステムであるが、企業における業務を記述するプログラムは手続型言語RPGやCOBOLで記述された資産が多くある。一方でオンプレ・オープンやクラウド環境を利用、Javaをはじめとするオブジェクト指向型言語で業務プログラムを記述するケースが多々あり、若手技術者はRPGやCOBOLでのプログラミングを忌避する傾向が強い。これによりRPGやCOBOLで記述された業務プログラムの保守・拡張を担う人材の減少が加速し、RPGやCOBOLで業務プログラムを記述している企業では、IBMiをモダナイズして業務システムの刷新に取り組む機会が多く見られる。
この記事では、RPGで記述されたプログラムを段階的にJavaプログラムにモダナイズしていく手順について解説を行う。

## クライアント・サーバシステムにおけるRPGプログラムの役割
IBMiをサーバサイドシステムと使用しRPGの業務プログラムとして動作させる手法は多々あるがここでは、クライアントシステムとIBMiをソケット通信で接続し、業務データを電文交換でやりとりしているシステムを一例として提示する。
#

元記事を表示

【Java】instanceofした後のキャストが要らない件(Java 16)

# はじめに
`instanceof`を使う時って、↓のようにキャストすることあるじゃないですか。
“`java
if (obj instanceof String) {

String s = (String) obj;

// do anything
}
“`
これがJava 16からキャスト不要だったらしいです。

https://openjdk.org/jeps/394

「そんなん知ってるわ」って方は以下読む必要ないです。

# こうなる
`instanceof`のパターンマッチングと言います。

最初のコードは↓のように書けます。

“`java
if (obj instanceof String s) {

// do anything
}
“`
この1行で↓が行われます。
1. `obj`が`String`だった場合は`String`にキャスト
1. 変数`s`に代入(ここでは`s`のことをパターン変数と呼びます)

よって、後続の処理では`s`を使っていろいろと処理が書けるわけです。

## パターン変数のスコー

元記事を表示

[初心者向け] 日付の取り扱いでビックリした話

# はじめに
* 本来はあまり発生するような話ではないので、読み物としてお楽しみいただければと思います。

# ある日の会社でのできごと
後輩 「UTCからJSTに変換する際に、冬場に該当する月(12月~3月)だと正しく変換できない。JavaのDate().getTimezoneOffset()を使っている。なんでDateだとうまくいかないのかは不明!」

我 「(今時、java.util.Date使ってることなんてあるのかな…いにしえのコードなのか?はたまた海の外から納品されたレアなパターン踏んじゃったのかな…) 理由があることをきちんと説明しないといけない!(謎の使命感)」

# 日付の取り扱い(歴史)
## Java8以前の話
![日付を取り巻くクラス.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180558/67c72835-43c6-68f9-523f-6100d12d310d.png)

* 日付を表すのに、`java.util.Date` 、計算するために、`java.util

元記事を表示

JUnitのテストケースにおけるパターン表の管理

:::note info
この記事は [BABY JOB Advent Calendar 2023](https://qiita.com/advent-calendar/2023/babyjob) の 6 日目の記事です。
:::

# まえおき

久しく投稿してなかったが、会社でアドベントカレンダーなる祭典を教えてもらい、乗っかってみる。

今回はJUnitにおけるパターン網羅の方法。
ではなく、パターン網羅したことをどのように残すかについて考えたので、披露したい。

今まで様々なプロジェクトに携わってきたが、こういった議論は一度もなかった。
もしかしたら、開発史上初の試みなのかもしれない。
そうなのであれば、私は喜んでそのパイオニアとなろう。
ただ、既に議論され尽くしていても、そっとしおいてほしい。
そして、パイオニア気分に浸らせたままにしてほしい。

# 問題提起

さて、このほど新しい環境で新しいプロジェクトに関わることになった。
そこでは、アジャイル開発が行われ、CICDが取り入れられて、モダンな開発が行われていた。
その中では当然単体テストツールによるテストがあるのだが、

元記事を表示

OTHERカテゴリの最新記事