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

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

Javaで「文字列の全体がパターンとマッチするか調べる(Matcher.matches)」の動作を確認してみた

# 概要

Javaで「文字列の全体がパターンとマッチするか調べる(Matcher.matches)」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`JSample3_1.java
import java.util.regex.*;

class JSample3_1{
public static void main(String[] args){
String regex = “S.*t”;
Pattern p = Pattern.compile(regex);

Matcher m1 = p.matcher(“JavaScript”);
System.out.println(m1.matches());

Matcher m2 = p.matcher(“Script”);
System.out.println(m2.matches());

Matcher m3

元記事を表示

Springサービス層の基本: アノテーションとメソッド一覧

# サービス層で使用されるアノテーション
### @Service

サービスクラスをSpringコンテナにサービスとして登録します。ビジネスロジックを実装するために使用されます。
例:
“`java
@Service
public class MyService {
// ビジネスロジックの実装
}
“`
### @Autowired

Springの依存性注入機能を使用して、他のBeanを自動的にインジェクションします。
例:
“`java
@Autowired
private MyRepository myRepository;
“`
### @Transactional

メソッドまたはクラスにトランザクション管理を適用します。トランザクションはデータベース操作の一貫性を保つために使用されます。
例:
“`java
@Transactional
public void performTransaction() {
// トランザクション内で実行する処理
}
“`
### @Qualifier

複数のBeanが存在する場合に、どのBeanをインジェク

元記事を表示

複数のRestControllerでswaggerのApiResponseを共有

下記キャプチャのように、swagger-uiにおいて複数の`@RestController`で共通の`@ApiResponse`を定義したい場合は`@ApiResponses`を定義するカスタムアノテーションを作成する。

![customanno.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31934/a5a096ab-9b0a-5d30-6dc8-62bda8858a35.jpeg)

カスタムアノテーションの例は以下の通り。

“`java
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import

元記事を表示

Flutterで作る本格的なPongゲーム!スコア表示付き

## Flutterでゲームを作ろう!

こんにちは、Flutter開発者の皆さん!今回は、Flutterを使って本格的なPongゲームを作成する方法を詳しく解説します。スマートフォン向けに最適化され、右上にスコアを表示する機能も実装します。さあ、一緩に作っていきましょう!

### 1. プロジェクトのセットアップ

まずは、新しいFlutterプロジェクトを作成し、必要なパッケージをインストールします。

“`bash
flutter create pong_game
cd pong_game
flutter pub add flame
“`

### 2. main.dartファイルの作成

`lib/main.dart`ファイルを以下のように編集します。

“`dart
import ‘package:flame/game.dart’;
import ‘package:flutter/material.dart’;
import ‘pong_game.dart’;

void main() {
runApp(
MaterialApp(
home

元記事を表示

Javaで「PatternオブジェクトとMatcherオブジェクトを作成する」の動作を確認してみた

# 概要

Javaで「PatternオブジェクトとMatcherオブジェクトを作成する」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`JSample2_1.java
import java.util.regex.*;

