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

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

【Java Silver11】合格体験記

# ⓪はじめに
先日、Java Silver11に合格しました!今回は、①申込方法、②試験当日の流れ、③意識したことを残します。
※全て2024年9月現在の情報になりますので、ご了承ください。

# ①申し込み方法
初めての受験でしたので、以下のサイトを参考に、
– Oracle社のサイト
– CertViewのサイト
– PearsonVUEのサイト

に登録しました。

なぜ3つも登録が必要なの?!と思いますが、それぞれ、
– Oracle社の資格を受けるため
– 保有資格や受験予定の資格を管理・確認するため
– どの資格をどの会場で受験するかを選択するため

という理由だと思います。

初めてでも大丈夫!JavaSilverの申し込み手順をわかりやすく解説

# ②試験当日の流れ
会場によって異なる部分もあると思いますので参考程度になさっ

元記事を表示

JavaでWebアプリのE2Eテストを自動化する〜その1 Selenideを使ったブラウザ操作

## 記事の対象読者

– 最低限Javaの知識がある
– WebアプリケーションのE2Eテスト自動化に興味がある人

## 動機

前職で関わっていた案件で本格的なTDD(テスト駆動開発)を経験し、その時にテストを自動化することのメリットやTDDのノウハウを学んだ。

現在関わっている案件は進め方がウォーターフォール的で、工程ごとにスケジュールが区切られている。
製造工程終了後にテスト期間がスケジュールされているため、テスト自動化が必須ではなかったが、ウォーターフォール型の開発スタイルでもTDDを実践するメリットはありそうだと感じたので、私が担当する機能においては部分的にTDDを取り入れて進めることにした。

私が以前関わっていたTDDの案件では、WebのテストをSelenideというJavaのフレームワークで実現していた。
今回の開発案件も言語がJavaだったので、環境構築が楽にできそうという理由からSelenideを使用することにした。
自分1人で何もない状態からE2Eテストの実行基盤を作ったのは初めてだったが、思ったよりも簡単にテスト自動化の環境を構築できたので、環境構築や基礎

元記事を表示

JSON-B使い方メモ

# JSON-B とは
– Java EE 8 で追加された仕様で、 JSON と Java オブジェクトの相互変換を行う API を定義している
– Jakarta EE での正式名称は Jakarta JSON Binding
– JAXB の JSON 版みたいなの
– B は Binding の B
– 読み方は、たぶん「じぇいそんびー」

# 環境
“`
>gradle –version

————————————————————
Gradle 8.8
————————————————————

Build time: 2024-05-31 21:46:56 UTC
Revision: 4bd1b3d3fc3f31db5a26eecb416a165b8cc36082

Kotlin: 1.9.22
Groovy: 3.0.21
Ant: Apache Ant(T

元記事を表示

Tomcatで永遠に404が出て困った(解決せず)

新米も新米のJava練習生です。
結果が単純なものなので、読むほどのものでもないかと思いますのでご容赦ください。
解決せずプロジェクトを最初から作り直しています。それまでのいきさつとなります。

EclipsからTomcatを使用してウェルカムファイルを作成しようとしていました。

ところがコピペしたはずのweb.xmlファイルと、index.htmlファイルを設定しても
ウェルカムファイルを開けず。。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892844/430de436-6a89-bc1c-60cc-8988faa9fe90.png)

web.xmlファイルのコードはこの通りです。(htmlファイルは割愛します。)

“`java:web.xml

Javaの変数とは(初学者向け)

# 変数とは
プログラミングをしたことのない人にとってまず変数とはなんなんだってところから説明しないとわからないと思うので、まずは変数の説明から。
変数とは、数値を保存するメモリーの場所のことです。
コンピューター言語を用いて、プログラミングをするにあたって、コンピューターは数値しか扱えないということを理解しておかないといけません。ただ、かってに数値がおけるわけではありません。OSなどのコンピュータを動かすメモリの場所に自分が勝手に数値をおいてしまうとOSの挙動に問題を起こしてしまいます。(C言語で作られているWindowsやMacでポインターの場所をちょっとずついじると実はOS領域の内容を見ることも書き換えることも実際にはできますが。)

# 変数の種類
変数の種類はじつはいろいろとある。メモリーの確保する長さとかで変わるが、基本的にはintを使用することが多い。
以下の表に変数とその変数で扱える数値の幅を記載する。

|データ型の種類|名称|消費メモリ|範囲|
|—|—|—|—|
|byte|バイト型|1バイト|-128~127|
|short|短整数型|2バイト|

元記事を表示

messages.propertiesから日本語メッセージが取得されない

「Spring 解体新書 第2版」という書籍で学習しています。
6章を実施中に以下エラーが発生しました。

