- 1. 【徹底解説まとめ】 継承、抽象クラスとインターフェイスの違い、ついでにSOLID【Java】
- 2. 作業証跡_HH_Repository~Service
- 3. Leetcode 224. Basic Calculator
- 4. 競プロ典型90問 010-Score Sum Queries(★2)をJavaで解いてみた!
- 5. ABC278A~Eの解答[Java]
- 6. #13 Spring エラーメッセージの表示
- 7. Leetcode 154. Find Minimum in Rotated Sorted Array II
- 8. Cookieが原因でhttp://localhost:8080/にアクセス出来ない
- 9. #12 画面に表示される文字を多言語化する
- 10. Listの編集距離(Java)
- 11. #11 messages.propertiesの値をコントローラに渡す
- 12. org.dbunit.dataset.DataSetException: I/O error について
- 13. #10 画面メッセージの標準化[messages. properties]
- 14. Javaのenum型(列挙型)
- 15. Javaで何か作ってみる(2022/11/18 Day29)
- 16. #9 Bootstrapを利用して画面の作成[2. デザイン作成][郵便番号から住所を自動入力]
- 17. JavaによるXMLとExcelのワークブックの相互変換
- 18. Intellijで始めるSpring Boot
- 19. 【Linux】Linux Serverのawt使用不可の件
- 20. Leetcode 153. Find Minimum in Rotated Sorted Array
【徹底解説まとめ】 継承、抽象クラスとインターフェイスの違い、ついでにSOLID【Java】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/650867/011a75bc-955d-b7b6-0548-068d522a5eba.png)
# 初めに
本記事は、私のブログにある『継承・インターフェイス・抽象クラス』シリーズ』を一つの記事にまとめたものです。全部で 106,227文字ありました…。この記事では 25,000文字くらいでお話しできればと思います。
なるべく簡潔にまとめたいと思います。詳細を知りたい方は以下のブログを読んでいただければと思います。
デザインパターンを勉強している時に、「は?インターフェイス?抽象クラス?何が違うの?」とか「継承ってなんか解ったような解らんような感じなんよな〜」って感じました。調べてみると、ほんとに期待した記事は出ませんでした。
– *interface を implements すると、クラスにメソッドの実装を強制できる*
よく見ます。「で??だからなんなん??いつ使うんや!」という気持ちでした。構文とかルールを公式ドキュ
作業証跡_HH_Repository~Service
“`properties:application.properties
# DB
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/spring
spring.datasource.username=spring
spring.datasource.password=spring
#DB生成処理
#実行の際にはユーザーとデータベースが作成されている必要あり
spring.sql.init.mode=always
spring.sql.init.schema-locations=classpath:database/schema.sql
spring.sql.init.data-locations=classpath:database/data.sql#devtoolの設定
spring.devtools.restart.additional-paths=src/main/resources#ログ
log
Leetcode 224. Basic Calculator
# 224. Basic Calculator
https://leetcode.com/problems/basic-calculator/## 難易度
### HARD## アプローチ
### Stack
O(n)“`java
package com.leetcode.hard;import java.util.Stack;
public class BasicCalculator224 {
public static void main(String[] args) {
System.out.println(calculate(“2+(3)”));
}public static int calculate(String s) {
int sum = 0;// one: +
// minus one: –
int isSignPlus = 1;Stack
stack = new Stack<>();
競プロ典型90問 010-Score Sum Queries(★2)をJavaで解いてみた!
こんにちは、[Kuni](https://qiita.com/kuniengineer)です。現在Javaを学習中で、Atcoderでコーディング力を高めているところです。
今回は[競プロ典型90問 010-Score Sum Queries(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_j)の実装にチャレンジしてみました。# ACのプログラム
“`java:Main.java
import java.util.*;public class Main
{ //クラス名はMain
public static void main(String[] args) {//標準入力受け取り準備
Scanner scanner = new Scanner(System.in);//生徒の人数を受け取る
int N = scanner.nextInt();//各生徒の点数を格納する配列を定義
int [][] numb
ABC278A~Eの解答[Java]
## はじめに
今回はEまでコンテスト中に書いた物を載せようと思います。では、見ていきましょう。
## A – Shift
問題文は[こちら](https://atcoder.jp/contests/abc278/tasks/abc278_a)$N \gt K$の時は$K+1$番目から$N$番目までの要素を出力後、$K$個$0$を出力しました。
$N \le K$の時は$N$個$0$を出力しました。
“`A.java
class Main{static final boolean autoFlush = false;
static final Library System = new Library(java.lang.System.in,java.lang.System.out,java.lang.System.err,autoFlush);public static void main(String[] args){
//N、K、Aの受け取り
int N = System.in.nextInt();
int K = System.in.
#13 Spring エラーメッセージの表示
# #13 Spring エラーメッセージの表示
今回は数値型の入力欄に文字列型の値を入れてしまった場合などに画面にエラーメッセージを表示させる処理を行います。
文字数の制限などはバリデーションを用いて処理しますが、今回はその前段階の型変換で起きるエラーを処理します。# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。# 前回まで
前回は画面に表示される固定文字を日本語以外に対応させる処理を行いました。https://qiita.com/Jackoguro/items/a67de8ab1468598e3f75
# 構築環境
1. 各バージョン
Spring Boot ver 2.7.52. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/36f63552-512f-c4b5-6798-a39849d8ceeb.p
Leetcode 154. Find Minimum in Rotated Sorted Array II
# 154. Find Minimum in Rotated Sorted Array II
https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/description/
## アプローチ
### 1. 二分探索
“`java
class Solution {
public int findMin(int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}int start = 0;
int end = nums.length – 1;if (nums[start] < nums[end]) { return nums[start]; } while (start < end) {// not putting <= because the arra
Cookieが原因でhttp://localhost:8080/にアクセス出来ない
# 現状
IntellJでmain/java/in.packagenameディレクトリにあるApplicationファイルを右クリックして実行を行ない
[http://localhost:8080/]でアクセス出来るか確認した所
HTTP Status 400 – Bad Requestと表示されてアクセスが出来ませんでしたIntellJ内では下記のエラーコードが出ていました
“`java
2022-11-16 14:52:43.949 INFO 35198 — [nio-8080-exec-1] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.java.lang.IllegalArgumentException: Request header is too large
“`# 原因
#12 画面に表示される文字を多言語化する
# #12 画面に表示される文字を多言語化する[messages.properties]
日本語以外もWeb画面上に表示できるよう設定していきます。# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。# 前回まで
この記事は#10記事の続きとなります。#10ではmessages.propertiesを用いて画面に表示される文字の共通化を行いました。https://qiita.com/Jackoguro/items/b71597bfeb79a90e7b7c
# 構築環境
1. 各バージョン
Spring Boot ver 2.7.52. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/2a154793-8a45-27b0-cd32-b184567eaea5.png)# 成果物
![image.png](http
Listの編集距離(Java)
編集距離のList版。
Java17で簡単な動作確認しましたが、Java8でも動くと思います。# 動機
集合(Set)での類似度(Jaccard係数、Dice係数、Simpson係数、など)のような感じで、順番を考慮した類似度を使用したかったため。# ソースコード
“`java
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class EditDistance
{
Map> memo; public EditDistance() {
memo = new HashMap>();
}public int distance(List
list1, List list2) {
if (list1.isEmpty()) return list2.size
#11 messages.propertiesの値をコントローラに渡す
# #11 messages.propertiesの値をコントローラに渡す
前回の記事ではmessages.propertiesに記述した内容を各画面に直接入力してましたが、今回はコントローラに渡してから各画面で値を表示します。# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。# 前回まで
前回の記事https://qiita.com/Jackoguro/items/b71597bfeb79a90e7b7c
前々回の記事
https://qiita.com/Jackoguro/items/db35aa456341a484254b
# 構築環境
1. 各バージョン
Spring Boot ver 2.7.52. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/67356b8d-2039-81cd-c1a0-b
org.dbunit.dataset.DataSetException: I/O error について
# テストをしたらエラーが起きた
“`
org.dbunit.dataset.DataSetException: I/O error parsing CSV for URL:
“`ファイル名が記載してあるところを確認してみると
“`
/bin/test/messages/find/base/given/channels.csv
“`というのが書いてあったので確認してみるとファイル名が
“`
/bin/test/messages/find/base/given/channles.csv
“`
となっていた…ディレクトリ名を書くときはタイポがないように気をつけましょう。
#10 画面メッセージの標準化[messages. properties]
# #10 画面メッセージの標準化[messages. properties]
複数箇所に使用されるメッセージは1つにまとめて管理しておくことで変更が楽になります。今回は固定メッセージをmessages.properties内で管理します。# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。# 前回まで
前回は画面レイアウトを作成しました。https://qiita.com/Jackoguro/items/db35aa456341a484254b
# 構築環境
1. 各バージョン
Spring Boot ver 2.7.52. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/38798b19-ec94-bf73-ad31-9a5e21b2b326.png)# 成果物
![image.png](https://
Javaのenum型(列挙型)
## enum型とは
・定数を一つの型でまとめて管理できるクラス(一応)
・通常のクラスとは異なり、new演算子でオブジェクトは生成できない
・同じような意味を持つ定数をまとめて管理できる### 定義方法
“`java
public enum Animal {
CAT,
DOG,
FOX,
}
“`
### 使ってみる
今の現場ではenum型の定数を使った時、フィールドに値がセットされる使い方が多い。“`java
public enum Animal {
CAT(“猫”,1),
DOG(“犬”,2),
FOX(“狐”,3);private String name;
private int id;private Animal(String name, int id) {
this.name = name;
this.id = id;
}public String getName() {
return name;
}
Javaで何か作ってみる(2022/11/18 Day29)
## 今日やった事
– Udemyの動画教材を少し見た。(**J1-14_クラスとメソッド** まで見た。)
## 参考にしたもの
– [【超絶丁寧解説】Javaプログラミングをゼロから学ぶ!絶対挫折させない「基礎入門」講座【講師評価4.3】](https://www.udemy.com/course/uz-java-kiso/)
→ Javaの勉強に使用しているUdemyの動画教材。
## 所感
– 内容理解は完璧。
– springそろそろ着手したいな。
→動画教材探しておくか。
## 明日の予定
– 引き続き、動画教材を進めていく。
#9 Bootstrapを利用して画面の作成[2. デザイン作成][郵便番号から住所を自動入力]
# #9 Bootstrapを利用して画面の作成[2. デザイン作成][郵便番号から住所を自動入力]
# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。# 前回まで
前回はBootstrapを利用するために環境設定を行いました。
今回は実際にBootstrapを利用してデザインを作成したいと思います。**環境設定**
https://qiita.com/Jackoguro/items/69153e445a0015ab1e12
**Bootstrapの一部機能まとめ**
https://qiita.com/Jackoguro/items/d539196ffe57205d06bb
**他の方がまとめてくれた記事**
https://qiita.com/nakanishi03/items/c80a16b9b9796c25f890
# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5
jquery ver 3.6
JavaによるXMLとExcelのワークブックの相互変換
XML(Extensible Markup Language)は、ハイパーテキストマークアップ言語であり、ファイル形式の一つである。XMLは、ラベルをカスタマイズできる、拡張性がある、読みやすく編集しやすい、伝送しやすいなどの特徴があり、アプリケーション間のデータ交換に最もよく使われるツールになっている。マイクロソフトのOpenXMLのおかげで、ExcelもXMLベースの文書形式をサポートしており、開発者が表を伝送したり操作したりするのに便利である。しかし、一般ユーザーにとって、表ファイルはまだ読み取りと編集に便利なxlsまたはxlsx形式に変換する必要があります。この記事では、無料の [Free Spire.XLS for Java](https://jp.e-iceblue.com/introduce/free-spire-excel-for-java.html) を使用して、**XMLファイルをExeclワークブックに**、**ExcelワークブックをXMLファイルに変換**する方法を紹介します。
– [ExcelワークブックをXMLファイルに変換する](#excelワークブッ
Intellijで始めるSpring Boot
# 概要
今回は、Java入門としてIntellijとSpringBootで始めるアプリケーション開発を公開したいと思います。## Intellijとは
IntellijはJetBrainsという企業が開発するJVM言語向けのIDEで、インテリジェーと読みます。
IntellijはJVMデベロッパーの70%以上が利用するIDEで非常に高いシェアと機能性を備えています。## Spring Bootとは
Spring bootとは、Java言語の環境化で使用できるWebアプリケーションの開発をサポートするフレームワークの一つです。
Spring Frameworkとは別物なので注意しましょう。
違いをざっくり説明すると、
●Spring Frameworkは、Java言語のアプリケーション開発のために作られたフレームワークの集合体。
●Spring bootは、集合体となった機能を使いやすくするためのフレームワーク。
となります。気になる方は自分で調べてみて下さい。# 目次
1. Intellijのインストール
2. Spring Bootプロジェクトのひな型を作成し、アプリケ
【Linux】Linux Serverのawt使用不可の件
LocalPCではエラーなく運営できるが、サーバ-に乗せるとエラー(java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment)が発生する場合があります。
OSによる設定の違いがエラーの原因で、
下記の中のどちらかを選び設定すれば、解決できます。【プログラム内に組み込み】
System.setProperty(“java.awt.headless”, “true”);【Serverの設定を変更】
catalina.shファイルのCATALINA_OPTS部分にオプションを追加する。
-Djava.awt.headless=true
Leetcode 153. Find Minimum in Rotated Sorted Array
# 153. Find Minimum in Rotated Sorted Array
https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/description/
## アプローチ
### 1. 二分探索“`java
class Solution {
public int findMin(int[] nums) {
int start = 0;
int end = nums.length – 1;while(start < end){ int mid = start + (end - start) / 2; if(nums[mid] > nums[end]){
start = mid + 1;
}else{
end = mid;
}
}
ret