JAVA関連のことを調べてみた2023年09月23日

JAVA関連のことを調べてみた2023年09月23日

Javaで「度の単位の角度をラジアン単位に変換する」の動作を確認してみた

# 概要

Javaで「度の単位の角度をラジアン単位に変換する」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/math/index10.html

# 実装

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

System.out.println(Math.PI / (180 / angdeg));
System.out.println(Math.toRadians(angdeg));

double angrad = Math.toRadians(angdeg);

System.out.println(180 * angrad / Math.PI);
System.out.println(Math.toDegrees(angrad));
}
}
“`

以下のコマンドを実

元記事を表示

テンプレートメモ [リサーチ・メモ] Object Mapperの使い方

## 背景
社内でパラメータテストを行う際にObject Mapperが使用されていた為、使い方をメモとして残す

## Object Mapperとは
JavaのObjectとJson間の変換を簡単に行えるようにするJacksonライブラリーの一部

## 使い方
“`
ObjectMapper objectMapper = new ObjectMapper(); //インスタンスの生成

// JSONデータのシリアライズ(java→json)
MyObject myObject = new MyObject();
String jsonString = objectMapper.writeValueAsString(myObject);

// JSONデータのデシリアライズ(json→java)
String jsonString = “{\”name\”:\”John\”, \”age\”:30}”;
MyObject myObject = objectMapper.readValue(jsonString, MyObject.class);

“`

元記事を表示

messages.propertiesから日本語メッセージが取得されない

以下のエラーが発生しました。
No message found under code for locale ‘ja’

問題点としては、日本語用の`messages.prpoerties`ファイルに変更する必要があるため、`messages_ja.properties`としました。

それから、application.propertiesファイルに変更の有無を追記しました。

“`application.properties
spring.messages.basename=messages_ja
“`

ちゃんと日本語メッセージが表示されるようになりました。

元記事を表示

Spring Data JPA を利用中に思い付いたことのメモ

## 概要
Spring Data JPAを開発に使用していて気づいた、アイデアというほどでもない諸々のメモです。
陳腐化するのも早そうですが、自分の備忘用にも今後追記していくと思います。
念のため、対象になるバージョンも小見出しとして付記しておきます。

## `@Query`で頻出する句は文字列定数で管理する
###### ver.2.x
`@Query`はメソッド単位のため、同じ記述を複数のメソッドに行わなければならないケースが出てきます。
典型的な例が集計結果をProjectionでDTOにデータを格納する場合の`select new packages.DTO(…)`など。

そういう場合はクエリ用のヘルパークラスかDTOに文字列の定数として頻出句を定義してしまうのが良さそうです。Specificationを定義していたらその中も良さそうですね。
アノテーションに指定するクエリはその時点では文字列でしかなく、定数はIDEが内容を表示してくれるので確認も困りません。当然ながら、誤記の危険も減りますし、変更への対応も楽になります。

元記事を表示

JDBC勉強備忘録(Insert文)

## 備忘録目的
DAOに関しての自分が認識していることの確認と躓いたところや調査方法、仮定したことなど、過程を記録する。
(技術的なことはサイトのリンクを貼る)

## 環境
OS:macOS 12.5.1
IDE:Eclipse IDE for Enterprise Java Developers.
  Version: 2019-12 (4.14.0)
  Build id: 20191212-1212
DB:Ver 8.0.32 for macos12.6 on x86_64 (Homebrew)
クラスパス:mysql-connector-j-8.0.32.jar
その他:本文に追記

# 本文
## 値の設定
“`Java:/Sample_4/src/j4_02/Sample4_02_1_Common_DAO.java
//——————————————-
//SQL文の送信 & 結果の取得
//——————————————-

//発行す

元記事を表示

Javaで「三角関数に関する計算を行う」の動作を確認してみた

# 概要

Javaで「三角関数に関する計算を行う」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/math/index9.html

# 実装

