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

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

【Java Gold】(1Z0-816-JPN) 合格体験記

## はじめに
Java Goldに合格したので、合格までの過程を記載します。
(取得してから約3か月経ちましたが…)

Oracle社が提供しているJava Gold以外のJava資格の合格の記事も書いています。↓

https://qiita.com/tt8811/items/2c01165cb885967bccb8

https://qiita.com/tt8811/items/141858ab7acfe88baa8d

## スペック
* Java Gold合格の約2か月前にJava Silverを取得
* Java開発経験なし

## 使用参考書
* 徹底攻略Java SE 11 Gold問題集[1Z0-816]対応(今回も黒本メイン)
→Goldは出題範囲が広いため、黒本だけでは少し物足りない感じだった

元記事を表示

NullPointerException vs IllegalArgumentException

# 引数の値が null だったときに、投げる例外はどちらが正しいのか?
:::note
まとめ
結論 -> どちらでも問題ない
JavaDocに記載されているとおり、どちらの状況も当てはまるから
> **IllegalArgumentException**
> 不正な引数、または不適切な引数をメソッドに渡したことを示すためにスローされます。

> **NullPointerException**
> オブジェクトが必要な場合に、アプリケーションがnullを使おうとするとスローされます。
:::

## よく見かけるコードたちの例

“`java
public void setterMethod(Object par) {
if(par == null) {
throw new NullPointerException(“par is null”);
}
// do something…
}
“`
“`java
public void setterMethod(Object par) {
if(par == null) {

元記事を表示

Float型の標準出力の有効数字のデフォルトはなぜ6桁なのか


Float型の標準出力の有効数字のデフォルトはなぜ6桁なのか

**風船ガム**

イチゴ味の風船ガムを食べてました。

くちゃくちゃ味わい、ふくらます。
口に広がる甘酢っぱさ。
フルーティーが鼻をつつく。

何回かそれを繰り返していると ふと
どれくらい大きくなるのだろうと
思いました。

おもいっきり息を吐き 
風船ガムをふくらませました。

ドンドン大きくなるガム。

破けることなく大きくなり
ついに私は空を飛びました。

ああ、でも残念なことに
私はずっと上を向いたまま。

下に広がる素敵な景色は見れません。

「私はどこまで浮かびつづけるのでしょうか」

浮かびながら空に聞くのでした。

**目次**
[1. そもそもFloat型って何?](#1-そもそもfloat型って何)
[2. Float型の標準出力の例](#2-float型の標準出力の例)
[3. なぜデフォルトは6桁なのか](#3-なぜデフォルトは6桁なのか)
[4. おわりに](#4-おわり

元記事を表示

Javaで商品購入プログラムを作ってみた

“`java
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタ

System.out.println(“注文”);
Scanner scan = new Scanner(System.in);
String select = scan.next();

Maplist = new HashMap();

list.put(“いちごのケーキ”, 100);
list.put(“モンブラン”, 200);
list.put(“チョコケーキ”, 333);
list.put(“タルト”, 234);
list.put(“チーズケーキ”, 123);

int total = 0;