“`java
There was an unexpected error (type=Internal Server Error, status=500).
No message found under code ‘male’ for locale ‘ja_JP’.
org.springframework.context.NoSuchMessageException: No message found under code ‘male’ for locale ‘ja_JP’.
at org.springframework.context.support.DelegatingMessageSource.getMessage(DelegatingMessageSource.java:76)
at com.example.demo.application.service.UserApplicationService.getGendermap(UserApplicationServ

元記事を表示

【脱ぬるぽ】代数的データ型のすすめ

# はじめに

最近学んだ代数的データ型が有用だったのでまとめます!
参考にした記事は以下の通りです
> [Java21とKotlinの代数的データ型 & パターンマッチの紹介と本当に嬉しい使い方](https://speakerdeck.com/yuitosato/algebraic-data-type-in-java-and-kotlin-happy-use-of-pattern-match)

# 代数的データ型とは
代数的データ型とは、複数の型を組み合わせることで表現されるデータ型のことで、主に直積集合と直和集合によって表されます。

## 直積集合
直積集合は代数学における**AND**(かつ)と同義の集合です。いわば集合Aと集合Bの掛け算です。
“`math
A\times B = \lbrace (a,b) | a \in A, b\in B\rbrace
“`
要するに構造体のことです。
よく使われる具体的な例として「名前」と「年齢」のデータ型があります。
“`Java:cap.java
class Person{
String name; //名

元記事を表示

【完全版】3ヶ月でAndroidエンジニアを目指すためのロードマップ

# はじめに

ご覧いただきありがとうございます。[Gon](https://x.com/engineer_gon)です!
Androidアプリ開発の世界へようこそ!

今回は、友人がAndroidエンジニアを目指すと聞いて実践的なロードマップを作ってみることにしました。

僕自身、Javaのレガシーなシステム開発からキャリアをスタートしましたが、働き方の自由度や仕事の楽しさを求めて、独学でKotlinを学び、Androidアプリ開発へとスキルチェンジしました。

フリーランスのAndroidエンジニアとしては3年以上働いていますが、基本的にフルリモートで働けるためすごく自由度が高いですし、単価も上がりやすく、何より楽しんで仕事できてます。

「**どこから始めればいいのか分からない**」という方も多いと思うので、今回のロードマップが皆さんの参考になれば嬉しいです。

# ロードマップ

![](https://storage.googleapis.com/zenn-user-upload/034d54a65890-20240908.png)

## 2024年にAndroid開発者に

元記事を表示

SpringBootでシンプルなCRUDアプリを作ったときの備忘録

# はじめに
SpringBootによるシンプルなCRUDアプリケーション作成を学んだ際に、特に記憶しておきたいと思ったことを備忘録として残します。

# アプリの概要
– シンプルなユーザ管理アプリ
– ユーザ登録、一覧、検索、更新、削除、管理者専用ページ遷移、認証、認可機能を持つ

# 開発環境
– Eclipse(Pleiades) Version: 2023-12 (4.30.0)
– Java SE 21
– MacBook air

# 依存ライブラリ
“`xml:pom.xmlの内容抜粋

org.springframework.boot
spring-boot-starter-data-jdbc


org.springframework.boot
spring-boot-starter-jdbc

元記事を表示

Java の同期制御(Semaphore、CountDownLatch)

CountDownLatch と Semaphore はどちらも Java の同期制御 を行うためのツールですが、用途や動作は異なります。ここでは、それぞれの違いと使い方について説明します。

## 1. Semaphore とは
Semaphore は、指定した数の「許可(permits)」を管理し、スレッドが許可の数を超えて同時にリソースにアクセスできないようにするために使います。例えば、Semaphore(3) であれば、同時に3つのスレッドまでしかリソースにアクセスできません。ある意味で「スレッドの同時アクセス制限」に適したクラスです。

特徴
許可を取得する (acquire) と、許可の数が減少します。
許可を解放する (release) と、許可の数が増加します。
同時にアクセスできるスレッド数を制御するために使われます。
使用例
“`java
import java.util.concurrent.Semaphore;

public class SemaphoreExample {
private static final Semaphore semapho

元記事を表示

Spring FrameWorkのJava Config

DIコンテナに、Java Configクラスを使用してコンポーネントを登録する方法を書いてみました!
## Java Configクラス
DIコンテナに対してコンポーネントを登録するための、設定クラス。ここで設定したコンポーネントが、DIコンテナに登録される。

“`java
@Configuration
public class AppConfig {

@Bean
UserRepository userRepository() {
return new UserRepositoryImpl();
}
}
“`
## ルックアップ
ルックアップとはDIコンテナからBeanを取得すること。

**取得方法**
1つ目はBeanの型(UserRepository)を指定する方法。指定した型を持つBeanが1つだけ存在する場合に使用する。今回は、Java Configクラスで設定したUserRepository型は1つだけなので、これで取得できる。

“`java
UserRepository userRepository = context.getBean(U

元記事を表示

\\だとバグるが、\\\\だとバグらないプログラム(正規表現)

# 話のはじまり
こんにちは、来年度までに就職をしたい甘いレモン市場と言います。
皆さんはよき正規表現ライフを送っているでしょうか?正規表現を使いこなしたいですよね。
正規表現で文字列パターンを指定する際に、「\」(バックスラッシュ記号もしくは半角¥記号。区別のため、この1文字を「」付きで記述します)という文字列が含まれているか調べたくなることがあると思います。
たとえば[『スッキリわかるJava入門 第4版』](https://sukkiri.jp/books/sukkiri_java4) の次の練習問題のシチュエーションを考えてみましょう。
> 練習15-2
> フォルダ名が入っている変数folderと、ファイル名が入っている変数fileがあります。fileは必ず「readme.txt」のような形式をしていますが、folderは末尾に\記号が付いている場合と付いていない場合の両方がありえます。たとえば、「c:\javadev」や「c:\user\」のどちらもfolderの値としては正しい形式です。
> folderとfileを連結して、「c:\javadev\readme.txt」

元記事を表示

SpringBoot で TiDB Cloud Serverless に接続する

## TL;DR

ローカルの SpringBoot アプリケーションで TiDB を使ってみた。

## はじめに

TiDB は、MySQL 互換の NewSQL データベースで、昨今いろんな企業が導入しているらしい。

– https://pingcap.co.jp/case-study/
– https://www.publickey1.jp/blog/24/newsqltidbpr.html
– https://speakerdeck.com/leveragestech/tidb-user-day-tidbhayin-nodan-wan-ninarunoka-rehatetukunoke-ti-toxin-tanatiao-zhan-tidb-user-day-2024

私が TiDB を知ったのは ServerlessDays Tokyo 2023 のセッションなので 1 年前になるが、今回重い腰を上げて使ってみた。