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

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

コード内のエラー箇所特定のための、原因切り分け法のメモ

こんにちは、へっぽこエンジニア見習いです。
この記事は、自分が500エラー(internal サーバーエラー)に悩まされていた時に、部署内で一番伸びしろのある最若手の子が教えてくれたやり方をメモったものです。
あくまでもメモなのでめっちゃ短いです。
以下本文

1,原因切り分けの方法の一つとして、いったんプロジェクト内の、
たとえばJavaファイルをパッケージごとバックアップとった上、
一旦削除、

2,その後、「一つづつファイルを戻し、サーバ起動」を繰り返し、原因ファイルを特定する。

3,原因ファイルが特定出来たら、次は「ファイル内の怪しい部分(例えば@(アノテーション部))を一旦コメントアウトし、
サーバ起動できるかか確認」、を繰り返す。

(→コメントアウトすると、正常に動く部分があれば、そこが原因と特定できる!)

元記事を表示

JavaでMarkdown形式をWord文書やPDF形式に変換する方法

Markdownは、シンプルさと使いやすさから、プレーンテキストドキュメントの作成や編集に人気があります。しかし、ドキュメントをプロフェッショナルに共有したり、オフラインで使用するために印刷したりする場合など、より洗練されたプレゼンテーションが必要な場合があります。MarkdownをWordとPDF形式に変換することで、ユーザーは書式設定オプションを強化し、さまざまなプラットフォーム間での互換性を確保し、視覚的に魅力的でプロフェッショナルなドキュメントを作成することができます。この記事では、**Javaを使用してMarkdown形式をWordとPDFの両方の形式に変換する方法**について説明します。

