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

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

初心者が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;

元記事を表示

paiza ランクS 文字列収集 Java で短いコードでやってみる

https://paiza.jp/works/mondai/real_event/word_collection

ランクSの文字列収集の問題をJavaで短いコードでやってみる
このランクSの問題、他の問題に比べて簡単な気がします
それにしても Java には Pair みたいのがないので Map.Entry を強引に使うしか手が思いつかなかった...

“`Java
import java.util.*;

public class Main {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
int[] pq = Arrays.stream(sc.nextLine().split(” “)).mapToInt(Integer::parseInt).toArray();
List> pis = new ArrayList<>();

for (int i = 0; i <

元記事を表示

【JUnit】doReturn, thenReturnでの違い

junitで単体テストを書いているときに、`when + thenReturn`と`doReturn + when`の違いがよくわからなかったのですが、spyを使う場合に少し違いがあったので記録します

### junit version
“`pom.xml

junit
junit
4.12
test

“`
以下のようなサンプルクラスでテストしてみます
“`java
public class Sample {
@Getter
private boolean active = false;

public boolean init(boolean active) {
this.active = active;
return active;
}
}
“`

## mockの場合
“`java
@Test
public void test() {

元記事を表示

Javaの強みを徹底解説①:Javaのいいところ

こんにちは NSS の江口と申します。
NSSでは入社の際に新人研修として`C言語`と`Java`を学習します。
その後現場に出てからも ずっと`Java`を利用してまいりました。
そのまま 15 年、特に疑問を抱くことなく過ごしてきたのですが、様々な言語が登場しては下火になっている中、根強い人気を誇っています。
私自身Javaは結構好きでこれからも発展してほしいので、改めてなぜこれほどまでに Java が強いのかを考察してまいりたいと思います。

# 理由① シェア

IPAが発表している資料によると、開発プロダクトの **42.4%** が Java で動作しているそうです。
[ソフトウェア開発 分析データ集 2022](https://www.ipa.go.jp/digital/chousa/metrics/hjuojm000000c6it-att/000102171.pdf)
これは対象プロダクトが**金融**関連が多いこともその一因だと思います。私は**金融**関連のプロダクトに携わることが多いのですが、
Javaを実行環境に選択しているプロダクトは本当に多いです。
既にシェ

元記事を表示

#12 【入門】Javadocまとめ

# Javadocとは
Javaのクラスやフィールド、メソッドに記述したコメントからドキュメントを生成するツールです。
Javadocに要素の説明や引数、戻り値に関する情報などコメントを記載することで、HTML形式のドキュメントを生成することができます。

## 利点
– 可読性の向上
– IDEでメソッドにカーソルを合わせたときJavadocが表示されるようになる
– コマンドを使い、各説明をHTMLファイルに出力したAPIドキュメントを作成できる

# 書き方
要素の宣言前、「/** ~ */」の間にコメントを記述します。

## 主なタグ
|タグ|用途|
|:–|:–|
|@￰author 名前|クラスやメソッドの作成者を記述する。|
|@￰deprecated 説明|非推奨(廃止)されたクラスやフィールド、メソッドであることを示す。非推奨になった理由などを記述する。|
|@￰param 引数名 説明|メソッドのパラメータについて説明を記述する。|
|@￰return 説明|メソッドの戻り値について説明を記述する。|
|

元記事を表示

【paiza】最難関Sランクを開発未経験者がJavaで世界一丁寧に解いてみた!

![スクリーンショット 2024-07-30 6.39.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838575/bafe5dfa-54fc-87b2-4cbd-87328021c254.png)

皆様初めまして、システム開発未経験の趣味でアプリを作ろうと考えている素人浅はかエンジニア(自称)のirochiです!

今回取り上げさせていただくのは以下記事の 【paiza×Qiitaコラボキャンペーン】
Rank 「S」の問題です:v:!!

https://paiza.jp/pages/campaign/paiza-qiita

私iPhoneアプリ(簡単な家計簿)を作成したのと、大学4年間で浅い勉強をしただけのど素人ですが、今後のことも考えて腕試ししたかったので挑戦してみたという記事になってます!

前置きはここまでにして、以下早速問題をやっていきましょう!

【文字列収集 Java編】
https://paiza.jp/works/mondai/real_event/word_coll

元記事を表示

必要なJREをだけを抽出しEXE化するPOM

# 必要なJREをだけを抽出しEXE化するPOM
1. JREを含む実行可能なJARファイルの作成
2. Windows用のEXEファイルの生成
3. カスタムJREの作成と配布用パッケージへの組み込み

これらの目標を達成するために、Maven構成(POM)を適切に設定し、必要なプラグインを使用します。

以下が完全なPOMファイルです:

“`xml
4.0.0

com.example
cs

元記事を表示

Javaで「Javaでの正規表現の利用方法」の動作を確認してみた

# 概要

Javaで「Javaでの正規表現の利用方法」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

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

class JSample1_1{
public static void main(String args[]){
Pattern p = Pattern.compile(“g..d”);
Matcher m = p.matcher(“good”);

System.out.println(m.matches()); // true
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample1_1.java
$ java JSample1_1
true
“`

# まとめ

何かの役に立てばと。

元記事を表示

Optional型でのnullの扱い

## Optionalって?
Optionalとは、nullかもしれないことを注意するクラスだよ。
大抵はメソッドの戻り値がnullかもしれない場合に利用しするよ。
Optional型で返すと、nullの場合はヌルポによる意図しないエラーをなくすことができるし、nullかもしれない値に何か処理を行いたい場合にも利用できるよ。
実際に使ってみよう。

## 具体例
### もしOptional型を使わなかったら…
Javaではよくヌルポが発生するので、nullかどうかのチェックをする必要があるよ。
こんな感じに。
“`Java
public class Main {
public static void main(String[] args) {
String val = “Hello!”;
if (val != null) {
System.out.print(val + “Java”);
}
}
}
“`
面倒なnullチェックをなくせるOptional型を使ってみよう。

### 基本的な使い方

元記事を表示

【java】String.equalsでNullPointerExceptionを回避する

## はじめに
初めまして、AraNekoです。
初めての投稿ということで、現場で学んだ小技をメモがてら記事として残しておこうと思います。
文章の作成が苦手なので、ChatGPTにいくつか修正してもらいました。

## equalsで比較する
“`java:test.java
String test1 = null;
String test2 = “テスト”;

System.out.println(test1.equals(test2));
“`
### 解説
`test1`が`null`である状態でequalsメソッドを呼び出しています。この場合、`test1`が`null`であるため、メソッド呼び出し時に`NullPointerException`が発生します。

“`
java.lang.NullPointerException
“`
## nullポ回避法
次に`NullPointerException`の回避するための方法を紹介します。
“`java:test.java
String test1 = null;
String test2 = “テスト”;

Sys

元記事を表示

JavaのStreamAPIについて理解する

# StreamAPIについて
StreamAPIはコレクションの操作を読み易くするために導入された機能となります。
今回はStreamAPIの利用法について説明します。
StreamAPIを利用するこで直感的にコードが見やすくなると思います。

# StreamAPIの使い方について
StremaAPIのシンプルな利用方法と少し複雑な利用方法について紹介しようと思います。
シンプルな利用方法はわかりやすいですが、少し複雑な利用方法についてはデータを結合したい場合のケースを想定した使い方を紹介します。

## シンプルなリストデータ(M件)を扱う場合
特定の条件に合致したデータを抽出する場合のコードについて説明します。

personリストから特定の文字列を抽出する場合は以下のようになります。StreamAPIを使用した場合はif文を使用せず、シンプルなコードになります。

### PersonとAddressクラスの定義

#### Personクラス
“`java
class Person {
private int personId;
private Strin

元記事を表示

オブジェクト指向4

## はじめに

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

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

# スーパークラス
“`java
public class Person {

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

// コンストラクタ
/* 引数はなし */
public Person() {
this.age = 99;
this.name = “影太郎”;

/* デバッグポイント */
//スーパークラスのコンストラクタ(引数はなし

元記事を表示

IAM Roles for Service Accountsの認証情報をCamel Spring-bootで利用する方法

## 概要
Spring Boot 環境において、AWS IAM Roles and Service Account (IRSA) を使用した認証情報で、s3やsqs などのAWS リソースにアクセスするのに、情報が少なかったので記載しておきます。

## 前提
必要なIAM ロールや、ポリシー、OIDCプロバイダの設定、k8s ServiceAccount リソースはすでに作成済みの前提で、Spring Boot 環境で実装する部分についてのみ記載します。
必要な IAM ロール、 ServiceAccount が設定され、Deployment と紐づけられた場合、Pod 内の環境変数として、AWS_ROLE_ARN, AWS_WEB_IDENTITY_TOKEN_FILE の環境変数が設定されます。
[参考](#参考) からの更新部分になりますので、アーキテクチャについては参照元をご確認ください。

## pom.xml
WebIdentityTokenFileCredentialsProvider プロバイダを使用する場合は、AWS STS モジュールも必要となります。

元記事を表示

OTHERカテゴリの最新記事