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

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

demo

“`java:demo.java

@RequestMapping(value = “/user/create”, method = RequestMethod.POST)
public String create(@Validated @ModelAttribute UserRequest userRequest, BindingResult result, Model model) {
if (result.hasErrors()) {
List accountNameErrors = new ArrayList<>();
List loginIdErrors = new ArrayList<>();
List passwordErrors = new ArrayList<>();

for (ObjectError error : result.getAllErrors()) {
String defaultMessage = Obj

元記事を表示

Control

“`java:Control.java

@RequestMapping(value = “/user/create”, method = RequestMethod.POST)
public String create(@Validated @ModelAttribute UserRequest userRequest, BindingResult result, Model model) {
if (result.hasErrors()) {
List errorList = new ArrayList<>();
for (ObjectError error : result.getAllErrors()) {
String defaultMessage = Objects.requireNonNull(error.getDefaultMessage());
String errorMessage = messageSou

元記事を表示

Java|Stringクラスのメソッドの使い方(Ⅱ)

# 文字列を扱うメソッド
### valueOf()
– 書き方:String.valueOf(boolean b / char c / char[] c / int i / long l / float f / double b / Object o)
– 戻り値:String

 value Ofメソッドは、様々なタイプの値をString型に変換してくれます。データ型が厳しく分かれているJavaでその値を扱うためにデータ型を統一することも重要なことです。このメソッドを利用すると、どのデータ型でもString型に変え、値を扱うことができるようになります。
 int型の場合はStringに変換して文字列として「+」演算をしたり、オブジェクトのインスタンスの場合はStringに変換してそのインスタントのアドレス値を返すこともできます。
“`
public class Main{
public static void main(String[] args){
int intValue=30;
char chrArrayValue[]={‘H’,’e

元記事を表示

Java|Stringクラスのメソッドの使い方(Ⅰ)

# はじめに
JavaのStringクラスには文字列を扱うためのメソッドが入っています。今回はそのメソッドについて紹介しようと思います。

# 文字列を扱うメソッド
### replace()
– 書き方:str.replace(char searchChar, char newChar)
– 戻り値:String

 replaceメソッドは、文字列を別の文字または文字列に置き換えるために使われます。最初の引数に置き換え元の文字を指定し、2番目の引数に置き換える文字を指定します。
“`
public class Main{
public static void main(String[] args){
String myStr = “aaaa”;
System.out.println(myStr.replace(“aa”, “b”)); // bb
}
}
“`

### charAt()
– 書き方:str.charAt(int index)
– 戻り値:char

 charAtメソッドは、文字列から引数で指定された位置(index)にある文字を抽出して返します。

元記事を表示

SpringBootプロジェクトでテスト実行時にUnsatisfiedDependencyException

## 最初に結論
適切に`@ComponentScan`しよう。

## 前提
以下のように3階層のモジュールがあり、
main-module -> sub-module -> util-module という依存関係であるとする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541075/41302ebc-bd7f-7848-7d8b-fca258769a23.png)

このような構成で、sub-module内の`@SpringBootTest`が付与されたテストを実行した際
`org.springframework.beans.factory.UnsatisfiedDependencyException`が発生してハマったので備忘でメモ。

## 原因
sub-module内の特定の`@Bean`がutil-module内の特定の`@Bean`に依存していたが、
コンポーネントスキャンの設定がデフォルトのままとなっており、
util-module内までスキャンしにいかなかったことが

元記事を表示

データベースを検索した結果の件数でHTMLを切り替える方法

# はじめに
データベースの検索結果がある場合と無い場合(0件)でHTMLを切り替えたいなーと思い、
検索結果の件数によってHTMLを切り替える方法を調べました。

# HTMLを切り替える方法
JAVA Spring BootとThymeleafを使用してpageableから要素数を取得することでHTMLタグを切り替えられそう。
という事で、.getNumberOfElements() メソッドを使用して検索結果の件数を取得してHTMLタグを切り替えてみました。

# コード抜粋

“`html:index.html

要素なし

“`

“`java:Controller.java
packa

元記事を表示

java(OpenJ9)のheap dumpをMemoryAnalyzerで解析する

:::note info
2023/11/16
新規作成
:::

#### 経緯・課題
・業務で java heap dump の仕様を調査する必要があり、memory analyzerをMacOSに導入したので備忘録として残しておきます。


#### 前提・環境など
・MacOS Sonoma (14.1) Apple M1 Pro
・java jdk-17.0.8.1+1 (IBM OpenJ9)


#### 参考知識

・[IBM SDK, Java Technology Edition 8 – 診断ツールおよびデータ](https://www.ibm.com/docs/ja/sdk-java-technology/8?topic=component-diagnostic-tools-data)


#### 1.二種類のMATツール
 Memory Analyzer tool (MAT)は2種類利用方法があります。
 ・Eclipse版
  Eclipseを普段から利用している場合、Eclipseにプラグインとして追加することが可能です。

 ・スタン

元記事を表示

JUnitで学ぶユニットテストの実践的で本質的な考え方

# 初めに

具体的なコードや方法も記述しますが、それよりも JUnit などの自動テストのFW、ユニットテストの概念や目的など本質的なことを把握し理解する事を主題にしてます。

また、参考資料欄にあるように、様々なものを参考に網羅的にまとめています。非常にボリュームがるので興味あるところだけ読んでもらう方が良いかもしれません。

こちらでは、ある程度開発経験(1〜2年程度)があり、自動テストについて少しでも触れた事があるくらいの方が対象になる記事です。自分がそうだからです。ただし、コンパイルエラーにならないだけの書き方では意味がないのでそういった構文やお作法のようなものの話は少ししかしません。なぜそのようなお作法になったのか?そうである理由は何なのか?トレードオフは?といった、本質的な部分にフォーカスを当てていきたいと思います。

# 1. 概要

JUnit は Java 言語向けのユニットテストフレームワークです。

1997年に、Smalltalk のためのユニットテストのフレームワークであるSUnitをもとにして、エーリヒ・ガンマと、SUnitの開発者のケント・ベックが中心と

元記事を表示

Javaってオワコン??ーJavaでご飯を食べていけるようになりたいエンジニア

# Javaを覚えれば食べていけると言われて
自分が学生の頃にC言語をやりつつ、先生にはこれからはJava時代だ!!
Javaを覚えれば食うに困る事態にはならない!! と言われてはや数十年……
現在はプログラミングの「Vivienne Westwood」いや「焚き火台」かな
はたまた「マリオカート」的な……

例えがわからなくなってきましたが、最先端!!!! という形ではないものの、常に前線にいる存在。
そんな形でさまざまなシステムが今日もJavaで動いております。
でも、ここ最近Javaってオワコン???? という話を聞くこともちらほら……
(まぁ、有償化のときが一番ひやっとしましたが……)

そんなJavaの将来についてどうなんだ? と見ていきたいと思います。

# そもそもJavaでできることって??
Javaって色々言われているけど、現状どんな特徴あるっけ? 何が作れる? をまとめてみよう!

* Javaの特徴
1. オブジェクト指向
オブジェクティブ指向言語の筆頭に数えられるJava。そこは今も昔も変わっていません。

元記事を表示

FizzBuzzEnterpriseEditionが何をやっているのか超ざっくりと

## FizzBuzzEnterpriseEdition

https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition

## 大体こんな感じ(多分)

実際はFactoryだとかがあったり(水増し用の)クラス、インターフェースが大量に作られているのでかなりカオス

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

interface IsEvenlyDivisibleStrategy {
boolean isEvenlyDivisible(int i);
}

class FizzStrategy implements IsEvenlyDivisibleStrategy {
public boolean isEvenlyDivisible(int i) {
return i % 3 == 0;
}
}

class BuzzStrategy implements IsEvenlyDivisible

元記事を表示

プログラミング初心者が初めてJava(基礎)を触った感想とざっくりまとめ。

# はじめに
気になっていたJavaを教材を通して初めて触ったのでそのまとめと感想を共有します。

初心者なので間違った説明や一般的ではない手順が含まれている可能性があります。
いくつかのところでRubyとの比較をしていますが、比較できるところを全てを取り上げているわけではありません(今の自分じゃ荷が重いです)。
分からなかった部分は自分で調べていたりします。
初心者が学んだことをノートにまとめているんだなーくらいの認識だとありがたいです。

# 環境

– Windows11
– AdoptOpenJDK
– vscode

# Javaの開発案件はRubyとどう違うか
## Ruby on Railsの特徴
Ruby on Railsは、小規模の組織で好まれるフレームワーク。
– 特徴
短期間でプロダクトをリリースできること
言語習得のための学習コストが低いこと
## Javaの特徴
Javaは、大手企業の基幹システムなど大規模開発に適した言語。
– 特徴
アプリケーションの仕様変更を行いやすいこと
セキュリティが強固であること
長期間にわたる保守・運用がしやす

元記事を表示

Java: `serialVersionUID`について

# Java: `serialVersionUID`について

Javaのオブジェクトシリアライゼーションは、オブジェクトの状態をバイトストリームに変換し、ネットワークを介して送信したり、ディスクに保存したりするプロセスです。このプロセスは、`Serializable`インターフェイスを実装することでオブジェクトに対して有効になります。`serialVersionUID`は、シリアライズプロセスの中で重要な役割を果たします。この記事では、`serialVersionUID`の重要性、その使い方、および指定しない場合のデメリットについて詳しく解説します。

## `serialVersionUID`とは?

`serialVersionUID`は、シリアライズ可能なクラスの固有のバージョン番号です。このUIDは、シリアライズされたオブジェクトと対応するクラスの互換性を検証するために使用されます。異なる`serialVersionUID`を持つクラスとオブジェクト間でのデシリアライズは、`InvalidClassException`を引き起こす可能性があります。

### `serialV

元記事を表示

JavaSilverの試験で多分問われない演算子の話③

# はじめに
前回の記事

https://qiita.com/hiroki1994/items/466e8a8fd88d3d73bcb2

に続き本記事では「&=,|=,^=,<<=,>>=,>>>=」といった代入演算子について紹介します。
本記事は第一弾の下記の記事の知識があれば、**左辺と右辺で演算した結果を左辺に代入する** というポイントさえ覚えていただければ問題ないです。

https://qiita.com/hiroki1994/items/ab95ecdaf3a20cac9615

# 「&=,|=,^=,<<=,>>=,>>>=」

### ①「&=」

左辺と右辺で**論理積(AND)** を取った値を **左辺の変数に代入します**。

では「a &= b」で考えていきましょう。
これは **「a = a & b」** と同じ意味です。
a=1100、b=0101の場合下記の図のように、
論理積なのでab両方1の桁は1に。
それ以外の桁は、両方0もしくは片方が0なので0になります。

上記の**a & bの結果**を**変数aに代入**します。

|

元記事を表示

Java基礎まとめ(データベース)

# はじめに
Javaの学習を始めました。
こんなレベルから・・・?というくらい超基礎~から執筆します。
自身が復習できるような自身の備忘録を作成していきます。

# データベース接続の仕組み
### データベース(DB)
データを整理・蓄積したもの。DBとも呼ぶ。
Dataは資料。基礎事実。実験、観測、調査、統計学的に処理したりして得た数値情報。
baseは「基地」という意味があり、直訳すると「情報の基地」のようなもの

データを管理してくれるソフトウェアのこと。
そしていろいろな種類があり、どのDBを利用するかを決定した上で開発をすすめる。

* Oracle
* MySQL

などいろいろなDBソフトウェアがある。

### JDBC
Java DataBase Connectivityの略
Javaとデータベースをつなげる役割をするもの(クラスやインターフェイスの集まり)

* JDBC API
APIとはプログラムやサービスの機能を外部から使えるようにする仕組みや利用方法
JDKに含まれるパッケージなので、一般的なJava環境

元記事を表示

devContainerでNext(React)+SpringBoot(Java)の開発環境を作成する BackEnd編

Next+springBootの開発環境構築2部作のBackEnd編になります。
FrontEndについては[こちら](https://qiita.com/ede/items/e1259f005af47be9ffe2)。

## 構成
– SDKMAN
– SpringBoot
– gradle
– Java
– mySQL

# 手順

## DevContainerを作成
– 1.VScodeを起動する
適当なフォルダーを作成して、そのフォルダー配下でVSCodeを起動する。
“`
~$ mkdir sample-project-backend
~$ cd sample-project-backend

sample-project-backend$ code .
“`
– 2.VSCodeのコントロールパネル(`ctrl + shift + P`)から、`「Dev containers:Add Dev Containers Configuration Files…」`を選択す
– 3.`「Java」`を選択
– 4.「Java」のバージョンを選択(17)。
– 5.CL

元記事を表示

AOJ ITP1 8-A Toggling Cases

AOJのITP1 8-AにJavaで挑戦した。

~~~java:Main.java
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
String ans = “”;
for (int i=0;i

元記事を表示

Leetcode 1930. Unique Length-3 Palindromic Subsequences

https://leetcode.com/problems/unique-length-3-palindromic-subsequences/description/?envType=daily-question&envId=2023-11-14

# アプローチ
– hashset

1. 同様のCharを持ってくる
1. 同様のCharスタート時点から終了時点の間のCharを取得
1. 上記で取得したCharをHashSetで入れる(他のCharを取得)
1. 結果を合算する
1. 結果を出す

“`java
class Solution {
public int countPalindromicSubsequence(String s) {
int result = 0;

for (int i = ‘a’; i < 'z'; i++) { int firstOccurence = s.indexOf(i); int lastOccurrence = s.lastIndexOf(i);

元記事を表示

Gitを使う開発者のための時間節約術:自動`.gitkeep`ファイル生成ツール

# はじめに
開発者の皆さん、空のディレクトリをGitリポジトリに含めるために`.gitkeep`ファイルを一つずつ手動で作成する作業に時間を取られていませんか?今日は、この面倒な作業を自動化するツール「GitkeepGenerator」の使い方とメリットをご紹介します。

# GitkeepGeneratorとは?
`GitkeepGenerator`は、指定されたディレクトリパス内のすべての空のディレクトリに`.gitkeep`ファイルを自動的に作成するJavaプログラムです。このツールを使うと、空のディレクトリをGitリポジトリに簡単に追加できます。

# なぜ`.gitkeep`ファイルが必要?
Gitは空のディレクトリをトラックしません。プロジェクトのディレクトリ構造を保持するためには、空のディレクトリに何らかのファイルを置く必要があります。`.gitkeep`はその目的で広く使われています。

# GitkeepGeneratorの使い方
1. **ダウンロードとセットアップ:** GitkeepGeneratorのJavaプログラムをダウンロードし、Java環境をセットア

元記事を表示

Quarkusのチュートリアルで少しつまづいた話

# つまづいたこと

Quarkus公式の[Get Started](https://quarkus.io/get-started/)の通りに進めてLAN内サーバの`localhost:8080`にデプロイしたが、クライアントマシンのブラウザから`サーバのIP:8080`でアクセスできない。

# 結論

`src/main/resources/application.properties`に以下を記載する。
“`
quarkus.http.host=0.0.0.0
“`
以上。

# 原因

参考にした[stackoverflow](https://stackoverflow.com/questions/55043764/how-to-make-quarkus-to-listen-on-all-network-interfaces-instead-of-localhost)の記事によると、Quarkusはデフォルトではループバックアドレスの`127.0.0.1`しか受け付けていないらしい。

`src/main/resources/application.properties`修

元記事を表示

Java基礎まとめ(クラスライブラリ)

# まずはじめに
Javaの学習を始めました。
こんなレベルから・・・?というくらい超基礎~から執筆します。
自身が復習できるような自身の備忘録を作成していきます。

# クラスライブラリとは
クラスライブラリは直訳すると「クラスの図書館」
Javaの開発環境であるJDKの一部として、提供されるクラス群をクラスライブラリと呼ぶ。
数千のクラスやインターフェイスがまとめられている。よく使われる機能をまとめた便利セットのようなもの。

【クラスライブラリ例】
* java.lang
基本的なクラス
* java.io
入出力関連
* java.net
ネットワーク関係

などなど

たくさんあるので、よく使うものをその都度学習という形でよいかも。

# APIドキュメント
API(Application Programming Interface)は、アプリケーションやプログラムをつなぐもの。
開発者は呼び出し方さえわかれば、呼び出して利用できる。(System.out.println();みたいなやつ)

クラスライブラリーやそれに含まれるメソッド・メンバー変数がまとまっているものを
*

元記事を表示

OTHERカテゴリの最新記事