以下のファイルを作成しました。
“`JSample9_1.java
class JSample9_1{
public static void main(String[] args){
System.out.println(“sin30° = ” + Math.sin(Math.PI / 6));
System.out.println(“sin45° = ” + Math.sin(Math.PI / 4));
System.out.println(“cos60° = ” + Math.cos(Math.PI / 3));
System.out.println(“cos45° = ” + Math.cos(Math.PI / 4));
System.out.println(“tan60° = ” + Math.tan(Math

元記事を表示

[GCP] Workflows機能x実装

# GCPのWorkflowsについて

GCPのWorkflowsは、タスクの実行と制御のための単純で柔軟な実行環境です。このサービスを使用することで、異なるサービスやAPIの呼び出しや、条件に基づいた制御フローの定義が可能。

## 機能

### 1. ワークフローの定義と制御

GCPのWorkflowsでは、YAML形式でワークフローを定義することができる。この定義には、各タスクの手順と条件、依存関係などを設定する。また、複数のタスクを直列に実行したり、並行して実行したりすることもできる。

### 2. サードパーティのAPIとの連携

Workflowsは、様々なサードパーティのAPIとの連携をサポートしている。RESTやgRPCで公開されたAPIを使用する場合、タスクとして呼び出しを追加することができる。また、自動的に再試行やエラーハンドリングを行ってくれるため、信頼性の高いAPI呼び出しを簡単に実現することができる。

### 3. 高度な制御フロー

Workflowsでは、条件に基づいた処理や反復処理を簡単に定義することができる。たとえば、ある条件が成立した場合の

元記事を表示

Spring Securityでログイン機能の実装中に起きた循環参照エラーについて (DIやDIコンテナについて解説あり)

|目次|
|—|
|[初めに](#初めに)|
|[循環参照エラーについて](#循環参照エラーについて)|
|[DIやDIコンテナについて](#diやdiコンテナについて)|

初めに

これは、Spring Securityを使用したログイン機能の実装を勉強していた時に発生しました。以下のサイトを見ると似たようなところで躓いている人が多いようです(私もその一人(〃ノωノ))。今回は実際に自分が起こした循環参照のエラーを例にその対処法について解説したいと思います。

https://shiron-program.hatenablog.com/entry/2022/08/13/003608

https://qiita.com/TaikiTkwkbysh/questions/3d6e8f28174c3dfcb755

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11277744801

循環参照エラーについて

元記事を表示

ミッションクリティカルなJavaアプリケーションのためのBrowsium Catalyst vs CheerpJ in Chrome

![Browsium-Vs-CheerpJ-1024×578.png.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486144/901a5961-6aad-7501-1b5d-093a3e862cdc.jpeg)
来月、Microsoftは長寿ブラウザであるInternet Explorerのメインストリームサポートを終了する意向であり、Windows 11上のIE11デスクトップアプリケーションは無効になる。

しかし、一部のアプリケーション、特にJavaアプレットをベースとしたアプリケーションは、インターネットエクスプローラーでのみ確実に動作し、Chrome Enterpriseユーザーは[GoogleのLegacy Browser Support (LBS)](https://support.google.com/chrome/a/answer/9270076?hl=en)を介してこれらのコンテンツにアクセスします。
![1Chrome-LBS-Infographic-4-300×157.pn

元記事を表示

ABC320A~Eの解答[Java]

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

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

## A – Leyland Number
問題文は[こちら](https://atcoder.jp/contests/abc320/tasks/abc320_a)

for文で愚直に求めました。
“`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( Sy

元記事を表示

ABC319A~Eの解答[Java]

## はじめに
今回のは所用で出られなかったので後日解いたものをEまで載せようと思います。

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

## A – Legendary Players
問題文は[こちら](https://atcoder.jp/contests/abc319/tasks/abc319_a)

改行を全部空白に直してsplitして全探索しました。
“`A.java
final class Main {

private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner( System.in );
private static final SimplePrinter out = ne

元記事を表示

ABC318A~Eの解答[Java]

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

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

## A – Full Moon
問題文は[こちら](https://atcoder.jp/contests/abc318/tasks/abc318_a)

一回以上見られるかどうかで場合分けして解きました。
“`A.java
final class Main {

private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner( System.in );
private static final SimplePrinter out = new SimplePrinter

元記事を表示

JDKのインストール

# はじめに
JDKをインストールした時のログです。

https://docs.oracle.com/en/java/javase/20/install/installation-jdk-linux-platforms.html#GUID-ADC9C14A-5F51-4C32-802C-9639A947317F

以下のOracle Linuxにインストールします。

“`
$ cat /etc/oracle-release
Oracle Linux Server release 8.8
“`

# ダウンロード

ここでは`/usr/java`配下にインストールします。
“`
$ sudo su –
# mkdir /usr/java
# cd /usr/java/
“`

以下のサイトから環境に合ったバイナリーをダウンロードして、展開します。

https://www.oracle.com/java/technologies/downloads/

“`
# wget https://download.oracle.com/java/21/latest/jdk-21

元記事を表示

Java の SSLSocket 生成時に Underlying socket is not connect. が発生する

### 背景

* Socket から SSLSocket を生成しようとした際、はまった。
* つまらないことだった・・・・。

### 解決

* `new Socket()` をした後に、`socket.connect` を実行しなければならない。
* `new Socket()` しただけでは接続されないから、そりゃあ接続できないエラーが出ますわな….

元記事を表示

Java 21新機能まとめ

Java 21が2023/9/19にリリースされました。
https://mail.openjdk.org/pipermail/jdk-dev/2023-September/008267.html
[The Arrival of Java 21!](https://inside.java/2023/09/19/the-arrival-of-java-21/)

LTSであり、パターンマッチングや仮想スレッドが正式化され、プレビューとして入ったString Templatesや無名クラス&インスタンスメインメソッドも面白い機能なので、大切なリリースになっていると思います。

詳細はこちら
[JDK 21

元記事を表示

Javaで「乱数を生成する」の動作を確認してみた

# 概要

Javaで「乱数を生成する」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/math/index8.html

# 実装

以下のファイルを作成しました。
“`JSample8_1.java
class JSample8_1{
public static void main(String[] args){
for (int i = 0 ; i < 10; i++){ System.out.println((int)Math.ceil(Math.random() * 5) + 5); } } } ``` 以下のコマンドを実行しました。 ``` $ javac JSample8_1.java $ java JSample8_1 6 10 9 8 7 10 6 7 7 8 ``` # まとめ 何かの役に立てばと。

元記事を表示

突然Apache JMeterの独自サンプラのプラグインを作って負荷試験する必要になったときに読む記事

# 対象読者

– Apache JMeterを使った負荷試験の計画を練っている最中、既存のサンプラだけでは不十分な状況に陥ったので、独自のサンプラをサッと書きたい。
– Javaはなんとなく読み書きできるけど詳しくない。Javaのビルド設定の仕方が分からない。

# この文章について

Apache JMeterで独自サンプラをJavaでサッと書くための手順を説明します。Javaに詳しくない人向けの文章であるためビルド設定などを重点的に説明します。

JMeterのサンプラの内、**JavaSampler**向けのプラグインを記述します。

## 手順

### 1. InteliJ IDEAのインストール

普段Javaを書かない方、Javaの統合開発環境である[InteliJ IDEA](https://www.jetbrains.com/ja-jp/idea/)をインストールしましょう。無償版と有償版があります。(筆者はJetBrainsのAll in packを購入していますが、無償版でも充分かと思います。)

以下、IntelliJ IDEA 2023.2.2を前提に記述

元記事を表示

Spark on k8s 概要と機能

## Spark on k8s 概要と機能

Apache Sparkは、大規模データ処理のためのオープンソースのクラスター分散処理フレームワーク。Spark on Kubernetes(通称Spark-Kubernetes)は、Kubernetes上でSparkアプリケーションを実行するための専用の機能セット。以下にSpark-Kubernetesの概要と主な機能を詳しく説明する。

### Spark-Kubernetesの概要

Spark-Kubernetesは、SparkアプリケーションをKubernetes上で実行するための統合プラットフォームであり、以下のような特徴を持っている。

– クラスターマネージャーの代わりにKubernetesを使用してSparkアプリケーションをデプロイ、管理、スケジュールする。
– Kubernetesのリソースマネージャーとしての機能を利用して、Sparkのタスクスケジューリングとリソース割り当てを行う。
– Kubernetesクラスタ上で複数のSparkアプリケーションを同時に実行し、異なるアプリケーション間でリソースを共有する。

元記事を表示

Java Silver勉強メモ

# 最初に

Java Silver 勉強のメモを記していきたいと思います。
間違いなどありましたら教えていただけると幸いです。
随時更新していきます。

## 同名のローカル変数とフィールドがある場合

同名のローカル変数とフィールドがある場合、this を使ってフィールドであることを明記しないとローカル変数が優先されます、
そのため下記では test メソッドを実行しても num フィールドの値は変更されません。

“`java
public class Main {
private static int num;
// static初期化子
static {
num = 10;
}
static {
num = 20;
}

static void test(int num) {
num = num * num; // ここで参照しているnumは引数のnum
}

public static void main(String[] args) {
test(

元記事を表示

デザインパターン Compositeパターン

# Compositeパターン
ツリー構造のオブジェクトを階層の深さに関わらず一律に扱うためのデザインパターン。

個々のオブジェクト(葉、**リーフ**、Leafと呼ばれる)と複合オブジェクト(複合、**コンポジット**、Compositeと呼ばれる)を同一視し、クライアントが両者を同じように扱う。

ツリー構造を構成する要素は**ノード**、Nodeと呼ばれ、子要素を持たない要素をリーフ、Leafと呼ぶ。

**Iteratorパターン**を内部で使用することで実現する。

## 透過性
透過性とは、コンポーネントが他の部分に対して内部の実装を隠し、簡潔で使いやすいインターフェースを提供することを指す。

Compositeパターンでは、クライアントは扱う対象がノードなのか、リーフなのかを意識しなくて良い(クライアントからは見えない=透過)。

+ **情報の隠蔽(Information Hiding)**
内部の実装、データ構造などの詳細部分を他のコードから隠蔽すること。外部に対しては、必要な情報だけが公開され、内部の実装の変更が外部に影響を与えないようになる。

+ **インタ

元記事を表示

OTHERカテゴリの最新記事