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

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

localhot xampp セッティング例「備忘録」

一度整理して、再構築したので構築の見本と備忘録のため例として載せることにしました。
それぞれの環境のパスに合わせ参考程度でお願いします。
“`text
xampp-control.exe action to stato

it my address
C:\xampp\htdocs
http://localhost/ to PHP: index.php http://127.0.0.1/index.php

Apache 2.2 work Area action?
file:///C:/Program%20Files%20%40×86%41/Apache%20Software%20Foundation/Apache2.2/htdocs/my_work_index.memo
PHP
php_5_4_6_Win32_VC9_x86 Chec Apach conf httpd.conf No Sete UP.
php_8_2_12_vs16_64 local no setup
Sete up: Apache
AddHandler cgi-script .cgi .pl .r

元記事を表示

Spring transactionメモ

~~~Java
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;

import java.io.IOException;

@Service
public class CsvImportSer

元記事を表示

Java経験者がKotlinで実装したアプリをGoogle Playでリリースするまでに得た気づき

# 概要
日頃、Javaに触れている筆者が、KotlinでAndroidアプリを作成し、Google Playに公開した一連の中で得た気づきを共有できたらと考えています…

# 前提・背景
Java:ある程度読み書きできます…Androidアプリは過去に個人レベルでJavaにて実装経験がありました。
Kotlin:興味をよせていましたが、KotlinでのAndroidアプリ実装経験はありませんでした。

# デバッグに使うAndroid仮想マシンのアイコンランチャに、開発中アプリのアイコンが2つ存在する…
開発中、デバッグ環境としてAndroid Studioに標準搭載のAndroid仮想マシンを使っていました。デバッグや実行をすると、当該アプリがインストールされランチャーに開発アプリのアイコンが追加されます。ところが、まったく同じアイコン・名前のアプリがランチャーに2つ表示されていました…

## 原因・解決
AndroidManifest.xmlにて、以下の2つの記述が、複数のActivityの各``内に

元記事を表示

ラムダ式の中では「実質的にfinalでない変数」は使えないらしい

# はじめに
業務でJavaのStream APIを書いたときにエラーが出たので調べたことをメモします。

# 問題
日付と値を持つオブジェクトのリストと、対象期間が与えられ対象期間内でリストにない日付のデータを補完する処理を書きました。

“`java
List dateAndValList = List.of(); // 実際には検証したいオブジェクトのリスト
LocalDate startDate = LocalDate.parse(“2024-01-01”);
LocalDate endDate = LocalDate.parse(“2024-02-01”);

while(!startDate.isAfter(endDate)) {
if (dateList.stream().filter(date -> date.isEqual(startDate)).count() < 1) { // 補完する処理 } startDate.plusDays(1); } ``` StreamAPIを利用している行で以下のエラ

GmailEメール送信機能の実装

:::note info
個人的に作っているウェブサイトからメールを送信する機能を作るようになって記録します。
:::

1. build.gradle 作成
“`gradle
dependencies {
implementation ‘org.springframework.boot:spring-boot-starter-mail’
}
“`

2. 以下のURLからアプリパスワードを作成
https://accounts.google.com/v3/signin/challenge/pwd?continue=https://myaccount.google.com/apppasswords&service=accountsettings
![스크린샷 2024-02-07 17.59.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3567846/c51cecfd-f1ba-3161-dbf1-4e5ddf7fe10e.png

SpringでGoogleアカウントログインを実装する

現在自社開発を進めていますが、その中でGoogleアカウントでのログイン機能を実装したのでこの話をまとめました!
初めてだったのでウキウキです。

# 1. 目標

↓のような感じでボタンを表示させて

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495456/0cdde7ad-ecb8-63a5-4ec8-72158fc5f7a2.png)

押下するとGoogleでのログイン画面を表示させる

![googlelogin.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495456/be0a630e-abda-295d-6eb9-b262bda8c3c0.png)

Googleアカウントでログインして情報を受け取るところまでやっていきます!

# 2. 下準備(Google Cloud)

実装する前に一つ下準備が必要です。
Google Cloud(GCPって奴やな)でOAuth 2.0 ク

MinecraftのaccesstransformerのInfo

# はじめに
やぁやぁこんにちは。Never3924です。
今回はAccessTransformerについて。
これ日本語情報がほぼなくて困ってた。
1.20.4になるとなおさら…

# 本題
## AccessTransformerの場所
場所について解説。
“`
META-INF
┗accesstransformer.cfg
“`
ここに配置。
あと、build.gradleのminecraft -> accessTransformerオプションをコメントアウト。
ない場合はここにコードを貼っておくからコピペ。
`accessTransformer = file(‘src/main/resources/META-INF/accesstransformer.cfg’)`

## 中身
### テンプレ
テンプレート。
“`
<置き換えたいアクセス修飾子> <クラスパス> <番号>
“`
[アクセス修飾子](https://www.tohoho-web.com/java/modifier.htm)は
public
protected
default
private

Javaのエスケープシークエンス

# 始めに
Javaを含めた言語には単体では表示できない記号が存在します。

例えば”(シングルクォーテーション)や””(ダブルクォーテーション)はString型やchar型の宣言で使用される為、文字列中に入っているとエラーになってしまいます。

※文字列中に”が登場すると、そこが文末であるとみなされるのでエラーとなります。

エラーを回避しつつ、’や”を文字列中に表示する際、用いるのがエスケープシーケンスです。

# エスケープシーケンス

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

エスケープシーケンスの具体例
表記 意味
¥’ ‘(シングルクォーテーション)
¥” “(ダブルクォーテーション)
¥¥ ¥(円記号)