JAVA関連のことを調べてみた2023年08月30日

JAVA関連のことを調べてみた2023年08月30日

Javaで「オブジェクト指向とは」の動作を確認してみた

# 概要
Javaで「オブジェクト指向とは」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/about/index5.html

# 実装
以下のファイルを作成しました。
“`JSample5_2.java
class JSample5_2{
public static void main(String[] args){
Randamer r = new Randamer(10);

for (int i = 0; i < 5; i++){ System.out.println(r.getNum()); } } } class Randamer{ private int maxnum; private int lastNum; public Randamer(int maxnum){ this.maxnum = maxnum; lastNum = 0; } public int getNum(){ int

元記事を表示

Spring Securityを使ったWebアプリケーションの基本③ 〜ユーザー情報をデータベースで管理する実装〜

はじめに

前回の記事では、ログイン機能とログアウト機能を実装しました。今回は、ユーザー情報をデータベースに登録し、ユーザー情報テーブルから、ログインできるように実装をしていきたいと思います。

ファイル構成

.
├── .gradle
├── .idea
├── build
├── gradle
└── src
├── main
| ├── java
| | └── com
| | └── example
| | └── practice
| | ├── config
| | | └── SecurityConfig.j

317(A,Bだけ)

# はじめに
C 以降はお勉強をしてから取り組みます。

# A
必要量 `X - H` を diff と置いて、 diff よりも大きい数値の中で一番小さな値を探す。

-> diff を P の値のリストに突っ込んでその位置を特定する。その index + 1 が答え。

```java
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List list = new ArrayList<>();
while (scanner.hasNextLine()) {
String s = scanner.nextLine();
if (s.length() == 0) break;
list.add(s);
}
scan

JAVA×SQL②

# 課題
問題:JAVAでdelete文を実行せよ
使用ソフト:XAMPP、eclipse

~~~~~java

