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

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

桁数指定の数値項目

# 数値項目
データベースにしろ、javaにしろ、数値項目を扱う場合には通常int型にて処理する場合が多い。しかし、0始まりの項目に関しては0が消されてしまう可能性がある。特にIDなどの主キーを設定する場合によく用いられる。
また、主キーの場合には、0始まりでIDを降っていかずに、5桁の数字の場合には、00001などから採番を始める事もある。採番ルールを決めて確実にデータベースへの保管が必要となる。

# 桁数指定の項目に関しては
この桁数でデータベースとやりとりするなど指定されている桁数が決まっている場合には0埋めなどの処理をアプリ側で入れた上で、データベースに登録する必要がある。特にID等で0始まりのものがある場合には文字列型の文字数指定型を設定しておく必要がある。

元記事を表示

一番小さい値 (paizaランク D 相当) Java解答例

# 問題文
https://paiza.jp/works/mondai/d_rank_skillcheck_sample/min_num

# 解答例
“`java
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
int min = scanner.nextInt();
for (int i = 0; i < 4; i++) { min = Integer.min(min, scanner.nextInt()); } System.out.println(min); } } } ``` # 補足 JavaのStreamを利用してみた別解が以下。 ```java import java.util.ArrayList; import java.util.Comparator; import java.util.List;

元記事を表示

文字の一致 (paizaランク D 相当) Java解答例

# 問題文
https://paiza.jp/works/mondai/d_rank_skillcheck_sample/diff_str

# 解答例
“`java
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
String a = scanner.next();
String b = scanner.next();

if (a.equals(b)) {
System.out.println(“OK”);
} else {
System.out.println(“NG”);
}
}
}
}
“`

# 補足
ポイントはJavaで文字列を比較する際`==`を使わないこと。
説明は(ちょっと難しめだが)以下が詳しい。
https://developer.mamezou-tech.com/blogs/2

元記事を表示

Javaで「try文」の動作を確認してみた

# 概要

Javaで「try文」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/exception/index2.html

# 実装

以下のファイルを作成しました。
“`JSample2_1.java
class JSample2_1{
public static void main(String args[]){
int n[] = {18, 29, 36};

System.out.println(“開始します”);

try{
for (int i = 0; i < 4; i++){ System.out.println(n[i]); } } catch(ArrayIndexOutOfBoundsException e){ System.out.println("配列の範囲を超えています"); } System.out.println("終了しました"); } } ``` 以下の

元記事を表示

外部エンティティを含むxmlファイルを読み込んだ際、ノードや要素がどの外部エンティティに記載されているかを取得したい

employee1.xmlは従業員情報を記録したファイルです。このemployee1.xmlは外部エンティティとしてemployee2.xmlとemployee3.xmlを参照しています。

“`employee1.xml



]>


佐藤一郎
鈴木一郎
&employee2;
&employee3;

“`

“`employee2.xml
高橋二郎
田中二郎
“`

