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

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

Kotlinのファイル比較関数

# 問題点
ファイル比較方法が多く、適切な関数の調査に時間がかかる
~~(また、古いバージョンの関数を使用した記事が上位にヒットすることも問題である)~~

# 解決策

本記事では、以下の場合に使用するファイル比較関数を紹介する
また、逐次更新し、最新の比較関数を紹介し続けたい(願望)
1. ファイルのバイナリ情報が一致するか
2. 画像イメージが一致するか

## 1. ファイルのバイナリ情報が同様であるか

■ FileUtiles.contentEquals
(org.apache.commons.io ライブラリ)

“`
// Fileクラスを比較する
val checkFlag = FilesUtiles.contentEquals(file1, file2)
“`

■ contentEquals
(Kotlin専用 標準ライブラリ)

“`
// 各ファイルのバイト配列を作成
val byteArray1 = Files.readAllBytes(path1)
val byteArray2 = Files.readAllBytes(path2)

// バイト配

元記事を表示

【Java/SQL】 データベースを使ったログイン処理 DAO/DTOパターン

# 目次
この記事は5分ほどで読めます。
[1. この記事のターゲット層](#1-この記事のターゲット層)
[2. 開発環境](#2-開発環境)
[3. ログイン処理の例](#3-ログイン処理の例)
[4. データベース設計手順](#4-データベース設計手順)
[5. 実行フェーズ](#5-実行フェーズ)

# 1. この記事のターゲット層
「Java・sqlに関する基礎知識を持っているが、ログイン処理の書き方が思いつかない方/参考にしたい方」
「DAO・DTOクラスパターンを使って設計したい方」

– 基本レベルの記事となります。
– 記事にあるコードを写経すれば、処理が成功するように丁寧に解説しております。
– わかりやすさを重視するため難解な要素は排除しております。

# 2. 開発環境

JavaSE-17
Eclipse 4.24.0 M2
MySQL 8.0.29
MySQL Workbench 8.0.30

# 3. ログイン処理の例

早速各クラスのご紹介をしていきます。

### 4. LoginProcessクラス
“`
package develop.appP

元記事を表示

mockito.MockedStatic を使うときの書き分け 2つ

# はじめに

`mockedStatic` あんまり使ったことがなく、『エラーが何で起きてるか分からん!』と質問されたときに即答できなかったのが悔しかったので備忘。

# もくじ

