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

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

マウスジグラーを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:/

元記事を表示

[Android その2] Androidのアプリケーションの基本要素

# Androidのアプリケーションの基本要素
Androidアプリケーションは、いくつかの基本要素(コンポーネント)から構成されています。これらのコンポーネントは、アプリの機能を提供し、ユーザーと対話する方法を定義します。以下に、Androidアプリケーションの基本要素を詳しく説明します。

## 1\. アクテビティ(Activity)
アクテビティは、AndroidアプリケーションアプリのUIを構成する基本的なコンポーネントで、アプリの単一の画面を表します。
各アクテビティは独自のライフサイクルを持ち、アプリ内の異なる機能や画面を管理します。
* __役割__ :アクテビティはユーザーと直接対話し、ユーザーがアプリを使ってタスクを実行するための画面(UI)を提供します。
* __例__ : メールアプリでは、受信トレイの表示画面が1つのアクテビティであり、メールを作成する画面が別のアクティビティです。
* __ライフサイクル__ :アクティビティのライフサイクルには、onCreate(), onStart(), onResume(), onPause(), onStop(), o

元記事を表示

Java基礎_忘れがちな知識メモ

## 基礎の基礎
以下コードは1つのクラスにつき1つ、必須のコード。このメソッドの中に一連の処理を記載する。
細かい処理内容などは別メソッドを作成して、このメソッドの中で呼び出す。

“`
public static void main(string[] arg){
//内容
}
“`
## 変数の型変換ルール
小さなデータ型は大きなデータ型へ無条件で変換可能

– 小数>整数
– 整数:long(8バイト)>int(4バイト)>short(2バイト)>byte(1バイト)
– 小数:double(8バイト)>float(4バイト)

:::note warn
注意
longに100が代入されていた場合、値が小さいとしても箱が大きいため、小さい箱のintに型変換は出来ない
:::

大きなデータ型から小さなデータ型へ変換する際はキャストを使う
“`
long number1 = 100;
int number2 = (int)number1;
“`
キャストすると、小数点が切り捨てられて整数へ変換できる
“`
double number1 = 100.5;
long

元記事を表示

エラー解決:テンプレートが存在しないか、構成されたテンプレートリゾルバのいずれからもアクセスできない可能性があります。

## エラー:template might not exist or might not be accessible by any of the configured Template Resolvers
和訳:テンプレートが存在しないか、構成されたテンプレートリゾルバのいずれからもアクセスできない可能性があります。

### 修正前ソース内容
src/main/java/com.example.demo/HelloController.java
“`
package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {

@RequestMapping(value=”/hello”)
private String hello(){
return “hello”;
}
}
“`
s

元記事を表示

Vue.js と Spring Boot を連携基本

# 1. Spring Boot で REST API を構築する
まずはバックエンド側の Spring Boot で、簡単な REST API を作成します。このAPIは、ユーザーのリストを返すエンドポイントを提供します。

### Spring Boot の準備
Spring Initializr を使って、新しい Spring Boot プロジェクトを作成します。Web依存関係を追加しておきましょう。

コントローラーの作成
次に、UserController というコントローラーを作成し、ユーザー情報を返すエンドポイントを定義します。

“`java
@RestController
@RequestMapping(“/api”)
public class UserController {

@GetMapping(“/users”)
public List getUsers() {
// ユーザーリストを返す
return List.of(new User(1, “Alice”), new User(2, “Bob”

元記事を表示

Java と C# での違い

## JavaとC#のひっかりやすい違い
C#使用者がJavaを使用するにあたり、ひっかかりやすい違いをまとめる

ここでの違いは全ての違いを網羅しているわけではないので、
用法要領を守り正しくお使いください。

## Javaのprivate はpublicの内部クラスでしか使えない

“`java.java
public class MyClass {
// このクラスは public なので他のパッケージからもアクセス可能
private class PrivateClass {
}
}

class DefaultClass {
// このクラスはデフォルトアクセスなので同じパッケージ内のみでアクセス可能
}
“`

“`C#.cs
// Program.cs
namespace TestApp
{
public class MyClass
{
}
private class PrivatelClass
{
//C#はprivateで内部クラスが定義できる
}
}
“`

##

元記事を表示

JavaServlet

勉強中のため自分用のアプリケーションです。
Eclipseを使用してます:desktop:

## Java Servlet
Javaのプログラムの一種で、主にWebアプリケーションでサーバーサイド処理を行う為の技術。

## 主な役割
**・リクエスト処理**
クライアントから送信されたデータを受け取る 

**・ビジネスロック実行**
サーバーサイドの処理(データベース操作)を行う。

**・レスポンス作成**
処理結果を基にクライアントにデータを返すHTML, JSON, XMLなど)。

## メリット
**・プラットフォームに依存しない**
javaで実装されているため、javaが動作するプラットフォームであればどこでも動かすことができる。Windows、Linux、macOSなど様々な環境で動作できる

**・ライフリサイクル管理が容易**
ライフリサイクル(生成→初期化→リクエスト処理→破棄)は、サーバが自動的に管理。リソース管理やエラーハンドリングがシンプルになる。

**・セキュリティ**
Javaのセキュリティ機能を活用することで、安全なWebアプリケーションを構築

元記事を表示

Eclipseのビューを自分で作る【Eclipse + ChatGPT】

Eclipseのビューを自分で作成する方法を紹介したいと思います。
今回はEclipse2023 + JavaSE17 を使っていきます。
また後半ではEclipseとChatGPTという不思議な組み合わせを実装します。

# PDE (Plug-in Development Environment)のインストール
**「ヘルプ」 > 「新規ソフトウェアのインストール」**
から作業対象に
https://download.eclipse.org/releases/latest
と入力し、「一般用ツール」から「Eclipse プラグイン開発環境」をインストール

![unnamed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3841947/37a1719c-3a2a-4827-8fc3-60779d5ef0de.png)

表示される条項などに同意し、インストール後に再起動する (筆者はpleiades以下の”eclipse.exe -clean.cmd”によりキャッシュを削除して再起動しないと次の

元記事を表示

paizaラーニングレベルアップ問題集をJavaでやってみた

paiza×Qiita記事投稿キャンペーンということで、キャンペーン対象問題25問をJavaで解いてみました。
– – –
###### [文字の一致](https://paiza.jp/works/mondai/d_rank_skillcheck_sample/diff_str)
“`java
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(sc.nextLine().equals(sc.nextLine()) ? “OK” : “NG”);
sc.close();
}
}
“`
– – –
###### [一番小さい値](https://paiza.jp/works/mondai/d_rank_skillcheck_sample/min_num)
“`java
import java.util.*;

public class Main

元記事を表示

OTHERカテゴリの最新記事