“`employee3.xml
伊藤三郎

元記事を表示

ORACLE PL/SQLとは 〜例外処理・ORACLE関数・分岐処理等〜

#### 【背景】
ネット上でのPL/SQLについての文献が少ない為、現場で培ってきたPL/SQLについての知識をまとめようと思います。

前回の資料をご覧になって頂いている場合は既知情報になりますが、私はPL/SQLの現場経験がありますが1年と3ヶ月ほどなので作成資料について誤記等がございましたらご指導ご鞭撻のほど宜しく御願い致します。
 
前回の資料↓

https://qiita.com/yoshida_t/items/d4c0e3d8ed5fcac6bcec


### 目次
9.例外処理
10.使用可能なオラクル関数(ファンクション)
11.制御構造
12.資料2についてのまとめ

9.例外処理

PL/SQLでは例外処理というものが存在。
基本的なものとしては下記の2種類。
例外処理とはPL/SQLの処理の中でエラーが起きた際の処理内容を記載する処理部分になる。

|例外処理|内容 |
|—|—|
|事前定義例外 |ORACLEが事前に定義している一般的なエラー|
|ユーザー独自の定義例外 |開発者が独自に定義するエラー |

おさらいになります

元記事を表示

コールバック関数について

# コールバック関数とは
コールバック関数とは、引数として他の関数に渡され、外側の関数の中で呼び出されて、ルーチンやアクションを完了させる関数のことを指します。

# コールバック関数についてのサンプル
バッチで以下関数をコールバックで実行するサンプルとなります。
* 1加算した結果を返却する関数 : plusOne
* 1減算した結果を返却する関数 : minusOne
* 2倍した結果を返却する関数 : double
* 3倍した結果を返却する関数 : triple

## 関数の定義
引数で関数を受け取るコールバック関数を定義したクラスを作成します。
“`GenericFunction.java
public class GenericFunction implements Function {
public final String functionName;
private final Function function;

public GenericFunction(String functionName,

元記事を表示

Javaで簡単な数字ゲームを作ってみた。

javaを使って、簡単な数字ゲームを作ってみました。

ルールは単純です。
入力した数字が、コンピュータが出した数字より大きかったら、勝ち。
逆にコンピュータが出した数字より小さかったら、負け。
以下に自分が書いたコードを載せます。

“`java:GameSample
public class GameSample{
public static void main(String[] args){
//ここでまず、数字を入力できるように設定する
System.out.println(“数字を入力してください”);
int i = new java.util.Scanner(System.in).nextInt();

//数字の乱数生成
int j = new java.util.Random().nextInt(100);

//jに+1を加えて、1〜100に設定
j ++;
System.out.println(“

元記事を表示

[Java / docker] とりあえず Docker で Java を動かしたいときc(⌒(_*˘ㅿ˘)_スヤァ

# 1. 概要

– とりあえず**何でもいいから手軽に Java を実行したい**
– Docker、特に `docker-compose` が好き

そんな人のための記事。

# 2. 気を付けたこと

– 古過ぎる Docker イメージは使わない
– サイズがなるべく小さそうなイメージを使う
– ただし、`alpine` みたいなすっからかん過ぎるイメージは、後で困ることが多いので使わない

## Docker image についての補足
以下の記事によると、 **`OpenJDK` の Docker イメージは非推奨になってしまった**らしい。

https://zenn.dev/104/scraps/cc1542931b4ade

上記を踏まえて、最近も更新されていそうな、 `Eclipse temurin` という Docker イメージを使うことにした(\*˘︶˘\*)フフン

# 3. 前提条件

OSに、以下がインストールされていて、使用できる状態であること。

– docker
– docker-compose

使用した Docker image は以下の通

元記事を表示

ヌルポも怖くない、Javaでの比較について

## Javaで比較する術は?
業務で比較について勉強することがあったので、記事にまとめておくよ。
javaで比較するときによく使うものとして、
`equals()`、`==`、`Objects.equals`があるのでそれぞれ簡単に解説するよ。

### equalsメソッド(String.equals())
equalsメソッドは、Stringクラスの文字列を比較するときに利用されるものだよ。
ただし、nullと比較する場合にヌルポ(NullPointerException)が発生することもあるので、注意が必要だよ。基本的な使い方は以下の通り。
“`java
str1.equals(str2);
“`
具体的には、
“`java
public class Main {
public static void main(String[] args) {
String str1 = “Qiita”;
String str2 = “Qiita”;
String str3 = “qiita”;

System.ou

元記事を表示

IntelliJ IDEA ショートカットまとめ一覧

# コード編集
“コード補完“: `Ctrl + Space` (Windows/Linux), `Cmd + Space` (Mac)
`スマート補完`: `Ctrl + Shift + Space` (Windows/Linux), `Cmd + Shift + Space` (Mac)
`コードのフォーマット`: `Ctrl + Alt + L` (Windows/Linux), `Cmd + Option + L` (Mac)
`コメントアウト/コメント解除`: `Ctrl + /` (Windows/Linux), `Cmd + /` (Mac)
`ブロックコメント`: `Ctrl + Shift + /` (Windows/Linux), `Cmd + Shift + /` (Mac)
`行を移動`: `Alt + Shift + Up/Down` (Windows/Linux), `Option + Shift + Up/Down` (Mac)
`行を複製`: `Ctrl + D` (Windows/Linux), `Cmd + D` (Mac)
`行を削除`: `C

元記事を表示

ジェネリックスについて

# ジェネリックスについての理解
Javadocを眺めていると、ジェネリクスを利用したクラス、メソッド、インターフェースが存在します。Eとか、Kとか記載されていると、パラメータの意味が分からず読み飛ばしている方もいるのではないでしょうか?
そのような方のために、ジェネリック型を見かけてもドキュメントやコードが読めるよう解説をしたいと思います。

ジェネリック型とは、型に対してパラメータ化されるジェネリッククラスまたはインターフェースとなります。

ジェネリックス型を利用せず、汎用的な型を扱う場合は以下のようになります。
“`java
public class Box {
private Object object;

public void set(Object object) { this.object = object; }
public Object get() { return object; }
}
“`

ジェネリックス型で定義した場合、以下のようなコードになります。
“`java
public class Box {
// T

元記事を表示

Javaで「例外とは」の動作を確認してみた

# 概要

Javaで「例外とは」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`JSample1_1.java
class JSample1_1{
public static void main(String args[]){
int n = 10;

if (n == 10{
System.out.println(“10です”);
}
}
}
“`

以下のコマンドを実行しました。
“`$ javac JSample1_1.java
JSample1_1.java:5: エラー: ‘)’がありません
if (n == 10{
^
エラー1個
“`

以下のファイルを作成しました。
“`JSample1_2.java
class JSample1_2{
public static void main(String arg

元記事を表示

Java モジュールシステム

Java 11 Gold 取得に向けた学習記録

# モジュールシステム

複数のパッケージをまとめる仕組みを**モジュールシステム**という。

## 定義

モジュールの定義は `module-info.java`(モジュール定義ファイル)に記述する。このファイルに記述する情報は **モジュールディレクティブ** という。

“`java:module-info.java
module モジュール名 {
exports 公開するパッケージ名;
requires このモジュールが依存する別のモジュール名;
}
“`

`module-info.java`を配置したフォルダはモジュールとして扱われる。

パッケージ内ではクラス単位でアクセス制御を行うのに対して、モジュールシステムではパッケージ単位でアクセス制御を行うことができる。

## モジュール名

モジュール名はパッケージと同様に**一意**であることが必要。そのため他のモジュール名と被らない名前にする必要がある。

通常は、モジュールに含めるパッケージ名に共通の文字列があれば、その部分をモジュール名として使

元記事を表示

Javaの日付の扱い~LocalDateTime系とInstantを使い分ける~(Android)

Javaには日付を扱う型にはさまざまあります。どれを使ったらいいのでしょう。

今回は使い分けを自分なりにまとめました。

なおkotlinx.datetimeについては今回扱いません。
こちらはKMPやシリアライズで使われるKotlin製の日付型でありますが、Javaの型をKotlinで使えるようにしたものですので、考え方は基本同じだと思っています。

またAndroidアプリの開発で使うことを前提としています。

## java.util.Dateやjava.util.Calendarは基本使わない
Dateは一部のメソッドが非推奨となっています。
> The corresponding methods in Date are deprecated.
>
[Date \(Java SE 11 & JDK 11 \)](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Date.html)

DateやCalendarはレガシーとされており、APIも使いづらいです。
古いクラスとして、新規開発

元記事を表示

Tomcatのポート番号を環境変数で定義・変更する方法

## 1. はじめに
SpringBoot等のモダンなアプリケーションではポート番号を環境変数で容易に変更することが可能です。それに倣い、Tomcatで動作しているJavaアプリをコンテナ化するというレガシーシステムのクラウドリフト案件で起こりえるケースを前提とし、Tomcatのポート番号を外部(環境変数)から変更可能とする方法について説明したいと思います。

## 2. 検証環境・バージョン

* OS : Windows 11 Pro 23H2
* Java : Corretto-17.0.12.7.1
* Apache Tomcat : 10.1.26

## 3. 設定方法

“`xml:%CATALINA_HOME%/conf/server.xml

元記事を表示

じゃんけんでJavaのオブジェクト指向を理解する

:::note warn
この記事は初心者が理解を深める目的で書いています。
誤りなどありましたらコメントでご指摘頂けますと幸いです。
:::
# オブジェクト指向でつまづく
Javaを学ぶ方の多くが、クラス・メソッド・コンストラクタ・thisあたりの観念でつまづいたのではないでしょうか。私もそうです。
よくある「設計図」「実体」などの説明ではよくわからなかったので、自分なりに理解をまとめてみました。

# そもそもなぜクラスやメソッドがあるのか
「ゲームをするよ!」と言われて、以下のルールを説明されたとします。
“`
このゲームに本来人数制限はありませんが、今回は1対1の場合に絞ります。
それぞれのプレイヤーは3種類の行動が可能です。
グー:すべての指を折り拳を作る
チョキ:人差し指と中指のみ立て、あとは折る
パー:すべての指を立てる
これらはすべていわゆる三すくみの状態となっており、それぞれ勝てる手、負ける手があります。
etc…
“`
**じゃんけんって言ってよ。** そう思いませんでしたか。
それがクラスやメソッドを取り扱うメリットと直結します。
とても大雑把に言

元記事を表示

removeIfの中身

 JavaでMapから条件付きで要素を削除する場合に、for文ではうまくいかない。これは、collectionの構造がiteration中に変更されて、ConcurrentModificationExceptionがthrowされたことによるものらしい。
代替手段として、removeIfメソッドを用いると想定通りにプログラムが動いた。ソースを見ると比較的スクリプトが少なく簡単に読めそうなので、詳細を確認しよう。

“`Java
public interface Collection extends Iterable {
// 省略
default boolean removeIf(Predicate filter) {
Objects.requireNonNull(filter); //1
boolean removed = false; //2
final Iterator each = iterator(); //3
while (each.hasNext()) {

元記事を表示

【Java】レコードクラスとは

## はじめに

資格勉強を進める中で、レコードクラスを学ぶ機会がありました。

研修の中で学ぶ機会はなかったものの、結構便利なので今後も使う機会があるかと思い、備忘録としてまとめてみようと思います。

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

## 想定読者
初学者の方
普段Javaを使用している方

## レコードクラスとは
Java16より正式に追加された、簡潔かつイミュータブルにデータを保持できるクラスです。

従来は、データを保持する目的においてもクラスを新たに作成し、似通ったクラスを作成していましたが、レコードクラスはこれらボイラープレートコードの作成を軽減してくれます。

**※ボイラープレートコード**
→定型的で冗長な記述のこと。

## 実際の使い方
実際の使い方を見ていきましょう。
今回は名前(name)と年齢(age)のみの簡潔なレコードクラスを作成してみます。

“`java
public record Person(String name, int age) {}
“`

これ

元記事を表示

Javaで「コマンドライン引数の数を確認」の動作を確認してみた

# 概要

Javaで「コマンドライン引数の数を確認」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/main/index2.html

# 実装

以下のファイルを作成しました。
“`JSample2_1.java
class JSample2_1{
public static void main(String args[]){
if (args.length != 2){
System.out.println(“引数を2つ指定して下さい”);
System.out.println(“JSample2_1 値1 値2”);
System.exit(1);
}

System.out.println(“「” + args[0] + “」”);
System.out.println(“「” + args[1] + “」”);
}
}
“`

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

元記事を表示

OTHERカテゴリの最新記事