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

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

ABC364A~Eの解答[Java]

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

なお、僕のライブラリは[GitHub](https://github.com/viral8code/viral-Library)よりご確認ください。
では、見ていきましょう。

## A – Glutton Takahashi
問題文は[こちら](https://atcoder.jp/contests/abc364/tasks/abc364_a)

2個連続で甘いものを食べたときに最後じゃなければ`No`、それ以外は`Yes`と判定することで本問題を解きました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out = new SimpleWriter(System.ou

元記事を表示

ポリモーフィズムとReflectionでランタイム環境からクラスにアクセスしてみた

# はじめに

こんにちは。

この記事では初めての現場に配属されてから、任された初開発業務に対して、
どのような悩みがあって、それをどのように解決したのかについて記録を兼ねて書いていこうと思います。

### 開発環境
– 言語:**JAVA 1.5**
– フレームワーク:seaser2
– DB:PostgreSQL

### この記事で使う用語

– **セクション**:診療情報の中で、**情報の枠**を意味します

例)患者情報、処方情報など(Javaではclassを意味)
– **項目**:実際の**診療情報のデータ**を意味します

例)患者情報の患者名・性別、処方情報の症状・服薬指導など(Javaではfieldを意味)

# プロジェクトの概要

当時、自分は病院向けの電子カルテパッケージを開発するチームに参加していました。

HL7 FHIRという国際規格に合わせて、オンライン紹介状の機能を改修するプロジェクトを行うことになりました。

HL7 FHIRは患者の診療情報を複数のセクションに分けている構造になっていたため、
紹介状に記載されている内容の中で、**印刷した

元記事を表示

ABC363A~Fの解答[Java]

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

なお、僕のライブラリは[GitHub](https://github.com/viral8code/viral-Library)のものをご確認下さい。
では、見ていきましょう。

## A – Piling Up
問題文は[こちら](https://atcoder.jp/contests/abc363/tasks/abc363_a)

答えは$\lfloor\frac{R+100}{100}\rfloor\times100-R$で求まるのでこれを実装しました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out = new SimpleWriter(System.out,autoF

元記事を表示

ABC362A~Eの解答[Java]

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

なお、僕のライブラリは[GitHub](https://github.com/viral8code/viral-Library)よりご確認ください。
では、見ていきましょう。

## A – Buy a Pen
問題文は[こちら](https://atcoder.jp/contests/abc362/tasks/abc362_a)

$C$に該当する変数に適当な大きさの値を代入することで選択しないようにさせて解を求めました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out = new SimpleWriter(System.out,autoFlush);

public static

元記事を表示

JavaでAWSのS3ストレージからファイルをアップロードする方法

こんにちは、東です。
今回はJavaを利用してファイルをS3ストレージへアップロードする方法を
まとめたいと思います。

あくまでも参考程度なので大まかな外枠の仕組み程度に捉えていただければ幸いです。

# 必要なことは?
まず必要なものは以下のものです。
・**「ユーザーID」** →IAMユーザーのユーザーID
・**「シークレットアクセスキー」** →IAMユーザーのシークレットアクセスキー
・**「S3バケット名」** →S3コンテナ名
・**「ルートディレクトリパス」** →S3コンテナ内のルートパス
・**「リージョン名」** →S3コンテナが配置されている地域のリージョン名
・**「ファイル情報」** →アップロードするFile(JavaのFile型)
となります。

流れとしては
1.認証情報を用意

2.S3へアクセスするクライアントを作成。

3.ファイルをアップロードする。

という流れになります。
では、詳しく見ていきましょう。

# 手順
### 1.認証情報を用意
AWSのS3ストレージへアクセスするためには、
**「アクセスID」** **「シークレッ

元記事を表示

【Java勉強法】業界未経験からJava Gold取得したので勉強方法などまとめてみました!

![スクリーンショット 2024-08-31 12.04.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3874571/6e009a34-205d-0bfb-ac96-68e3b31cb286.png)
# はじめに

今回、勉強期間20日ほどでJava Gold SE11の資格を取得することができたので、自分が行った勉強方法や注意点などをまとめてみました!

*おことわり*

初学者のため、間違い等あるかと思います。Javaの知識というよりは、勉強方法の参考やモチベーションアップのために読んでいただければ幸いです。

# この記事の対象

・これからJava Goldの取得を考えているけど「どうやって勉強するねん」って思ってる人
・Java Silver取ったけどGoldって取れるの??って考えている人

# 自分について

私は今年の7月にエンジニアとして会社に入社し、その後10日ほどの勉強期間でJava Silverを取得しました。その後、SQL Silverの勉強を10日ほど行

元記事を表示

「インタフェースに宣言する抽象メソッドに処理内容を記述できない」とは?

はじめに

皆さんこんばんは、脆弱性アザラシです。
今回が初投稿となります。

自分は未経験からエンジニアへの転職を目指しており、その過程で行った資格の勉強などの掘り下げを、こちらのブログで発信していきたいと思っています。

初心者ゆえ、至らぬ点などもあるかと思いますが、お手柔らかに、温かい目で見ていただけますと幸いです。よろしくお願いいたします。

今回は、Java SE11 Silver の勉強をしていて、「インタフェースに宣言する抽象メソッドには、処理内容を記述できない」(註:1)といった記述を目にし、「一体どういうことだろう?」と気になったので、その点を掘り下げて考えていきたいと思います。

自分の思考の整理を兼ねているため、より詳細な内容を確認したい方は、(註)に記載している参考文献もご参照ください。

インタフェースの概要

まずは、インタフェースの概要を説明します。

インタフェースとは、「クラスに含まれるメソッドの具体的な処理内容を記述せず、「メソッドの型」「変数」を定義したもの」のことです(註2,3)。

メソッドの具

元記事を表示

Clean Code – Chapter 3-2 : 関数

# Clean Code – Chapter 3-2 : 関数
最近、忙しくてだいぶ遅くなってしまいましたね TT…

[該当記事はこのリンクの次の内容です](https://qiita.com/wlsrb2695/items/1a98193243283d09005b)

## 4. 副作用を起こすな!
ある関数に副作用があるということは、その関数が少なくとも2つの役割を持っているということです。

副作用というのは結局、他の処理も行っていることを意味します。

時には予期せずクラスの変数を修正したり、関数に渡された引数やシステムのグローバル変数を修正したりします。

以下のコードを見てください。

“`jsx
public class UserService {
private static int staticUserId;

public void updateUserEmail(int userId, String newEmail) {
// 機能 1 : データベースでユーザーのメールアドレスを更新
Database db

元記事を表示

マウスジグラーをJavaで作る

# 目的

定期的にマウスカーソルを動かして、スクリーンセーバーの起動を阻止します

# 使い方

起動して10秒後にマウスの位置を記録し、適当にマウスカーソルを動かして元の位置に戻ります。

移動の方向や時間間隔は適当に調整してください。

# コード

“`Java
package hello.mouse;
import java.awt.AWTException;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Robot;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
public class MouseMover {
private static boolean running = true;
public static void main(String[] args) {
try {
Robot robot = new Robot()

元記事を表示

Apache HttpClient 5 の使用方法まとめ

# はじめに
以前、Http Client 4にバージョンアップした頃、それ以前のバージョンで使用されていた方法が非推奨になっていたりして、ネット上の情報があまり参考にならなかった経験がありました。
それでも、Http Client 4の頃はサンプルが添付されていたので、それを見て何とか解決できました。
そして、Http Client 5になって、更に、“HttpClient#execute(httpGet)“が非推奨になったり、それ以外にも、今までのコードが動かなかったり、ということが結構ありました。
公式サイトの[マイグレーションガイド](https://hc.apache.org/httpcomponents-client-5.3.x/migration-guide/preparation.html)が微妙に動かなかったりもしました。

最近はApache HttpClientを用いることが少なくなったのか情報があまりない気がするので、こちらに軽くまとめ記事を投稿したいと思います。

# 通常のPOST
“`java
CloseableHttpClient httpclie

元記事を表示

【JUnit】Controllerのテスト

## はじめに
コントローラテストについて、何を確認しているのか、どうやって書くのかを理解するために記事を書いていければと思います!

## Controllerクラスでは何のテストをする?
Controllerクラスでは何のテストをするのか、どのような状態になればOKなのかについて理解していきます。

**1.HTTPリクエストとレスポンスの確認**
Controllerが正しいHTTPリクエストを受け取り、期待されるレスポンス(ステータスコードなど)を返すかどうかをテストします。

**2.ルーティングの確認**
各メソッドが正しいURLにマッピングされているかをテストします。
たとえば、@GetMapping, @PostMapping などのアノテーションが正しく設定されているかどうかを確認します。

**3.サービス呼び出しの確認**
Controllerがサービスを適切に呼びだせているかを確認します。
期待される引数がサービスに渡されて、サービスからの結果を正しく受け取れているかを確認します。

**4.例外処理の確認**
コントローラが特定の例外を処理しているかを確認しま

元記事を表示

【Java】ChatGPTでカレンダー機能を作成してみた

# はじめ
こんにちは。
学生時代はJava・Pythonなどをはじめとする主流言語を広く浅く学んでいた@shika_ksです。
今回は、
・ChatGPTの無償版と有償版との違いを体感する
・自身の学習の振り返り
の観点から、Java入門のCalendarクラスを使用した機能を作成していきます。

# 動作環境
今回使用するツールは以下の通りです。
|ツール|バージョン|
|:—|:—|
|Java|jdk-17.0.5|
|ChatGPT|ChatGPT 4o mini 無償版|
|VScode|version 1.92|

# カレンダー機能
・うるう年を考慮してほしい
・先月、来月に移動できるようにしてほしい

上記2点の要望をChatGPTにした依頼しました。

“`java:CalendarApp.java
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;

publ

元記事を表示

public class Main { public static void main(String[] args) { } }について一つ一つ説明してみた。

https://java-code.jp

# public class Main

### public
これは「公開する」という意味です。このキーワードがついていると、このクラスは他のプログラムからも見えて、使うことができるようになります。言い換えると、publicを使うことで、このクラスが他のプログラムからアクセスできるようになります。
### class
これは「クラス」というものを作るという意味です。クラスは、オブジェクト指向プログラミングの基本で、何かを表す設計図のようなものです。例えば、犬のクラスを作ることで、犬が持つ特徴やできることを定義できます。ここでは、Mainという名前のクラスを作っています。

### Main
これはクラスの名前です。Javaではクラスの名前は自由に決められますが、Mainという名前は特にプログラムの開始地点を示すために使われることが多いです。ここでは、プログラムのメイン(中心)になるクラスを示しています。

### { }
この波括弧は、クラスやメソッドの始まりと終わりを示すために使います。つまり、波括弧の中にクラスやメソッドの内容が書かれま

元記事を表示

this.name=name;について解説してみた。Java超入門

https://java-code.jp
# this.name = name;の意味
まず、このコードが何をしているのかを説明します。

### name(右側のname)
これは、外からもらった情報です。例えば、新しい犬を作るときに、その犬の名前を決めるために使います。このnameは、コンストラクタに渡される引数(ひきすう)です。

### this.name(左側のname)
これは、クラスの中で使われているフィールド(変数)です。このnameは、クラスの中でその犬の名前を**保存するため**の場所です。thisを使うことで、「このクラスの中にあるname」という意味を持たせています。

## 具体例で説明
犬を例に考えてみましょう。Dogというクラスを使って新しい犬を作るとき、犬には名前が必要です。this.name = name;というコードは、その犬の名前を決めて、クラスの中に保存するために使います。

コードの例

“`java
class Dog {
String name; // 犬の名前を保存するための箱

// コンストラクタ:新しい犬を作るとき

元記事を表示

【Java】基本のおさらい

# はじめに
アクセスしていただきありがとうございます。
本記事は、某SESに入社して初めて案件の面談を受けた際の質疑で、自分が答えられなかった内容を覚えておく備忘録として投稿します。

#### 投稿者の職務状況(念のため)
* 社会人5年目
* SE歴5年目
* 自社開発パッケージの導入2年
* 自社開発パッケージの開発2年
* 主に利用しているプログラミング言語:Java
* 基本情報、応用情報保持

# 質問内容
## アノテーションとは?(Springフレームワークを絡めて)
Javaにおけるアノテーション(annotation)は、コードにメタデータを追加するための機能です。アノテーションは、コードの実行時やコンパイル時に特定の処理を行うために使われます。たとえば、コードの意味を補足したり、特定のフレームワークやライブラリがコードを正しく処理できるようにするために利用されます。

アノテーションは、@ 記号で始まり、クラス、メソッド、フィールドなどに付加できます。以下はアノテーションのいくつかの例です:

* @Override:メソッドがスーパークラスのメソッドをオー

元記事を表示

csvを読む

# 序
簡単にcsvを読むというだけのことをします。

# 使用するライブラリ

**簡単に**なので、既存のライブラリを使用します。今回試してみたのは以下の2つです。

– [apache commons csv](https://commons.apache.org/proper/commons-csv/)
– [opencsv](https://opencsv.sourceforge.net/)

# 使用するデータ

あまりオススメされてないようですが、有名な郵便番号のCSVを使用します。

https://www.post.japanpost.jp/zipcode/dl/utf-zip.html

# ビルド用の設定

今回はmavenで用意しました。JREは17想定です。8でもちょっと修正すれば動くかも。

“`xml:pox.xml

元記事を表示

Paiza×Qiitaキャンペーン 全問Javaで解説してみた【B 名刺バインダー管理 編】

# 問題へのリンク

https://paiza.jp/works/mondai/b_rank_skillcheck_archive/name_card

# 解答コード

詳細

~~~

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
final int N = scanner.nextInt();
final int M = scanner.nextInt();
scanner.close();

int page = (M – 1) / N + 1;
int index = M – (page – 1) * N;

if ((page & 1) == 1) {
page++;
} else {
page–;
}

System.out.println((N

元記事を表示

Open API Specでコード生成する際の個人的チェックリスト

## 前提

– フロントエンドではopenapi-typescriptを利用している
– バックエンドではOepnAPI Generator(Spring)を利用している
– OpenAPI Specの記述にはredocly-cliを利用している

## pathファイルのポイント

– tagsに記載した内容がコントローラー名になる
– 複数名で開発している時にはコンフリクトに気をつける必要がある
– [ ] descriptionにはクライアントがどう利用するか、どういう結果が返ってくるかを記載している
– operationIdに記載した内容がメソッド名になる
– なので冗長な名前はつけなくて良い
– 例: UserController#getUserByIdとかはgetByIdとかにできる
– [ ] parametersにはそのパラメータにどういう値をしているするとどういう結果が返ってくるか記載している

## schemaファイルのポイント

– [ ] schemaに記載した内容がdtoのファイル名になるので、単独でみた時にわかるようにし

元記事を表示

【合格体験記】Java Silver 17を受験してみて

## はじめに

先日、Java Silver 17に合格したので、感想や気を付けたことを残します。
Java Silver 17の受験に際して、ネット上など情報が少なく、こういった合格体験記が少なく苦労したので、少しでも参考になれば幸いです。

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

## Java Silver 11との違い
簡単には以下のような違いです。
| | Java Silver 11 | Java Silver 17 |
|———-|———-|———-|
| 制限時間 | 180分 | 90分 |
| 問題数 | 80問 | 60問 |
| 合格正答率 | 63% | 65% |

Java Silver 17では1問あたりに避ける時間が減った他、合格正答率もやや上がっています。

### 試験範囲
大半は同じですが、Java Silver 11で出題範囲となっていた **「ラムダ式」「モジュールシステム」** 等は、Java Silver 17では試験範囲外となっています。

元記事を表示

Java Silver SE11合格記録

# Javaに関する知識レベル
エンジニア3年目でJava silverを受験し無事に合格できたので過程を記録しておきます。
初投稿なのでお手柔らかに:bow_tone2:
完全プログラミング未経験で入社し現場では仕様変更程度の改修程度で、がっつりは触っていません。

# 取得しようと思ったきっかけ
現場の作業についていくのが精一杯で自己学習はしていませんでした。(1~2年目)
しかし段々と開発をしたい、コードをガシガシ書いていきたいという気持ちが芽生えまず資格に挑戦してみようと思ったことがきっかけです。(今の自分には実績など証明できるものものがないので形になる資格が良いと考えました。)

# 使用した参考書
使用した参考書は以下の3点です。
①は研修時に利用していた本で最初に1度よみ直した程度です。
紫本と黒本セットで必要!と思っていたので両方買いましたが、紫本も1周して黒本実施したときに見るくらいだったので正直黒本だけあれば良いとは思いました!(しかし紫本とかある方が理解は深まります。)
**黒本は必須アイテムと思います**
①[スッキリわかるJava入門 第4版](https:/

元記事を表示

OTHERカテゴリの最新記事