– **[Javaを使用してMarkdownファイルをWordドキュメントに変換する](#javaを使用してmarkdownファイルをwordドキュメントに変換する)**
– **[Javaを使用してMarkdownファイルをPDFファイルに変換する](#javaを使用してmarkdownファイルをpdfファイルに変換する)**
– **[結果のドキュメントのページ設定をカスタマイズする

元記事を表示

[Google Address Validation API(V1)] Javaで住所を検証して結果をフィードバックする

Google Address Validation API V2(Java)を使用して、
住所を検証する方法についてご紹介します。

住所を検証後、検証した結果のフィードバックを送ります。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Address Validation API(V1)] Javaで住所を検証する](https://qiita.com/doran/items/dd61bae1e674e8958a97)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[住所を検証](#1-住所を検証)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[検証結果をフィードバック](#2-検証結果をフィードバック)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|

## 1. 住所を検証
指定し

元記事を表示

JavaでLRUキャッシュの実装

# LRUキャッシュの実装

LRU (Least Recently Used) キャッシュは、最近使用されていないデータを優先的に削除することでメモリの効率を高めるキャッシュアルゴリズムです。これは、高度なシステム設計において、メモリとディスクストレージの間でデータアクセスの速度差を埋めるために使用されます。

## メモリとストレージの基本

– **メモリ (RAM)**:
– **速い**: データアクセスが非常に高速
– **小さい**: 容量が限られている
– **高い**: コストが高い
– **揮発性**: 電源を切るとデータが消える

– **ディスクストレージ (SSD)**:
– **大容量**: 容量が大きい
– **安い**: コストが低い
– **永続性**: 電源を切ってもデータが残る
– **遅い**: メモリに比べてデータアクセスが遅い

### 速さの違い

– **メモリ**: 非常に高速、例:50ナノ秒
– **SSD**: メモリより遅い、例:50マイクロ秒(メモリの1000倍遅い)

### キャッシュの必

元記事を表示

Javaのスレッドモデル:グリーンスレッドモデル・ネイティブスレッドモデル・M:Nモデル

## 前提知識
– Javaのスレッド処理にはJavaスレッドとOSスレッドの二種類が存在する
– Javaスレッド
– JVM内で生成されるスレッド
– java.lang.Threadクラスで生成する
– Javaスレッド自体は処理を実行しない
– OSスレッド
– OSが管理するスレッド
– Javaスレッドとマッピングされ、Javaアプリの処理を実行する

## グリーンスレッド
グリーンスレッドモデルでは、JavaスレッドとOSスレッドがN対1で紐づきます。
OS側が1なので、シングルコアCPUに適したモデルです。

Java 1.0がリリースされた頃、CPUはシングルコアの時代でした。

CPUのコア数については以下記事が一番わかり易いと思ってます。

https://www.pc-koubou.jp/magazine/23926

CPUのコアを厨房のシェフに例えると、
– クロック数・・・シェフ1人あたりの仕事の速さ
– コア数・・・シェフの人数
– スレッド数・・・シェフ1人が利用するコンロ数

と言えます。

## ネイテ

元記事を表示

テストコードの書き方分からんくなったのでまとめてみる(概要,Repository)

# 背景
久方ぶりにJavaとSpringを触る機会がやってきて、基礎的な所を忘れているなぁとか分からんなぁと思いながら騙し騙しやっています。

保守のしやすさを保つためにテストコード書けるのは必須だよなぁと思って勉強してたのですが、
まぁ色んな書き方のパターンがあって覚えきれないなぁと思ったのでこの際少しずつ勉強していこうかと思います。

# 参考書籍

– テスト構造
– ユニットテスト
– Repositoryのテスト
– (飽きちゃったので続きはまたそのうち別の記事でも)

# Springのテストサポート機能
Spring FrameworkやSpringBootではアプリケーションのテストをするときに役立つ機能(ユーティリティ,アノテーション)が用意されてます。
下記にあるように`spring-boot-starter-test`を導入すると様々なテスト系のライブラリを導入することができます。
https://spring.pleiades.io/spring-boot/docs/current

元記事を表示

[Google Address Validation API(V1)] Javaで住所を検証する

Google Address Validation API(V1)をJavaで使ってみました。
今回の記事はAPIを利用するにあたり準備する必要があるものを記事にしました。

***Address Validation APIとは***
デベロッパーは住所の正確性を検証できます。
住所が指定されると、解析された住所の各要素の正確性に関する情報、ジオコード、
解析された住所の配送可能判定の結果が返されます。

残念ながら執筆時点では[日本の住所には対応していないようです。](#3-対応している地域国)

|No|||目次|
|—|—|—|—|
|1|||[Address Validation APIを使用するための準備](#1-address-validation-apiを使用するための準備)|
||1||[プロジェクトの作成](#11-プロジェクトの作成)|
||2||[Address Validation APIの設定](#12-address-validation-apiの設定)|
||3||[APIを使用するためのキー取得](#13-apiを使用するためのキー取得

元記事を表示

(調査中)HttpClientおよびWebClientを使用して、メソッドの引数でHTTPメソッドを切り替える例

## HttpClientを使用した例

HttpMethodの引数で分岐する方法を示します。

“`java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

public class HttpClientExample {
public static void main(String[] args) {
HttpHeaders headers = new HttpHeaders();
hea

元記事を表示

Javaで「算術演算子」の動作を確認してみた

# 概要

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

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

# 実装

以下のファイルを作成しました。
“`JSample1_1.java
class JSample1_1{
public static void main(String[] args){
System.out.println(“10 + 4 = ” + (10 + 4));
System.out.println(“9 – 2 = ” + (9 – 2));
System.out.println(“3 * 8 = ” + (3 * 8));
System.out.println(“7 / 3 = ” + (7 / 3));
System.out.println(“7 % 3 = ” + (7 % 3));

System.out.println(“10.1 + 4.3 = ” + (10.1 + 4.3));
System.ou

元記事を表示

Javaの主要な繰り返し文

# Javaの繰り返し文まとめ

Javaには、繰り返し処理を行うための構文がいくつかあります。この記事では、主要な繰り返し文である`for`文、拡張`for`文(`foreach`文)、`while`文、および`do-while`文について
個人的なメモとして残します。

## 1. `for`文
`for`文は、初期化、条件判定、更新処理を1行で書ける繰り返し文です。最も一般的に使用されます。

### 基本構文
“`java
for (初期化; 条件; 更新) {
// 繰り返し処理
}
“`

### 使用例
以下の例では、1から5までの数字を出力します。
“`java
for (int i = 1; i <= 5; i++) { System.out.println(i); } ``` ## 2. 拡張`for`文(`foreach`文) 拡張`for`文は、配列やコレクションの要素を簡単に繰り返し処理するために使用されます。 ### 基本構文 ```java for (型 変数名 : 配列やコレクション) { // 繰り返し処理 } `

元記事を表示

[BigQuery API(V2)] JavaでBigQueryのジョブの実行をキャンセルする

BigQuery API V2(Java)を使用して、
BigQueryのジョブの実行をキャンセルする方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[BigQuery API(V2)] JavaでBigQueryを使う](https://qiita.com/doran/items/8b7ba29672527426e88d)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[ジョブの実行をキャンセル](#1-ジョブの実行をキャンセル)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. ジョブの実行をキャンセル
ジョブの実行をキャンセルします。

### 1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
“`
BigqueryScopes.BIGQUERY
BigqueryScopes.CLOUD_PLATFORM
“`
[

元記事を表示

M2 Mac で GATK をコンパイルしてみたった

## はじめに

[GATK](https://gatk.broadinstitute.org)とは、[ブロード研究所](https://www.broadinstitute.org/)が作成しているゲノム解析のためのツールの集合体である。「ブロード」は人名で、住宅建設会社[KBホーム](https://en.wikipedia.org/wiki/KB_Home)および年金会社サンアメリカの創業者である[エリ・ブロード](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%AA%E3%83%BB%E3%83%96%E3%83%AD%E3%83%BC%E3%83%89)さんが出資して作った研究所なのでこの名称になっている。特にHaplotypeCallerやMutect2などショートリードの変異の検出に使われているが、Picardのような汎用的なツールも含まれるる。

https://gatk.broadinstitute.org/

https://github.com/broadinstitute/gatk

コミット履歴によると、一人の巨人が

元記事を表示

[BigQuery API(V2)] JavaでBigQueryのジョブを生成・削除する

BigQuery API V2(Java)を使用して、
BigQueryのジョブを生成・削除する方法
についてご紹介します。

**ジョブとは**
データの読み込み、データのエクスポート、データのクエリ、データのコピーなど、
BigQueryがユーザーに代わって実行するアクションを指します。

ジョブ生成・削除には適切なIAM権限が付与されている必要があります。

権限付与に関しては
[⧉[BigQuery API(V2)] JavaでBigQueryを使う(2.権限付与)](https://qiita.com/doran/items/8b7ba29672527426e88d#2-権限付与)
を参照ください。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[BigQuery API(V2)] JavaでBigQueryを使う](https://qiita.com/doran/items/8b7ba29672527426e88d)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[ジョブを生成](#1

元記事を表示

Javaで「ラッパークラスの利用」の動作を確認してみた

# 概要

Javaで「ラッパークラスの利用」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/var/index13.html

# 実装

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

System.out.println(“i = ” + val);
}
}
“`

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

# まとめ

何かの役に立てばと。

元記事を表示

Spring Data RESTの要点と利用方法

# はじめに

Spring Data RESTというライブラリを仕事で利用することになりそうで、色々手を動かして調べた要点や利用方法についてまとめました。

# Spring Data RESTとは

[Spring Data REST](https://spring.pleiades.io/spring-data/rest/reference/)はSpring Dataのライブラリの一つであり、Spring Data RESTは、Spring Dataで作成したリポジトリをRESTfulなエンドポイントとして自動的に公開します。Spring Data RESTの機能を利用することによって、ControllerやServiceクラスの実装を省略する事ができるということです。

Spring Dataは様々なデータストアの特性や仕様を抽象化し、簡便なインターフェースを提供しています。例えば、RDBMSの場合、[JPA](https://spring.pleiades.io/projects/spring-data-jpa)を使用していれば、Entityクラスを定義し、そのEntityク

元記事を表示

実行時にコンソールから入力値を与える(Scanner,BufferedReader)(学習メモ)

### **コンソール画面で入力した値を扱う方法**

Javaでコンソールから自分で任意の値(文字や数字)を引き渡す。私が最初に覚えたScannerクラスとは別に、BufferedReaderというストリーム(Stream)というものもあるので使用例をメモ。

両方の使用例は以下のとおり。※どちらも入力はコンソール

~~~java:例1 Scanner使用例
import java.util.Scanner;
//中略
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print(“任意の値xを入力ください:”);
String xIn = scanner.next();
int x = Integer.parseInt(xIn);//String⇒int変換
System.out.println(“xの2倍は” + (x * 2));
}
~~~
~~~:結果
任意の値xを入力ください:3
xの2倍は6

元記事を表示

JSON処理2

“`
public static String processIfna(String key, String value) {
// keyの形式チェック
if (!key.matches(“.*IFNA:(\\d*|\\s*)/(\\d*|\\s*|\\*)”)) {
throw new RuntimeException(“500000エラー: ” + key + ” のIFNAパターンが不正です”);
}

String[] parts = key.split(“IFNA:”)[1].split(“/”);
if (parts.length != 2) {
// “IFNA:0/” のようなパターンを許容するための修正
if (parts.length == 1 && key.endsWith(“/”)) {
parts = new String[]{parts[0], “”};

元記事を表示

JSON処理

JSON処理
“`
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
public static void main(String[] args) throws Exception {
// JSON文字列の定義
String jsonString = “{\n” +
“\”apiVer1\”:\”$$(TEST_NO1)\”,\n” +
“\”apiver2\”:\”$$(TEST_NO2

元記事を表示

Spring Security を使用したプログラムにCSSを適用したい

# はじめに
Spring Security を使用したプログラムを作成しているのですが、CSSが適用されない!という問題に当たったので、解決法を備忘として残します。

# 問題点と原因の確認

### 問題と期待値
CSSが適用されない。。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726233/23d9c31f-51a2-ef88-45cc-d118a192c8d7.png)

こんな感じで表示したい!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3726233/a21a242a-8dff-e865-1c1d-4e6dc6631af5.png)

### 原因はこれだ!

Devtoolからネットワークを確認すると、CSSが302でリダイレクトされてるっぽい。
今回Spring Security でログイン済みか否かで見れるページを制御しているため、CSSもそれに引っかか

元記事を表示

未経験でエンジニアとして入社し、1ヶ月経ったので振り返る

初めまして。
2024年に入社し、晴れてエンジニアとしてキャリアをスタートしました。
早くも入社から1ヶ月が経ったということで、これまでの学習内容を振り返えるとともに、IT初心者におすすめの参考書や勉強法を紹介できればと思います。

# プログラミング学習で使用した教材
研修では、主に『プロになるJava』を使用していました。

## 『プロになるJava』
![プロJava.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3772948/034b8f6b-6719-3321-28a7-bb4474e8559e.jpeg “プロになるJava”)

>『プロになるJava』は、プログラミングを仕事にしたい、エンジニアとして働きたい方、およびほかの言語で開発しているがJavaも使えるようになりたいという方を対象に、Javaでプログラミングができるようになるための解説をわかりやすく丁寧に行います。
>(技術評論社 書籍概要より) https://gihyo.jp/book/2022/978-4-297-126

元記事を表示

OTHERカテゴリの最新記事