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

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

iso日時変換処理

import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.DateTimeParseException;
import java.util.Locale;

public class DateTimeConversionUtil {

private static final DateTimeFormatter FORMATTER = new DateTimeFormatterBuilder()
.appendOptional(DateTimeFormatter.ofPattern(“yyyy-MM-dd’T’HH:mm:ss[.SSSSSS]”))
.appendOptional(DateTimeFormatter.ofPattern(“yyyy-MM-dd’T’HH:mm:ss”)

元記事を表示

掲示板プログラム

# 概要
この記事は、昔自分が独学で自作した掲示板プログラムを備忘録兼、誰かの役に立てばと思い記述しました

# 作成した掲示板サイト
スレッドを作成し、作成されたスレッドに対してそれぞれコメントを投稿できるシンプルな掲示板です。

http://hermit.games

# 工夫した部分
– コメントの投稿者名を指定する
– 投稿者名、コメント数の文字数を制限して、異常があれば投稿せず警告を表示する
– コメントの投稿時間、スレッドの更新時間、コメント数を表示する
– スレッドが作成されるたびに各スレッドの識別子を作成し、その識別子から各スレッドへ遷移する
– コメント部分と背景で色分けをしている
– スレッド作成時、確認ダイアログを表示する
– スレッド数が10個以上になるとページングで表示する
– スレッド内でページ最上部、最下部に移動するボタン
– スレッド作成ボタンとコメント書き込むボタンの表示が、カーソルが上にあるとボタンが押されたようにする

# データベース
![image.png](https://qiita-image-store.s3.ap-northeast-

元記事を表示

Java(FW:Spring)の為の環境構築

簡単な新規アプリ作成のために環境構築したら、
えらい大変だったので、その過程の学びを共有します。

# 結論
https://willbrains.jp/
↑ここから該当するものをダウンロードして下さい。
下記の4つ全部入りなのでそのまま使えます。

そして何が何のために必要なのかチンプンカンプンだったので、
まとめました。

**OpenJDK(Java Development Kit):**
オープンソースのJava開発キットであり、Javaアプリケーション開発に必要なコンパイラやライブラリなどが含まれています。

**STS (Spring Tool Suite):**
Spring開発に特化したEclipseベースのIDE(統合開発環境)で、Springプロジェクトのセットアップやテスト、デバッグを容易にします。Spring Bootなどのフレームワークとの統合が強化されており、開発の効率化を図れます。

**Pleiades:**
Eclipseの日本語化プラグインで、IDE(統合開発環境)のメニューやオプションを日本語表示に変更することができます。

**Eclipse:*

元記事を表示

Java Springでデバックする方法

Java Spring 環境においてデバック方法は大きく2つです。

# IDEを使用したデバッグ
IDEを使用したデバッグは、開発者がコードを実行中に
ブレークポイントを設定して、特定の行や条件で実行を
停止させる機能です。

**ブレークポイントの設定**

コード内の任意の行にブレークポイントを設定します。
このブレークポイントがある行にプログラムの実行が到達すると、IDEはそこで実行を一時停止します。

**ステップ実行**

実行を一時停止した後、一行ずつコードを実行することができます(ステップオーバー)、または関数内に入って行く(ステップイン)、または関数から抜ける(ステップアウト)などの操作を行うことができます。

**変数の検査**

実行を停止した状態で、ローカル変数やインスタンス変数の値を確認することができます。これにより、変数の値が予期したものであるかを確認し、バグの原因を特定できます。

**条件付きブレークポイント**

特定の条件が真のときのみブレークポイントで停止させることができます。これにより、問題が発生する特定のシナリオをデバッグしやすくなります。

元記事を表示

どちらが良いの? intelliJ IDEA vs Eclipse

Java Spring環境でのアプリケーション開発において、IntelliJ IDEAとEclipseは共に広く使用される統合開発環境(IDE)ですが、いくつかの違いがあります。両者の主な特徴とメリット、デメリットを説明します。

# IntelliJ IDEA
**メリット**

**ユーザーインターフェース:**
直感的でモダンなユーザーインターフェースを持ち、使いやすいと多くの開発者に評価されています。

**スマートなコード補完:**
高度なコード補完機能を持ち、コードの記述を効率的に支援します。

**強力なリファクタリングとナビゲーションツール:**
コードのリファクタリングやソースコード内のナビゲーションが容易です。

**Springに特化したサポート:**
Springフレームワークに対する優れたサポートがあり、
Spring Bootアプリケーションの開発が容易です。

**デメリット**

**リソース使用量:**
比較的多くのシステムリソースを消費し、特に古いまたは低スペックのマシンでは遅くなることがあります。

**コスト:**
無料版(Community E

元記事を表示

Javaってなんぞい?

Javaはプログラミングの世界で非常に人気があり、オブジェクト指向の概念を核とするプログラミング言語です。プログラミングが初めての方にとって、オブジェクト指向という言葉は少し難しく感じるかもしれませんが、実際には私たちの日常生活に非常に近い考え方です。この記事では、Javaとオブジェクト指向の基本を解説し、プログラミングの世界への理解を深める手助けをします。

# Javaとは何か?
Javaは、1995年にサン・マイクロシステムズによって開発されたプログラミング言語です。その主な特徴は「Write Once, Run Anywhere(一度書けば、どこでも動かせる)」というスローガンに題されるポータビリティです。Javaで書かれたプログラムはJava仮想マシン(JVM)上で実行されるため、Windows、Mac、Linuxなど、さまざまなオペレーティングシステムで動作します。これにより、開発者は特定のプラットフォームに縛られることなく、アプリケーションを作成できます。

**オブジェクト指向プログラミング(OOP)**
オブジェクト指向プログラミングは、プログラムを「オブジェクト」と

元記事を表示

List操作のデバッグを効率化するラッパークラス活用法

# はじめに

Java や Python など、多くのプログラミング言語で List やその他のコレクション型のデータ構造は頻繁に使用されます。これらのコレクションにオブジェクトを追加する際、特に複雑なアプリケーションや可読性の非常に低いコードでは、デバッグが難しくなることがあります。特に、List のオブジェクトクラスなどが多用されている場合、問題の追跡と解決はより複雑になります。このような状況を解決するための有効なデバッグ方法の一つが、List の Add メソッドなどのメソッドをラップしてブレークポイントで捕まえるテクニックです。

# 方法の概要

この方法では、既存の List にオブジェクトを追加する Add メソッド(あるいは同様の機能を持つメソッド)をカスタムラッパークラスで包みます。このラッパークラスでは、Add メソッドが呼び出された際に特定のアクションを実行することができ、デバッガーのブレークポイントを設定して実行時に停止させることが可能です。これにより、開発者はオブジェクトが List に追加される正確な時点を特定し、追加されるオブジェクトの状態を詳細に調査す

元記事を表示

【Java】備忘録:Swing + Timer

#### 2日目(連投)


#### Timer の処理を Swing で画面表示してみた。


#### 結果(貼り付けられない…)
画面内の文字が更新されていく感じのプログラム


#### source
“`Java

import javax.swing.JFrame;
import javax.swing.JLabel;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.Timer;
import java.util.TimerTask;

public class App extends JFrame {

// timer
static MainFrame mainFrame;

public static void main( String[] args ) {
mainFrame = new MainFrame();
mainFrame.setVisible(true);
mainFrame.run();
}

pri

元記事を表示

SpringBootに慣れすぎてしまって、SpringBootの何がいいかよく分からなくなってしまった

# はじめに

特に転職してからSpringBootのフレームワークを用いた開発を2-3年ほど続けてきて、Springの理解はだんだん深くなってきて、ソースもすいすいと読めるようになってきました。
ですが、いざDIとか何が嬉しいんですか?と聞かれると明確に答えられないなと思い、これを機に一度基本から考えてみることにしました。

色々考えていて、SpringBootを使う利点がよくわからなくなってしまいました・・・お恥ずかしい・・・:scream:
コメントなどでこういう場合とか、理解が間違っているなど教えていただきたいです。 :sob:

# DIコンテナ

とりあえず、真っ先にDIコンテナとかIoCコンテナがSpringだったらいい点として挙げられますよね。
自分の理解だと、呼び出す側が呼び出す方の実装に依存しちゃうのを防げるのがいい点だと理解していて、よくリポジトリ層とかで実装が変えたときの変更可用性が高いってのが挙げられると思っています。そんな変更ほとんどしたことないけど。

“`kotlin
// Oracle -> MySQLに変更するときに変更が発生する
class Sa

元記事を表示

【Java】備忘録:Timer、TimerTask

Day : 2024/2/6


#### コメント
Java を勉強し始めて 2 日目。
来週までには GUI 操作を実装したい。

今回は、TimerとTimerTask の備忘録。


#### 定期的に関数を実行したいときに使う?
– 1日 1回スクレイピングする
– ゲームの画面更新
– その他いろいろ


#### 以下、コード

“` Java
// main.java

public class App {

static TimerTest tTimer;

public static void main( String[] args ) {
tTimer = new TimerTest();
tTimer.test_schedule();
}
}

“`

“` Java
// TunerTest.java

import java.util.Timer;
import java.util.TimerTask;

public class TimerTest extends Timer {

元記事を表示

Javaインナークラスについて

## はじめに
今回はJavaのインナークラスについて調べました。
JavaGoldの勉強をした際に出てきたので、要点をまとめようと思いました。

## ゴール
インナークラスの役割と各インナークラスの違いについて理解する。

## インナークラスとは
クラス内に定義されたクラスのことをインナークラスと言います。

## インナークラスの役割とは
役割としては、情報隠蔽(カプセル化)を提供します。
公開する情報を最小化することで、想定していなかったような使われ方を防ぐことができます。

## インナークラスの種類
インナークラスの種類は大きく以下の4つに分けられます。

・インナークラス:クラスの中に定義したクラス
・staticインナークラス:staticで修飾したインナークラス
・ローカルクラス:メソッド内で定義したクラス
・匿名クラス:ローカルクラスで名前のないクラス

また、4つのクラスと修飾子の関係を下記の表にまとめます。

| | public | protected | private | abstract | final | static

元記事を表示

【Java】Time APIについて

## はじめに
今回はJavaのTime APIについて調べました。
Java8から新しい日時関連のクラス群がjava.timeパッケージとして追加され、その中でも代表的なクラスを抜粋し、使用方法についてまとめました。

## ゴール
本記事はTime APIの代表的なクラスの使用方法を理解し、活用できるようになることをゴールとしています。

## java.timeパッケージの代表的クラス
本記事で使用するjava.timeパッケージのクラスと機能について下記にまとめます。

* Instantクラス
* 世界における、ある「瞬間」の時刻を、ナノ秒単位で厳密に指し示し、保持する。
* エポック秒を表すlong値と1秒未満のナノ秒を表すint値(0-999,999,999)からなる日時。
* ZonedDateTimeクラス
* 世界における、ある「瞬間」の時刻を、ナノ秒単位で厳密に指し示し、保持する。
* タイムゾーン付きの日時。
例:2015-12-15T23:30:59.999+09:00[Asia/Tokyo]
* Loc

元記事を表示

Javaの文字コードの今

# 始めに
文字や文字列を表示する際には文字コードを指定する必要があります。

文字コードにはShift_JIS,UTF-8,Unicode(UTF-16)などの種類があり、この指定を誤ると文字化けが起きてしまいます。

今回は2023年10月のアップデート後にJavaで使用されている文字コードについて確認しました。

参考にした記事

https://qiita.com/emily-08/items/24192c7f2f72dd4d8631

https://www.sejuku.net/blog/19673

こちらの記事からコードをお借りし、Javaの文字コードを確認しました。

~~~ :Main.java
public class Main {
public static void main(String[] args) {
System.out.println(System.getProperty(“file.encoding”));
}
}
~~~

~~~ :出力結果
UTF-8
~~~

どうやらバージョンアップ後もUTF-8が使用さ

元記事を表示

Javaサンプルコード

“`
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class GroupingProgram {
public static void main(String[] args) {
List people = readNames();
List> groups = groupNames(people, 4);
printGroups(groups);
}

public static List readNames() {
List people = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
System.out.println(“人の名前を入力

元記事を表示

時刻変換そのに

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

private static String convertToCustomFormat(String inputIsoDateTime) {
try {
// カスタムフォーマッターを定義
DateTimeFormatter customParser = new DateTimeFormatterBuilder()
.appendPattern(“yyyy-MM-dd’T’HH:mm:ss.SSS”)
.optionalStart().appendPattern(“XXX”).optionalEnd() // “+09:00”

元記事を表示

ISO時刻基準変換例

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Arrays;
import java.util.List;

public class DateTimeConversionTest {

public static void main(String[] args) {
List sampleIsoDateTimes = getIsoDateTimeSamples();

for (String inputIsoDateTime : sampleIsoDateTimes) {
try {
String formattedDateTime

元記事を表示

isoの多様な形式

ISO 8601形式で表される日時データは、非常に多様なパターンを持っています。これは、日時の表現が幅広い精度と様々な要素(年、月、日、時、分、秒、タイムゾーン)を含むことができるためです。ISO 8601は、単純な年月日から、時間を含むもの、さらにはタイムゾーン情報を含むものまで、多岐にわたる日時情報の表現をサポートしています。

### 主なISO 8601日時形式のパターン

1. **完全な日付**: `YYYY-MM-DD`(例: `2021-11-11`)

2. **年と週**: `YYYY-Www`または`YYYY-Www-D`(例: `2021-W45`、`2021-W45-4`)

3. **年と日**: `YYYY-DDD`(例: `2021-315`)

4. **完全な日時**: `YYYY-MM-DDTHH:mm:ss`(例: `2021-11-11T13:23:45`)

5. **秒の小数部分を含む日時**: `YYYY-MM-DDTHH:mm:ss.sss`(例: `2021-11-11T13:23:45.123`)

6. **タイムゾーン情報を含む

元記事を表示

JavaでISO日時をフォーマットする方法

ISO 8601は国際標準化機構(ISO)によって定められた日時の表記方法であり、国際的なデータ交換において広く利用されています。JavaでISO 8601形式の日時を扱う際、java.timeパッケージは強力なツールセットを提供します。この記事では、任意の形式のISO日時文字列を特定の形式(2021-11-11T13:23:45,123456+09:00)に変換する方法を紹介します。

日時のパース: 最初のステップは、入力されたISO日時文字列をLocalDateTime、ZonedDateTime、またはOffsetDateTimeオブジェクトにパースすることです。入力形式が事前にわかっていない場合は、DateTimeFormatterを使って柔軟に対応することが可能です。
2. 日時の変換: 日時オブジェクトを目的の形式に変換します。このプロセスでは、DateTimeFormatterをカスタマイズして使用します。
3. 結果の出力: 最終的に、変換された日時を文字列として出力します。

Javaコード

import java.time.ZonedDateTime;
im

元記事を表示

ABC339の解答[Java]

## はじめに
今回はコンテスト中にFまで、コンテスト後にGを解いたのでそれらを載せようと思います。

なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc339/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)をご参照ください。
では、見ていきましょう。

## A – TLD
問題文は[こちら](https://atcoder.jp/contests/abc339/tasks/abc339_a)

splitメソッドは正規表現として処理されてしまうので、エスケープさせる必要があります。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out =

元記事を表示

JavaでISO 8601日時形式を統一する方法

日時の取り扱いはプログラミングにおいてよく直面する課題の一つです。特に、異なるISO 8601形式の日時データを一つの標準形式に統一する必要がある場合、この処理はより複雑になりがちです。ISO 8601は国際的な日付および時間の表記標準であり、さまざまな形式(例えば、“2023-04-01T12:45:30Z”、“2023-04-01T12:45:30+02:00”など)を取ります。この記事では、Javaのjava.timeパッケージを使って、これらの異なる形式をUTCを基準とした一つの形式に統一する方法を紹介します。これにより、アプリケーション内での日時の扱いが簡単になり、バグの発生リスクを減らすことができます。
参考コード

import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class IsoDateTimeConverter {

public static void main(String[] args) {
// ISO 8601形式の日

元記事を表示

OTHERカテゴリの最新記事