- 1. 美しくパフォーマンスの良いJavaの書き方(Javaのイディオムを学ぼう)
- 2. 【Java】初心者向け_データベースを操作するコード例(SELECT/UPDATE/INSERT/DELETE)
- 3. windowsjavaとtypescriptでアプリケーションを作成
- 4. opencsv を使ってみよう
- 5. クラスなしむき出しmainのjavaを試してみた
- 6. Javaで「for文を使った繰り返し処理」の動作を確認してみた
- 7. Kotlinのファイル比較関数
- 8. 【Java/SQL】 データベースを使ったログイン処理 DAO/DTOパターン
- 9. mockito.MockedStatic を使うときの書き分け 2つ
- 10. 【Java】拡張for文を覚える
- 11. [Google Maps Datasets API(V1)] Javaで地理空間データのデータセットを作成・更新・削除する
- 12. 「未経験から2週間でWebアプリ開発!新卒エンジニアが語るJava入門のポイント」
- 13. Javaで「文字列の連結(+演算子)」の動作を確認してみた
- 14. Mockito & PowerMockitoまとめ(Mock オブジェクト宣言・メソッド定義編)
- 15. ADManager Plus から PowerShell を使用して LDAP 情報を Java に送信する方法
- 16. Java11 学習
- 17. Javaで受信したLDAPデータをOracleDBに登録する方法
- 18. LDAPデータをJavaで受信する方法
- 19. アジャイルソフトウェア開発の奥義 ~依存関係の逆転~をかみ砕いてみる
- 20. 再帰関数でフィボナッチ数列を書いてみる
美しくパフォーマンスの良いJavaの書き方(Javaのイディオムを学ぼう)
## なぜこの記事を書こうとしたのか?
どうも、ラクーンホールディングス(https://www.raccoon.ne.jp/) のシュウヤです。
私は普段Javaで開発をしていますが、美しくパフォーマンスの高い書き方を知らずに、保守性もパフォーマンスも悪いコードを書いていました。このままではいけないと思い、美しくパフォーマンスの高いコードの書き方を調べたところ、「イディオム」という概念にたどり着きました。イディオムとは、ソフトウェア工学におけるアルゴリズムやプログラミングのノウハウ、ティップス(tips)を集めたもので、要するにベストプラクティスに基づいてコードを書くためのヒントのようなものだそうです。これらをまとめることで、少しでも美しくパフォーマンスの良いJavaのコードが書けるのではないかと思いました。## 目的
– 美しくパフォーマンスの良いJavaの書き方を学べる## 目次
– Stringリテラルまたは既知のオブジェクトでequals()を呼び出す
– HashMapをループする際のentrySetの使用
– Enumをシングルトンとして使用
– Collecti
【Java】初心者向け_データベースを操作するコード例(SELECT/UPDATE/INSERT/DELETE)
# 目次
この記事は5分ほどで読めます。
[1. この記事のターゲット層](#1-この記事のターゲット層)
[2. 今回使用するテーブル](#2-今回使用するテーブル)
[3. 4大命令](#3-4大命令)
[4. おわりに](#4-おわりに)# 1. この記事のターゲット層
「本などで学習したが、Javaからデータベースを操作する方法がよくわからなかった方」
「クラスをしっかりと分けて設計したい方」
「DAO・DTOクラスパターンを使って設計したい方」– もしこの記事の内容が難しいと感じられたら、先にこちらの記事を参考にすることをおすすめします。データベース操作を0から演習ベースで詳しく解説しております。
→[【Java/SQL】 データベースを使ったログイン処理 DAO/DTOパターン](https://qiita.com/fsdg-goto/items/9ec73bf4e997731328e5)# 2. 今回使用するテーブル
“`
CREATE TABLE item (
id INT NOT NULL AUTO_INCREMENT,
item_name VARCHA
windowsjavaとtypescriptでアプリケーションを作成
windows11で開発
javaとtypescriptでwebサイトの作成
サーバー側
java
・spring boot
・projectはMaven 3.2.6 javaのバージョンは17
.titleはdemo
これで作成してひな型を作成docker buildとrunで実行
コントローラーを追加してhello spring bootを表示させるようにした
ポート番号を8080で実行フロント側
typescript,reactnpx create-react-app my-app –template typescriptでmy-appプロジェクトを起動
フロント、サーバー側どちらにもDockerfileを作成
サーバー側にはmavenのコピーとビルドを記載
フロント側にpackage.jsonなどの設定を記載
ルートディレクトリ配下にdocker-compose.ymlを作成以下のようなディレクトリで作成
my-java-ts-project/
├── demo/
│ ├── Dockerfile
│ ├── pom.xml
│ ├──
opencsv を使ってみよう
# opencsv を使ってみよう
– 今回、会社の業務中に、AI が学習するデータを csv で入力する機能を実装する必要があり、Java で csv を操作するために使用するいくつかのライブラリの中で最もよく使われている opencsv を使ってみました。使うついでに基本的な使い方について記録しておけばいいと思い、整理してみました。
– なお、この資料はまだ完成しておらず、近いうちにサンプルコードが完全に追加される予定です。## 目次
1. [依存性の追加](#1-依存性の追加)
2. [基本的な使い方](#2-基本的な使い方)
3. [JavaBeans と連携して使用する](#3-javabeansと連携して使用する)
4. [その他の便利な機能](#4-その他の便利な機能)
5. [まとめ](#5-まとめ)
6. [参考資料](#6-参考資料)## 1. 依存性の追加
1. `build.gradle`に次のように opencsv の依存性を追加します [サンプルコード](https://github.com/foreverfl/study-java-openc
クラスなしむき出しmainのjavaを試してみた
### サンプルソース
“`sample.java
void main(String[] args){
System.out.println(“hoge”);
}
“`### 実行結果
“`
$ java –enable-preview –source 21 sample.java
Note: sample.java uses preview features of Java SE 21.
Note: Recompile with -Xlint:preview for details.
hoge
“`### Javaのバージョン
“`
$ java –version
openjdk 21.0.2 2024-01-16
OpenJDK Runtime Environment (build 21.0.2+13-Ubuntu-120.04.1)
OpenJDK 64-Bit Server VM (build 21.0.2+13-Ubuntu-120.04.1, mixed mode, sharing)
“`### 解説
– 今どきのJav
Javaで「for文を使った繰り返し処理」の動作を確認してみた
# 概要
Javaで「for文を使った繰り返し処理」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/for/index2.html
# 実装
以下のファイルを作成しました。
“`JSample2_1.java
class JSample2_1{
public static void main(String[] args){
int sum = 0;for (int i = 1; i <= 5; i++){ System.out.println(i); sum += i; } System.out.println("合計=" + sum); } } ``` ```JSample2_2.java class JSample2_2{ public static void main(String[] args){ int i; double d; for (i = 1, d = 2.4; i <= 5; i++
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