switch(select) {
case “いちごのケーキ”:
case “モンブラン”:
case “チョコケーキ”:
case “タルト”:
case “チーズケーキ”:

元記事を表示

JacksonでJSONをオブジェクトに変換する

JacksonはJavaでJSONとオブジェクトを変換する場合などに使用されるライブラリです。
Jacksonを使うと簡単にJSONを扱うことができます。

### readValue
下記のJSON文字列をオブジェクトに変換したいとします。
“`java:JSON
String json = “{” +
“\”message\”: null,” +
“\”results\”: [” +
” {\”address1\”: \”北海道\”,” +
” \”address2\”: \”美唄市\”,” +
” \”address3\”: \”上美唄町協和\”,” +
” \”kana1\”: \”ホッカイドウ\”,” +
” \”kana2\”: \”ビバイシ\”,” +
” \”kana3\”: \”カミヒ

元記事を表示

自作の JVMライブラリをJitPackで簡単に公開する方法

# はじめに
JVMライブラリの開発者にとって、[JitPack](https://jitpack.io/)はプロジェクトの公開を簡単かつ迅速に行うための重要なツールです。この記事では、Mavenを用いてJitPackでライブラリを効率的に公開する具体的な手順を紹介します。

# JitPackってなに?
[JitPack](https://jitpack.io/)は、GitHubなどのGitリポジトリから直接JVMやAndroidライブラリをビルドし、公開できるサービスです。このサービスを利用することで、ライブラリを世界中の開発者に簡単に提供することが可能となります。

https://jitpack.io/

# JitPackを使ってJVMライブラリを公開してみる
JitPackでライブラリを公開するためには、いくつかの重要な手順を踏む必要があります。

## 手順1: JitPack Mavenリポジトリの追加
プロジェクトの`pom.xml`にJitPackのリポジトリを追加し、JitPackを通じたビルドとアクセスが可能になるように設定します。

“`xml:pom.xm

元記事を表示

VBA学習備忘録③ Python等の他言語から見たVBAの独自な文化&方言①

そもそもVBA(Visual Basic for Application)とは

https://qiita.com/thinking-weed/items/b322d1e34b888aa3ca22

これまでPHP、Laravel、Python(と少しだけJava)を少し勉強してきた中であまり聞いたことのないような謎方言や謎文化が時々出てくるので集めてみた~その壱~

※以下の文にあるコードは、基本Subプロシージャ(指定した操作を実行する基本的なマクロ)に用いるものであり、冒頭のSub マクロ名()と末尾のEnd Subは省略してあります。

①「解放」=「削除」(+「エクスポート」)

details

上記Qiitaの通り、VBE(VBAのエディター)を開いて、**挿入** ⇒「~モジュール」を開くと
以下のような画面が出てきますが、例えば無駄なモジュール追加しちゃった場合、
最初削除どこにあるん??(´。`)??ってなりました。

![module_release.

元記事を表示

[Java][JavaSilver] Interface,abstractクラスの2つを使った時の動き

# 記事作成の経緯
JavaSilverの勉強をしていた際に、`Interface`, `Abstractクラス`を使った継承関係の問題につまづいた。。
内容整理&理解のため記事作成

# 読む方の対象
Java Silver学習中の方
Java始めたての方

# そもそもInterfaceとabstractクラスって何
本記事の主題とは少し離れるため詳細には記載しない。
自分は超ざっくり以下のように理解した。

**Interface** = 抽象メソッドのみ提供する
**abstractクラス** = 抽象メソッド**と実装**を提供するクラス

自分は以下のサイトが参考になったため共有として貼っておきます。
– [抽象クラスとインターフェース 概念の違いについて【オブジェクト指向】
](https://4engineer.net/oo/abstract-vs-interface/)
– [KAB-studio 7. ポリモーフィズム!!](http://www.kab-studio.biz/Programing/OOPinJava/07/01.html)(7.ポリモーフィズム!!

元記事を表示

[Android]TextWatcherでオートセーブを実装する

今回実装してみるのはiPhoneのリマインダーのようなアプリケーションです。TextWatcherを使用することで簡単に実装できます。

初学者なのでアドバイスあれば是非お願いします!!

## 今回実装したもの
![ezgif-4-6a062b776c.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3686052/94a17c5e-fb4d-46a1-1270-bd0455206372.gif)

上記のgifの通りEditTextが表示され入力するごとにDBに保存処理がされます。
今回の記事では省略していますがラジオボタンを押すと本家のように2秒後に削除されます。下にソースコードのリンク貼ってあるので気になる方はチェックして見て下さい!

#### 全体のソースコードはこちら

## TextWatcherとは
簡単にいうとテキストが変更を監視するインターフェースです。

## 実装方法
Edit

元記事を表示

[androidアプリ]AWSのAPIgateway + Cognito Userpoolを使用してみる

## はじめに
Cognito認証を使用した各種サービスへのアクセスに非常に困惑したので備忘録として情報を記載する
特にAWSMobileClientの仕様が理解できておらず困惑したので書き留めておく.

## 何をするか
android環境で,APIgatewayに3つの状況でリクエストを送信する.
– 1.認証・認可なしの場合
– [前回の記事はこちら](https://qiita.com/sanjolin_chun/items/832fb1c6edfb3ea10ed5)
– 2.AWS cognito userpoolを使用する
– 3.AWS cognito userpool + idpoolを使用する
– 未出稿

本記事では,2のcognito userpoolを使用する場合について解説する.
前提条件として,1の認証・認可なしの場合のセットアップが完了している前提で記述する.

## 環境
各種jdkのバージョンや,ライブラリのバージョンは前回の記事と同じ.

minSdkVersion 28
targetSdkVersion 34
sourceCompa

元記事を表示

RestTemplateクラスを使用してHTTPレスポンスの詳細を取得する

# 概要
SpringフレームワークのRestTemplateを使用してHTTPリクエストを送り、そのレスポンスの詳細を取得する方法をまとめた。

# 環境
|項目|バージョン|
|—-|———|
|JDK|Oracle JDK 21.0.1|
|SpringBoot|3.0.1|
|SpringWeb|6.0.3|

# RestTemplateクラスの主要なメソッド
下表の通り、HTTPメソッドに対応したメソッドが用意されている。

|HTTPメソッド|RestTemplateクラスのメソッド|
|———–|—————————|
|GET|getForObject
getForEntity|
|PUT|put|
|POST|postForLocation
postForObject
postForEntity|
|DELETE|delete|
|汎用|exchange|

# HTTPレスポンスの詳細を取得する方法
HTTPレスポンスのステータスコードやヘッダーの内容を参照するには、レスポンスをRe

元記事を表示

初心者向け!MavenとJavaでデータURIスキームを簡単生成

# はじめに
JavaとMavenを使用して、ファイルをデータURIスキームに変換する方法を、初心者の方にも理解しやすく解説します。この技術は、Web開発において小規模なリソースを効率的に扱う際に役立ちます。

# 解決したい問題
– ファイルをデータURIスキームに変換する基本的な方法を理解したい。
– Mavenプロジェクトでの依存関係の管理方法を学びたい。

# 構成
1. Maven設定の基本
2. JavaでのデータURIスキームの生成方法
3. まとめ

# 1. Maven設定の基本
Mavenはプロジェクトの依存関係を管理し、ビルドプロセスを簡略化します。`pom.xml`ファイルに必要なライブラリを記述することで、依存関係を簡単に管理できます。この例では、Apache Tikaライブラリを使用してファイルのMIMEタイプを検出します。

“`xml:pom.xml

org.apache.tika
tika-core

元記事を表示

Java 性能検証(簡易ETL編)

### 本記事の目的
[Amazon Athena性能検証(簡易ETL編)](https://qiita.com/thashi/items/cbbc33b03608be2da2d9)
[Amazon Redshift Serverless性能検証(簡易ETL編)](https://qiita.com/thashi/items/56f180b89c4a8afb8f37?fbclid=IwAR1Yv7qJbVwAfB2FouuJw10O24EKAyq-Uu0HUyCjpE5v62nNY-LuzMspVGk)

の続編として仮に自作Javaアプリだとどれくらい性能がでるのかを試した。

自作Javaアプリは下記のとおり、AthenaやRedshiftの検証で利用したCSVファイルと同じファイルを読み込み、各カラムデータをtrimやlpadや日付変換やconcatでの列結合等を実装してCSVファイルを出力する。
※本当はこのCSVからS3へのデータコピーまでをトータル時間で評価するのが公正な評価だがここでは省略している。なのでこの結果は自作Javaアプリに有意な数値として理解するのが正しい。

元記事を表示

Spring Boot 依存関係の追加(プロジェクト作成後)

# はじめに
Spring Bootプロジェクト作成後にdependencies(依存関係)を追加する方法を紹介します。

# 前提条件
– ビルドツールにMavenまたはGradleを利用していること
– Spring Bootプロジェクトが作成済みであること
もしプロジェクト未作成であれば以下の記事を参考にしてください。※以下の記事はIDEにIntelliJを使用しています
https://qiita.com/high_high/items/263cfcbd712ada6cddd3

# 対象者
– 開発を進める途中で依存関係を新しく追加したい方

# 依存関係追加手順
※本記事では例としてPostgreSQLを使用するための依存関係を追加する手順となっております。
 また、ビルドツールがMaven or Gradleの場合で手順が多少異なります

1. [Spring Initializr](https://start.spring.io/)にアクセス

2. 「Maven」を選択(Gradleの場合は「Gradle – Groovy」を選択)
![スクリーンショット 2024-

元記事を表示

GCP Cloud Dataprep機能/実装

# GCPのCloud Dataprepの概要と機能

## 目次
– [概要](#概要)
– [Cloud Dataprepとは](#Cloud-Dataprepとは)
– [主な特徴](#主な特徴)
– [機能/詳細](#機能/詳細)
– [データ準備と変換](#データ準備と変換)
– [視覚的なデータ探索とプロファイリング](#視覚的なデータ探索とプロファイリング)
– [データ品質の監視と洞察](#データ品質の監視と洞察)
– [簡単なデータのシェアとコラボレーション](#簡単なデータのシェアとコラボレーション)
– [まとめ](#まとめ)
– [サンプルコード](#サンプルコード)

## 概要

### Cloud Dataprepとは
Cloud Dataprepは、Google Cloud Platform(GCP)のデータプレパレーション(データ準備)サービスです。データのクリーニング、変換、統合などを視覚的に行うことができます。クラウド上で簡単にデータの事前処理や前処理を行い、データ分析や機械学習モデルのトレーニングに使用することができます。

元記事を表示

ABC338A~Fの解答[Java]

## はじめに
今回はコンテスト中にEまで、コンテスト後にFを解いたのでFまで載せようと思います。

なお、僕のライブラリについては[提出結果](https://atcoder.jp/contests/abc338/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)をご確認ください。
では、見ていきましょう。

## A – Capitalized?
問題文は[こちら](https://atcoder.jp/contests/abc338/tasks/abc338_a)

char型では`’Z’<'a'`なので、一文字目はこの判定で、以降は`toLowerCase`メソッドを用いて比較しました。 ```A.java final class Main{ private static final boolean autoFlush = false; private static final SimpleScanner sc = new SimpleScanner(System.in); private s

元記事を表示

JUnit5のまとめ(基本的な使い方)

## JUnit5概要
個人的にはテスティングフレームワークはSpockの方が好みですがJUnitについてもまとめようと思います。
java言語で書くことの出来る単体テストを行うためのテスティングフレームワークです。
Spockとは異なり、javaソースコードとほとんど一緒なのでjavaに触れてきた方はこちらの方が親しみがあり、ラムダ式の判定などもでき、springとの相性も良いみたいです。

## JUnit5の基本的なルール
・戻り値はVoid(戻り値なし)とする
・引数は指定しない
JUnitは下記のようにアノテーションベースのテスティングフレームワーク
| アノテーション | 概要 |
|:-:|:-:|
| @Test |付与することでテストメソッドとして機能 |
|@DisplayName |テスト実行結果に表示される-結果が分かりやすくなる |
|@BeforeEach |テストメソッドとは別で作成しておくことで、各テストメソッドの実行後に毎回実行される |
|@AfterEach | テストメソッドとは別で作成しておくことで、各テストメソッ

元記事を表示

Java21のVirtualThreadsに対する自分の理解

# VirtualThreadsとは
JVM内で生成される軽量なスレッド。

そもそも、JavaはスレッドをOSで生成する。OSで生成されたスレッド(以下:OSスレッド)はJVMで生成されるスレッドより重い。だが、その分色んな処理を実行できる。

例えば、IO処理。(DBアクセス、ファイルアクセス、外部APIコール等)

WebアプリにIO処理はつきもの。
IO処理の厄介なところはIO待ちが発生すること。
OSスレッドはIO待ちが発生するとそれを待ち続けてしまう。
待ちが増えるということは、**スループットが落ちるということ。**
(スループット=単位時間あたりに実行された処理の数)

これをなんとかするために導入されたのが、Virtual Threads.(仮想スレッド)

![vt.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159675/b203fe86-a960-21ff-b905-193fe9e31592.jpeg)

Virtual Threadsを理解する上で知っておくべき登場人物は↓の

元記事を表示

[java備忘録]ラムダ式とStreamAPI

これまでなんとなくでラムダ式だったりStreamAPIをつかってきたので自分の再学習のため、この記事を作成しようと思いました。
間違っているところあるかもしれません、暖かく見守ってください。
# そもそもラムダ式ってなんのためにあるのか?
そうです、そのレベルからです。なので調べました。

「ラムダ式のメリットは、**匿名クラス**(一度だけしか使わないようなクラス)を用いる場合よりも**関数型インターフェース**(抽象メソッドを1つだけ持つインターフェース)の記述が簡潔になることにあります。」

だそうです。
**匿名クラス**を用いた**関数型インターフェース**の記述よりも簡潔にするためのものなんですね。
### 関数型インターフェース
関数みたいなインターフェースで(そのまま)それぞれ一つずつ抽象メソッドを持っています。
関数合成という合体技もありますがここでは標準関数型のみ説明します。

インターフェース | メソッド | 説明
—–|———-|—–
Function | R apply (T t) | T型の引数を受け取って、R型の結

元記事を表示

高校の課題研究で素人4人がAndroidアプリ作ったので過程と反省をまとめる

Androidアプリを私含め4人で作った過程でいろいろあったのでまとめます。
問題続出だけど私は楽しかった。
これから似たようなことする人はぜひ生かしてね!

# 課題研究とは
私の通う埼玉県立越谷総合技術高校では、3年4月から1月まで**課題研究**という
「学科で学んできたこと活かしてチーム組んでなんか作って発表してね」
という趣旨の課題が出されます。
私は情報技術科でしたので、PCやスマホ用のソフトウェアやゲーム、Webサイト、動画編集などをすることが多いようです。

:::note warn
この記事は、越谷総合技術高等学校公式のものではありません。
:::

# 作ったアプリ

Ewiseという、英単語学習を目的としたアプリになります。

  • OTHERカテゴリの最新記事