class JSample2_1{
public static void main(String[] args){
String regex = “jpg$”;
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(“profile.jpg”);

if (m.find()){
System.out.println(“パターンにマッチします”);
System.out.println(“マッチした部分は ” + m.group() + ” です”);
}else{

元記事を表示

[備忘録 その9] Java Silver ~クラス定義・オブジェクトの使用 その1~

# クラス
クラスは、オブジェクト指向プログラミングにおける基本的な構造です。クラスは、オブジェクトの設計図やテンプレートとして機能し、フィールド(データ)とメソッド(操作)を定義します。クラスは、オブジェクトの属性と動作を記述すための青写真を提供します。

#### クラスの例
“`java
public class Car {
// フィールド
private String color;
private int speed;

// コンストラクタ
public Car(String color, int speed) {
this.color = color;
this.speed = speed;
}

// メソッド
public void accelerate(int increment) {
this.speed += increment;
}

public void brake(int decrement) {
this.s

元記事を表示

Optionalで知っておいたほうが良いことを教えます

こんにちは。
こちらの記事にご興味を持ってくださりありがとうございます。

さて、今回は私が3年ほど触っているJavaの初心者殺し二大巨頭の一つ、
Optionalで知っておいたほうが良いことを書き記しておきます。

ちなみにもう一つはラムダ式(Stream API)だと思っています。(ここでもラムダ式使ってしまいますがご容赦を…)

実装をみたりたくさんの記事を見たりしている中で、
Optinalはメソッドでnullチェックできる、なんならしなくてよいものだと
感じている人が多いように日々感じています。

そうじゃない!と言いたいと思って筆を執りました。

# そもそもOptionalとは

“`OptionalTest.java
final Optional testStringOpt = getTestString();
final String testString = testString.orElse(“値無し”);

private Optional getTestString() {
return Optional.ofN

元記事を表示

Stream#flatMap()って少しややこしい?わかりやすく解説!

## はじめに
stream()を利用することもよくあると思うけど、最近実際にflatMapメソッドを利用したので、どういうものだろうかと調べてみたので記事にするよ。少し似ているmapメソッドと比較してみるよ。

## Stream#map()
mapはstreamの各要素に対して指定の操作を行って返すよ。
[公式ドキュメント](https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/util/stream/Stream.html#map(java.util.function.Function))には以下のように記載されているよ。
> このストリームの要素に指定された関数を適用した結果から構成されるストリームを返します。

例えば、map処理で小文字→大文字の処理をしたとすると、イメージは以下のようになるね。
“`
// 処理前 → 処理後
[a, b, c] → [A, B, C]
[[a, b, c], [d, e, f]] → [[A, B, C], [D, E, F]]
“`
実際にコードを書くと以下のよ

元記事を表示

SpringプロジェクトにLombokを導入【Gradle】

# Lombokの導入
build.gradleの設定
まず、build.gradleファイルにLombokを追加します。Lombokの依存関係をcompileOnlyとannotationProcessorに追加することで、Lombokのアノテーションを使用できるようになります。

“`gradle
dependencies {
compileOnly ‘org.projectlombok:lombok:1.18.24’
annotationProcessor ‘org.projectlombok:lombok:1.18.24’
}
“`
# 基本的なアノテーション
@Getterと@Setter
@Getterと@Setterは、フィールドのgetterとsetterメソッドを自動生成します。

“`java
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class User {
private Long id;
private String name;

元記事を表示

遺失物取扱所~繰り返すミスの備忘録~

## 総合案内
なぜか見つからないミス、見つけたら全く大したことないのに、、、
そんな見落としがちなミスを拾い集めておけば少しは見つける手助けになる??
そんな思いつきで書き連ねてみました。初学者のミスなんで大したものはないですがだからこそあるあるなんじゃないかと思います。

## お探しの方向け窓口

#### 取り扱い物
私はプログラム未経験でこの春入社したところなのでまともに触れたのがJavaしかありません。そのため、このブログは**Javaの落とし物限定**です。

#### 拾得状況・拾得物一覧
###### Scannerクラスのメソッド利用時

<

初めてのC言語 ~Javaとの違い~

## はじめに
この記事は
– 初めてC言語を学ばれる方
– Javaを学んで次にC言語を学ぶ方

に向けて作成しました。

今までJavaを主に勉強していて、新たにC言語を学び始めたのでアウトプットも兼ねて、
Javaとの違いを交えながら説明できたらと思います。

「この記事を見たらC言語が出来る」というより、
「**C言語を勉強する前にどういうものか知りたい**」
といった目的に合う記事だと思います。

初めてのQiita投稿になりますので、不慣れな点もあるかと思いますが、
温かい目で見ていただけると嬉しいです。

## C言語ってなに?
C言語は、主流のプログラミング言語の中で**最も古く**、多くの言語がC言語を
ベースに作られています。

|言語名|特徴|
|:–|:–|
|C|最も古い主流言語。多くの言語のベース。|
|C++|C言語を拡張。オブジェクト指向対応。|
|Java|C/C++ベース。Sun Microsystemsが開発。Androidで使用。|
|C#|MicrosoftがJavaやC++を基に独自開発。|

### 活用例
– __OS開発/基幹シ

コードレビューの回顧と展望ーpaizaラーニング 静的メンバ (paizaランク B 相当)

## はじめに
こんにちは。
みなさんご機嫌いかがですか?

文系出身・IT系未経験の新卒エンジニアです。
先日初めてpaizaの問題のコードレビューをしていただいたので、そのときの感想や学びなどを共有いたします。

## コードレビューに参加する際の注意事項
*

レビューする側は、受け手に対する人格否定は避ける

*

受け手の側も、自身ではなくコードが評価の対象であることを認識する

*

レビューをする側は、自分ができていなくても棚に上げて発言してOK

人格否定って何事…?と思っていましたが、がんばって書いたコードを批評の場に出すのは勇気がいるもの。レビューを行う側は言葉の遣い方に気を配る必要があります。他方、受け手側も必要以上に重く受け止める必要はないということですね。双方の心掛けが大切です。

コードレビューでのアクションについては、こちらの記事で詳しく説明されています!
[コードレビューで嫌われる人の特徴7選](https://qiita.com/emjo1804/items/48f6e78237a04684ab38)

初心者がREST APIについてまとめてみた。

## はじめに

研修期間中は、リクエストごとにURLを変えていましたが、どうやらREST APIってのがあるらしい、、
ということで、簡単にまとめてみました。

※誤りありましたら、ご指摘いただけますと幸いです。

## REST APIとは
RESTと呼ばれる(Representational State Transfer)、Webサービスの設計におけるアーキテクチャスタイルの一つをもとに設計されたAPIを指します。

RESTでは、次に挙げる6つの原則が定められています。

1. **クライアント-サーバーアーキテクチャ(Client-Server Architecture)**
クライアントとサーバーの役割を明確に分けることによって、両者の独立した開発・運用を可能にします。

2. **ステートレス(Statelessness)**
クライアントから送られる各リクエストには、必要な情報が全て含まれており、サーバーはリクエスト間でクライアントの状態を保持しません。(クライアントからのリクエストはサーバーの状態に依存しないというこ

Javaで「正規表現パターンにおけるエスケープ処理」の動作を確認してみた

# 概要

Javaで「正規表現パターンにおけるエスケープ処理」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/regex/index6.html

# 実装

以下のファイルを作成しました。
“`JSample6_1.java
import java.util.regex.*;

class JSample6_1{
public static void main(String[] args){
String regex = “a\\.b”;
Pattern p = Pattern.compile(regex);

Matcher m1 = p.matcher(“a.b”);
System.out.println(m1.matches());

Matcher m2 = p.matcher(“axb”);
System.out.println(m2.matches());
}
}
“`
以下のコマンドを実行しました。
“`
$ javac JSamp

【jUnit】Mockってなに?

## はじめに
今回はjUnitで使用するMockについて、理解を深めていければと思いMockってなに?や使うとどんなメリットがあるの?などを深ぼっていければ思います!
間違い等ございましたらご指摘いただけますと幸いです。
## Mock(モック)とは
モックは、ソフトウェアテストのために実際のオブジェクトの代わりに使用されるダミーオブジェクトです。
つまり、偽物のオブジェクト(Mock)を使用して、テストをする際に本物のオブジェクトに頼らずにテストができます。

## Mockitoとは
JavaでMockオブジェクトを作成し、管理するためのフレームワーク(ライブラリ)です。
Mockitoのおかげで、Mockオブジェクトを簡単に作成し使用することができます。

## Mockを使用するケース
### 1.Serviceクラス
“`Java: コード例
@SpringBootTest
public class UserServiceTest {

@InjectMocks
private UserService service;

@Mock
pri

Cookie基本

<%@pagecontentType="text/html; charset=UTF-8"%>
<%@pageimport="java.util.Objects"%>



Servlet/JSPの基礎を学ぼう


<% //Servletからのデータを取得 String userName = (String) request.getAttribute("userName"); String userAge = (String) request.getAttribute("userAge"); //データが存在しない場合に空文字を置き userName = Objects.toString(userName, ""); userAge = Objects.toString(userAge, ""); %>

<%-- Servletへの画面遷移(POSTメソッド --%>

ORACLE PL/SQLとは 〜パッケージ作成・ファイル実行〜

#### 【背景】
ネット上でのPL/SQLについての文献が少ない為、現場で培ってきたPL/SQLについての知識をまとめようと思います。

PL/SQLについて、3つ目の資料になります!

作成資料について誤記等がございましたらご指導ご鞭撻のほど宜しく御願い致します。
 
前回の資料↓

https://qiita.com/yoshida_t/items/d4c0e3d8ed5fcac6bcec

https://qiita.com/yoshida_t/items/ee1383b869c9077f1aa1


### 目次
13.トランザクション
14.実行
15.制御構造
16.資料3についてのまとめ

13.トランザクション

**トランザクションとは**

PL/SQLプログラムの一連の処理のまとまりをトランザクションと呼びます。

PL/SQLの処理とは、1つ以上のSQL文のことです。

PL/SQLでは、トランザクションの単位でデータベース操作の確定(コミット)や取消(ロールバック)が行われます。

|トランザクション|処理内容 |
|—|—|
|コミ

Testcontainersで複数DBに接続

https://start.spring.io/ を使用して適当なプロジェクトを作成する。複数DBとしてmysqlとpostgresqlに接続するのでそれら関連の依存性を追加する。

“`gradle:build.gradle
plugins {
id ‘java’
id ‘org.springframework.boot’ version ‘3.3.2’
id ‘io.spring.dependency-management’ version ‘1.1.6’
}

group = ‘com.example’
version = ‘0.0.1-SNAPSHOT’

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

repositories {
mavenCentral()
}

dependencies {
implementation ‘org.springframework.boot:spring-boot-starter-jdbc’

runtimeOnly ‘com.

【JUnit】生成したインスタンスの一部メソッドだけモック化する

junitでのテスト時に、生成したインスタンスのメソッドを一部だけモック化したい場合があり、やり方をちょくちょく忘れるので記録

### junit version
“`pom.xml

junit
junit
4.12
test

“`

以下のようなサンプルクラスを使います
“`java
public class Person {
private final String name;
private final int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

public String greet() {
StringBuilder sb = new StringBuilder();
sb.append(sayName

オブジェクト指向5

## はじめに

__ 【オブジェクト指向】を__ __ 【Java = ジャバ】言語で考えてみました。__

##### 以下を参照。
https://qiita.com/nekoozi/items/57b538a88579e78f71b3

# スーパークラス
“`java
/**
* 抽象クラス
* ⇒ 継承する際は、影響を設定させるため、抽象メソッドを定義
*/
abstract class Person {

// フィールド
private int age; //年齢
private String name; //名前

// コンストラクタ
public Person(int age, String name) {
this.age = age;
this.name = name;

改行文字の入力によるずれ
`nextInt()`実施後に`nextLine()`を実施した時
発見方法 入力から受けとった値の表示
修正方法 `nextLine()`を追加し改行文字を除く