– [mockito.MockedStatic の書き方2つ](#mockitomockedstatic-の書き方2つ)
– [サンプルコード](#サンプルコード)
– [メソッド参照を使う場合](#メソッド参照を使う場合)
– [ラムダ式を使う場合](#ラムダ式を使う場合)
– [使い分け](#使い分け)
– [参考](#参考)

# 実行環境

– Java8 以降
– JUnit5
– Mockito 4.11.0

“`gradle:build.gradle
dependencies {
testImplementation(‘org.mockito:mockito-core:4.11.0’)
testImplementation(‘org.mockito:mockito-inline:4.11.0’) // 3.4.0以降でないと使えない
}
“`

※ `mo

元記事を表示

【Java】拡張for文を覚える

拡張for文が通常のfor文よりわかりづらかったので、覚えるための自分用メモです。

# 拡張for文とは?
配列やコレクションの要素を1つずつ取り出す際のfor文を、省略して記述する方法です。
省略することで、スッキリしたコードになります。

## 配列に使ってみる
通常のfor文で配列の要素を1つずつ取り出す記述は、以下のとおりです。
“`java:Main.java
public class Main {
public static void main (String[] args) {
int[] num = {10, 20, 30};
for (int i = 0; i < num.length; i++) { System.out.println (num[i]); } } } ``` ```java:実行結果 10 20 30 ``` これを拡張for文で書き直すと、以下のようになります。 ```java:Main.java public class Main { publi

元記事を表示

[Google Maps Datasets API(V1)] Javaで地理空間データのデータセットを作成・更新・削除する

Maps Datasets API V1(Java)を使用して、
GoogleMapsの地理空間データのデータセットを作成・更新・削除する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Maps Datasets API(V1)] Javaで地理空間データを利用する](https://qiita.com/doran/items/e45e84ccbb8cfddbfee7)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[データセットを作成](#1-データセットを作成)|
||1|[IAM権限](#11-iam権限)|
||2|[スコープ](#12-スコープ)|
||3|[実行](#13-実行)|
||4|[レスポンスの内容](#14-レスポンスの内容)|
|2||[データセットを更新](#2-データセットを更新)|
||1|[IAM権限](#21-iam権限)|
||2|[スコープ](#22-スコープ)|
||3|[実行](#23-実行)|
||4|[レス

元記事を表示

「未経験から2週間でWebアプリ開発!新卒エンジニアが語るJava入門のポイント」

# はじめに

今年度から大手シンクタンクでエンジニアとして働いているAmayです。研修の一環としてJavaを2週間学習し、未経験から簡単なWebアプリを作成することができました。Javaの基本的な文法とオブジェクト指向の考え方を学ぶ中で、特に重要だと感じたポイントを共有したいと思います。

この記事では、初心者の私が短期間で効果的にJavaを学習できた方法や、押さえておきたい基礎知識について詳しく解説します。これからJavaを学び始める方や、効率的な学習方法を探している方にとって、少しでも役立つ内容になれば幸いです。

# 学習方法
実際に利用した教材は以下の通りです。
1. 弊社研修資料(非公開)
1. [スッキリわかるJava入門第4版](https://amzn.asia/d/6msLEr3)

研修資料を中心に学習を進め、その中で開発を経験しました。スッキリJavaは研修中や復習の際に補足資料として使用しました。初学者がつまずきやすいポイントを簡潔にまとめてあって、とても使い勝手が良かったです。

今回はスッキリJavaのステップに合わせてまとめました。より詳しい内容が知りた

元記事を表示

Javaで「文字列の連結(+演算子)」の動作を確認してみた

# 概要

Javaで「文字列の連結(+演算子)」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/ope/index14.html

# 実装

以下のファイルを作成しました。
“`JSample14_1.java
class JSample14_1{
public static void main(String[] args){
System.out.println(45 + 18 + “point”);
System.out.println(“point” + 45 + 18);
System.out.println(“point” + (45 + 18));
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample14_1.java
$ java JSample14_1
63point
point4518
point63
“`

# まとめ

何かの役に立てばと。

元記事を表示

Mockito & PowerMockitoまとめ(Mock オブジェクト宣言・メソッド定義編)

### 動機
春は新卒研修の季節(僕も新卒)!新卒研修といったらなんだかんだ Java!学生のうちにあまり書く機会はないけど Java を使った大人の開発で書く必要があるものと言ったらテストコード!テストコードといったら Mockito!(イマココ)

### 本記事のゴール
「Mockito, PowerMockito を用いてモックを行う際に必要な準備(宣言や定義)の記述」を、Mock 対象についての特徴分けを元にして覚える・整理する。

## はじめに
正直、Mockito 単体についてなら @opengl-8080 さんの [Mockito使い方メモ](https://qiita.com/opengl-8080/items/dcdf2cb14f2642240a5b)を読まれた方が良いです。
非常に詳しく書かれている上にわかりやすいです。
本記事は、PowerMockito と絡めつつ全体をさっぱりと理解する感じのテイストとなっています。

### Mockito, PowerMockito について
既に知っているよという方は飛ばしてください。

元記事を表示

ADManager Plus から PowerShell を使用して LDAP 情報を Java に送信する方法

ADManager Plus から PowerShell を使用して LDAP 情報を Java に送信する方法について説明します。以下の手順に従って、PowerShell スクリプトで LDAP 情報を取得し、Java アプリケーションにその情報を送信するプロセスを設定します。

`手順`
**①PowerShellスクリプトでLDAP情報を取得**
**②取得した情報をHTTPリクエストとしてJavaアプリケーションに送信**
**③JavaアプリケーションでHTTPリクエストを受信して処理**

**1. PowerShellスクリプトでLDAP情報を取得**
以下のPowerShellスクリプトを使用して、LDAP情報を取得し、JSON形式に変換します。

“`ruby:powershell

# PowerShellスクリプト: Get-LDAPInfo.ps1

# LDAPサーバの接続情報を設定
$ldapServer = “LDAP://your-ldap-server”
$searchBase = “DC=example,DC=com”
$searchFilter

元記事を表示

Java11 学習

Java 11 Silver 受験対策 & 今後の備忘録
# 型
Javaのデータ型には**プリミティブ型**と**参照型**がある。

参照型には更にクラス型、配列型、列挙型などの分類がある。

– プリミティブ型
– boolean
– char
– byte
– short
– int
– long
– float
– double
– 参照型
– クラス型
– インターフェース型
– 配列型
– 列挙型

## プリミティブ型
| 型 | サイズ | 説明 | 値 |
|:-:|:-:|:-:|:-:|
| `boolean` | 仕様無 | 真偽値 | `true`, `false` |
| `char` | 16bit | Unicode文字 | `¥u0000` ~ `¥uFFFF` |
| `byte` | 8bit | 整数 | `-128` ~ `127` |
| `short` | 16bit | 整数 | `-32768` ~ `32767` |
| `int`

元記事を表示

Javaで受信したLDAPデータをOracleDBに登録する方法

受信したLDAP情報をOracleデータベースに格納するには、以下の手順に従います。まず、LDAPから情報を取得し、それをOracleデータベースに挿入します。

`手順`
**①必要なライブラリを追加する**:
・JNDIライブラリ(Java SEに標準で含まれています)。
・JDBCドライバ(Oracle用のJDBCドライバを追加する必要があります)。

**②Oracleデータベースに接続する**:
・JDBCを使用してデータベースに接続します。

**③LDAPから情報を取得する**:
・前述の通り、JNDIを使用してLDAPから情報を取得します。

**④取得した情報をOracleデータベースに挿入する**:
・JDBCを使用してデータベースに情報を挿入します。

`コード例`
以下に、LDAPから取得した情報をOracleデータベースに格納するためのJavaコード例を示します。

“`ruby:Java

import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.nam

元記事を表示

LDAPデータをJavaで受信する方法

LDAP (Lightweight Directory Access Protocol) のデータをJavaで受信するためには、Java Naming and Directory Interface (JNDI) を利用するのが一般的です。以下に、LDAPからデータを受信する基本的な手順とコード例を示します。

`手順`
**①必要なライブラリを追加する**: JNDI APIはJava SEに標準で含まれていますが、LDAPサービスプロバイダを追加する必要があります。javax.namingパッケージを使用します。

**②接続設定を行う**: LDAPサーバのURL、接続するための認証情報(ユーザーDNとパスワード)を設定します。

③**LDAP接続を確立する**: InitialDirContextを使用して接続を確立します。

④**検索クエリを実行する**: SearchControlsを設定し、検索クエリを実行します。

⑤**結果を処理する**: 検索結果を受信し、必要なデータを抽出します。

`コード例`
以下に、LDAPサーバからデータを受信するための基本的なJav

元記事を表示

アジャイルソフトウェア開発の奥義 ~依存関係の逆転~をかみ砕いてみる

# 初めに
ロバート・C・マーチン氏の「アジャイルソフトウェア開発の奥義」が大変面白かったのでまとめる。
*本書とは順番が異なります。

## 依存性逆転の法則
SOLID原則のD、英語でDependency Inversion。
これは以下の2文で説明できる。

– 上位のモジュールは下位のモジュールに依存してはならない。どちらのモジュールも「抽象」に依存すべきである
– 「抽象」は実装の詳細に依存してはならない。実装の詳細が「抽象」に依存すべきである

### 今までの誤解。
自分はJava,Springをやってきたので、「あーDIのことか」と思っていた。
まず、これは間違い。逆転(Inversion)であって、注入(Injection)じゃない。
だが、自分はDIを利用すればDはクリアした気になっていた…
だが、一番の勘違いはDIするときのInterface設計だった。
多分多くのSpring経験者は書籍の中で「ServiceInterafceを作る」というようなサンプルコードを見てきただろう。例えば、こんなの。
“`java
//Userの実装は略。
public inter

元記事を表示

再帰関数でフィボナッチ数列を書いてみる

### 再帰とは
関数の処理の中で同じ関数を呼び出すことで繰り返しを実現すること。
言い換えると、メソッドの中でそのメソッドを再び呼ぶこと。そうすることで、for文やwhile文のように処理が繰り返し実行されます。
では、フィボナッチ数列を使って具体的に見ていきます。

### フィボナッチ数列とは
フィボナッチ数列とは、以下の式を満たす数列です。
0, 1, 2, 3, 5, 8, 13, 21, 34, 55…となっていきますね。
$$
F(n) =
\begin{cases}
n & \text{( n = 0, 1 )} \\\\
F(n-1) + F(n-2) & \text{( n > 2 )}
\end{cases}
$$

### 実装
実装例と実行結果はこのようになります。
#### 実装例
“`java
class Fibo {
public static void main(String[] args) {
// メソッド呼び出し
System.out.println(fibo(5));
}

static int

元記事を表示

キャメルケースの重要性

キャメルケースができていなかったから起きたエラーがありまして
springBootのエンティティクラスを作成していてとりあえずhtmlに反映して移そうと思ったら
500aエラーが起きました、途方に暮れエラーの内容がhtmlの文法ミスだと出ていたので見に行くと
文法どころか何も間違えていませんでした
それで何が悪いのか作業に入ってからのコードを一度見直したら
emttityのクラスのgetter,setterをキャメルケースにしていなかったのでキャメルケースにしてみると。
なおりました!
何でか知りたかったのでchat-gptなりに質問してみたところキャメルケースをしていないといけないということなのでこれからはキャメルケースを意識していこうというお話でした
初めてブログ投稿したので口下手ですいません泣

元記事を表示

Eclipse + Java + Maven の環境で Doma を動かす

## はじめに

この記事では、データベースアクセスフレームワークである [Doma](https://github.com/domaframework/doma) を利用する際の開発環境構築についてノウハウを紹介します。
簡単なサンプルアプリケーションを作りながら解説します。

## 前提

### バージョンなど

開発マシンは macOS を想定しますが、Windows と異なるところはないと思います。

IDE、ツール、ライブラリ等のバージョンは以下のとおりです。

– Eclipse IDE for Java Developers 2024-03 (4.31.0)
– Java 17.0.10(Eclipse のデフォルト)
– Maven 3.9.6(Eclipse のデフォルト)
– Doma 2.60.0

### Eclipse の仕組みを踏まえた戦略

Eclipse は以下のようなさまざまな設定ファイルを参照して動きます。

– .classpath : どのライブラリのどのバージョンを使うのかといったクラスパス情報
– .factorypath : アノテ

元記事を表示

Spring Boot(Java)のおすすめするディレクトリ/ファイル構成

# 挨拶

初めまして!株式会社アールピーシーの加藤です。
2024 年度から技術組織を立ち上げ、組織活動の 1 つとして情報発信していきます。
どうぞよろしくお願いします。

さて株式会社アールピーシーでは開発言語である Java を主軸としています。
今後、私からは Java を使った Web アプリケーションを通して様々な情報を紹介していく予定です。

開発言語や各種ライブラリは月日と共にアップデートがされていきます。
なのでそれらの紹介はほどほどにして、大きく変わることがないアーキテクチャや実装の考え方をメインで紹介していきます。

前置きが長くなりましたが、本日紹介するのはディレクトリ/ファイル構成です。
実際にアプリケーションを作る際、最初に行うのはこれらの検討ではないでしょうか。

# 参考文献

NTT データグループ様 「TERASOLUNA Server Framework for Java (5.x) Development Guideline」
https://terasolunaorg.github.io/guideline/current/ja/

# 読者

元記事を表示

Java AmazonS3 AssumeRole 自分用メモ

AssumeRole

pom.xml

“`xml

software.amazon.awssdk
s3
2.25.1


software.amazon.awssdk
sts
2.25.1

“`

“`java
import software.amazon.awssdk.core.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.sts.StsClient;
import software.am

元記事を表示

Javaで「条件演算子(三項演算子)」の動作を確認してみた

# 概要

Javaで「条件演算子(三項演算子)」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/ope/index13.html

# 実装

以下のファイルを作成しました。
“`JSample13_1.java
class JSample13_1{
public static void main(String[] args){
int score;

score = 70;
System.out.print(“Score=” + score + “:”);
System.out.println(score > 70 ? “OK” : “NG”);

score = 84;
System.out.print(“Score=” + score + “:”);
System.out.println(score > 70 ? “OK” : “NG”);
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample13_1.

元記事を表示

Files.isSameFile(Path,Path)の挙動確認

# 同一ファイルのハードリンク比較
true

元記事を表示

OTHERカテゴリの最新記事