package DBA;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class DBA2 {
public static void main(String[] args) throws SQLException {
System.out.println("会社ID入力");
Scanner s=new Scanner(System.in);
int ID1=s.nextInt();

String url="jdbc:mysql://localhost/JDBC";
String user ="root";
String password ="";
Connection con

Javaで「HashMapの使い方」の動作を確認してみた

# 概要
Javaで「HashMapの使い方」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/collection/index3.html

# 実装
以下のファイルを作成しました。
```JSample3_1.java
import java.util.HashMap;
import java.util.Map;

class JSample3_1{
public static void main(String[] args){
HashMap map = new HashMap<>();

map.put("リンゴ",80);
map.put("オレンジ",120);
map.put("ブドウ",90);

System.out.println(map.get("ブドウ"));
System.out.println(map.get("リンゴ"));
}
}
```
以下のコマンドを実行しました。
```
$ javac J

Java で Word を HTML ファイル形式に変換する

## はじめに
HTML ファイルは、Web ページの作成に使用される、ハイパーテキスト マークアップ言語で記述されたテキスト ファイルです。 Web ページの構造、コンテンツ、スタイルなどの情報が含まれています。 Word 文書を HTML ファイルに変換すると、Word 文書内のテキスト、見出し、段落、リスト、表、画像、その他の要素を、対応する HTML タグと属性に変換できます。 この変換により、ドキュメントのコンテンツを Web 上に簡単に公開できるだけでなく、ドキュメントがさまざまなプラットフォームやデバイス間で一貫して表示されるようになります。 関連する方法を以下に説明します。
## ツール
* IntelliJ IDEA 2018 (jdk 1.8.0)
* [Free Spire.Doc for Java](https://www.e-iceblue.com/Introduce/free-doc-for-java.html)

## Jarファイルの導入
* [Free Spire.Doc for Java](https://www.e-iceblue.com/Down

ABC317A~Eの解答[Java]

## はじめに
今回はコンテスト中にEまで解けたのでそのコードをそのまま載せようと思います。

なお、自作ライブラリは[提出結果](https://atcoder.jp/contests/abc317/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認ください。
では、見ていきましょう。

## A - Potions
問題文は[こちら](https://atcoder.jp/contests/abc317/tasks/abc317_a)

$P_i \lt P_{i+1}$なので、受け取ってそのまま二分探索して答えを求めました。
```A.java
final class Main {

private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner( System.in );
private static final SimplePrinte

LocalでHello Worldを表示させる

## はじめに
今回は、STSで、Hello worldを表示させるまでのやり方を記録していきたいと思います。
まず、STSのセットアップが完了していない方は、私が前回に書いた記事を見てください。

https://qiita.com/ren_g/items/4a2f0826adc26120a083

## 前提条件

|Windows10 64bit|
|---|

## 準備
まず、STSを起動させましょう。

SpringToolSuite4.exeを開いてください。

JAVA×SQL①

# 課題
問題:JAVAでSELECT文を実行せよ(IDが3以下に限る)
使用ソフト:XAMPP、eclipse

~~~~~java
package DBA;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBA1 {
public static void main(String[] args) throws SQLException {
String url="jdbc:mysql://localhost/JDBC";
String user ="root";
String password ="";
Connection con = DriverManager.getConnection(url,user,password);
PreparedStatement pstmt

Spring Securityを使ったWebアプリケーションの基本② 〜ログインとログアウト機能の実装〜

はじめに

前回の記事では、セキュリティの重要性やSpringSecurityのデフォルトのログイン機能についての説明をしました。今回はログイン機能とログアウト機能を実装していきたいと思います。

ファイル構成

.
├── .gradle
├── .idea
├── build
├── gradle
└── src
├── main
| ├── java
| | └── com
| | └── example
| | └── practice
| | ├── config
| | |

Javaで「LinkedListの使い方」の動作を確認してみた

# 概要
Javaで「LinkedListの使い方」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/collection/index2.html

# 実装
以下のファイルを作成しました。
```JSample2_1.java
import java.util.LinkedList;
import java.util.List;

class JSample2_1{
public static void main(String[] args){
List list = new LinkedList<>();

list.add("東京都");
list.add("大阪府");

for(String s: list){
System.out.println(s);
}

System.out.println("-- --");

list.add(1, "神奈川県");

for (int i = 0; i < lis

高度なコルーチンのテストにおけるKotlin Playgroundの応用

  テストはソフトウェア開発において極めて要要な要素とされ、テストされたコードは保守性が向上します。また、これによりテストはしばしば事実上のドキュメントとしての役割も果たします。これに関連して、読者がKotlinを既に使用した経験を有する場合、おそらくは数多くのテストコードを作成したことであります。しかしながら、Kotlin Playgroundを活用してこれらのテストを実行・検証した経験を有するかは疑問であります。

![z4643068441154_b090d9371a2d8771e4e6f01105ccddba.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92345/ae08b769-c35e-48e8-d041-4fcef2e44c48.jpeg)

高度なコルーチンのテストにおけKotlin Playgroundの応用

 本記事は、Kotlin Playgroundを通じて高度なコルーチンを用いたコードのテスト手法について詳細に探究します。さらに、非同

PowerMockito.mockStaticを一部メソッドにのみ適用したい

Junit4 + PowerMockでユニットテストを書いている際に、対象クラスの一部staticメソッドのみをモック化してテストしたかったのですが、`mockStatic`だと対象クラスの全てのstaticメソッドがモック化されてしまうのを、`spy`を使うことで回避できたので記録します。
### version
java11
```pom.xml

junit
junit
4.11
test


org.powermock
powermock-module-junit4
2.0.2
test

【make it easy】pdf-libとpdfmakeをefwに使ってみる

NashornはECMAScript 5.1を100%サポートします。だが、ECMAScript 2015およびその後のバージョンは100%サポートではありません。Efwは、Nashorn拡張となる[nashorn-ext-for-es6](https://github.com/efwGrp/nashorn-ext-for-es6)を取り込んで、最新のECMAScriptに近づいて、人気になるjavaScriptのpdf作成ツールをフレーワークに利用できるようにしました。今回の記事で紹介させていただきます。

# 環境
- efwの最新版4.07.006のjarを利用します。
```xml

io.github.efwgrp
efw
4.07.006

```
- jdkは15以上のほうを利用してください。また、最新版のNahsornをダウンロードしてください。
```xml

【Effective Java】オブジェクト生成方法(Staticファクトリ・ビルダー・コンストラクタ・JavaBeans)の採用基準と実装例

# はじめに
Javaのオブジェクトの生成方法の選択基準がわかりづらい初級者(自分も含め)が多いと感じたのでまとめ。

主に以下を参考にまとめています。

`Effective Java 第3版 `
第2章オブジェクトの生成と消滅
項目1 コンストラクタの代わりにStaticファクトリメソッドを検討する
項目2 多くのコンストラクタパラメータに直面した時にはビルダーを検討する

# この記事で学ぶ内容
* Javaにおけるオブジェクト生成方法の種類
* Javaにおけるオブジェクト生成方法の選択基準
* 対象パターン->
Staticファクトリ
ビルダー
コンストラクタ
JavaBeans

# 結論:採用基準まとめ
最初に本記事の目的である各生成方法の採用基準(つまり結論)を書きます。

`個人的にはほとんどのケースでStaticファクトリとビルダーを第一候補として採用していく予定です。`

以下ケース別にまとめます。

・ **シンプルなケース** :

パラメータが少なく、名前付きで簡単にオブジェクトを生成可能。
& 柔軟性と拡張性が必要な場合(レアケース※別記事で取

Java EEからJakarta EEへ

https://blogs.oracle.com/otnjp/post/transition-from-java-ee-to-jakarta-ee-ja

表にするとこんな感じかな?
| 順 | 仕様名| Java Package | Maven | 管理 | 備考 |Servlet|Tomcat|WebOTX|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| ↓ | JavaEE6 認定 | javax. | javax. | Oracle社 | ― |3.0|7.0.x(superseded)|9|
| ↓ | JavaEE7 認定 | javax. | javax. | Oracle社 | ― |3.1|8.5.x|10|
| ↓ | JavaEE8 認定 | **javax.** | **javax.** | Oracle社 | リリース直後に移管発表 |4.0|9.0.x(superseded)|-|
| ↓ | JakartaEE8 認定 | **javax.** | **jakarta.**

新人がSOLIDをサンプルコードで理解する

## はじめに

私は普段Javaをメインに使っている2年目のエンジニアです。この記事ではSOLIDについて「ぼんやりわかるけど、説明しろと言われると…」という状態の人に向けたものになっています。サンプルコード(Java)を使って具体的な例も記述しているので、参考にしていただければと思います。

## S: 単一責任の原則 (Single Responsibility Principle)

### 【概要】

SRPとして知られる単一責任の原則は、その名前が示すように各クラスやモジュールが持つべきは「**1つの責任**」だけであるという原則です。具体的には、変更の理由が1つだけであるべきということを意味します。これにより、将来の変更や拡張が容易になり、バグの導入リスクが低減します。

### 【メリット】

1. 変更の影響範囲が限定的
- 1つの責任だけを持つクラスを変更すると、その影響はそのクラス内に限定されることが多い
2. 再利用性の向上
- 特定の責任に特化したクラスは、他の場所で再利用しやすくなる
3. テストの容易性
- 責任が1つだけのクラスは

【Java・学習ログ⑦】オブジェクト指向の基本

教本に沿ってやってみたシリーズ、『第7・8章』です。

≪使用教材≫スッキリわかるJava入門 第3版 スッキリわかるシリーズ

## ■オブジェクト指向

ソフトウェア開発における部品化の考え方のこと。①〜⑥までのプログラミング手法は手続型と呼ばれている。実行する手順毎にクラス分けしていくようなイメージ。オブジェクト指向の考え方では「物」や「登場人物」毎にクラスを分割し、それぞれに**責務** を割り当てる。

与えられる主な役割は行動責任,と情報保持責任に分類される。
このような責任を果たすために、オブジェクトは『属性』と『操作』を持っている。

##### ・属性
 その登場人物に関する情報を覚えておく箱
##### ・操作
 その登場人物が行う行動や動作の手順

##### ・インスタンス
Javaではオブジェクトそのものを定義できない。①クラスを定義をし、②そのクラスに基づいてオブジェクトを生成する。クラスから生成された仮想世界の中で活躍するオブジェクトのことを厳密に示したいとき、インスタンスという用語を用いる。
「クラス図」と

Javaで「ArrayListの使い方」の動作を確認してみた

# 概要
Javaで「ArrayListの使い方」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/collection/index1.html

# 実装
以下のファイルを作成しました。
```JSample1_1.java
import java.util.ArrayList;
import java.util.List;

class JSample1_1{
public static void main(String[] args){
List list = new ArrayList<>();

list.add("Apple");
list.add("Orange");

for(String s: list){
System.out.println(s);
}

System.out.println("-- --");

list.add(1, "Grapes");

for (int i = 0; i <

javac と java のバージョンが違うと怒られた

# 目次
[1. javac でコンパイルしたクラスファイルを java で実行したら怒られた](#1-javac-でコンパイルしたクラスファイルを-java-で実行したら怒られた)
[2. SDKMAN! インストールした Java と apt でインストールした OpenJDK があった](#2-sdkman-インストールした-java-と-apt-でインストールした-openjdk-があった)
[3. OpenJDK のアンインストール](#3-openjdk-のアンインストール)
[4. まとめ](#4-まとめ)
[参考文献](#参考文献)

# 1. javac でコンパイルしたクラスファイルを java で実行したら怒られた
Java の練習に [Java 100 本ノック](https://github.com/JustSystems/java-100practices)に取り組み始めたのですが,やりはじめて早々壁にぶち当たりました.
```console
$ javac MyAnswer001.java
$ java MyAnswer001
Error: Linkage