JAVA関連のことを調べてみた2022年01月27日

JAVA関連のことを調べてみた2022年01月27日

Intellij Unit テスト実行方法

1, 直接Junit の設定をして、テスト実行するパターン

1, intellij の右上、からedit configuration 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239544/adf9889e-ebfe-b403-58ec-34730baca361.png)

2, 設定を以下のように。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239544/e623008c-5f24-ec26-f481-553ef96a68d5.png)

3, 緑三角の実行ボタンをクリック。

他のパターン

2, gradle ツールから実行するパターン

Tasks > verification > test をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239544/2

元記事を表示

VsCodeの拡張機能「Remote-Containers」を利用してコンテナ上で「plantuml」を実行するための設定

#VsCodeの拡張機能「Remote-Containers」を利用してコンテナ上で「plantuml」を実行するための設定
業務端末で拡張機能を入れる場合、利用申請が必要になるがコンテナ上であれば申請がいらないということなので、その設定ファイルをメモとして残しておく。
動かすことを目的としているため、設定項目が理想的かどうかは要確認。

“`devcontainer.json
{
“name”: “myjava”,
“dockerComposeFile”: “docker-compose.yml”,
“service”: “workspace”,
“workspaceFolder”: “/var/sample_sandbox”,
“settings”: {
“editor.tabSize”: 4
},
“shutdownAction”: “stopCompose”,
“extensions”: [
“jebbs.plantuml”,
“vscjava.vscode-java-pack”
]
}
“`

“`docke

元記事を表示

Java初心者に向けた基本事項メモ

Javaには色々ルールがあるため、ここに備忘用として残していきたい。

・変数の命名規則
キャメルケースで記載するのが基本?(スネークケースは好まれない?)
例えば、赤い飴を変数として宣言するときは
`red_candy`
ではなく
`redCandy`
といったような記載をすると良い。

・変数の型が混同した際の仕様
double型とint型を混ぜるとdouble形に吸収される。
入力:
`double a = 12.5;`
`int b = 5;`
`System.out.println(a + b);`
出力:
`17.5`

String型とint型を混ぜるとString形に吸収される。
入力:
`String c = “テスト”`
`int b = 5;`
`System.out.println(c + v);`
出力:
`テスト5`

・for文の仕様
次の周に進む。
`continue;`
for文を打ち切る。
`break;`

・拡張for文
以下の記載にすることで、配列やリストといった複数の値を持つ箱?の中身を全て回してくれる。
`for(データ型 変数名: 配列や

元記事を表示

Javaを使用してWordをHTMLに変換する方法

この記事では、JAVAプログラムのDocument.saveToFile()メソッドを使用してWord文書をHTML文書に変換する方法を紹介します。コードを編集する前に、次の環境構成を参照して、jarパッケージをインポートしてください。

##プログラム環境
IntelliJ IDEA 2018(jdk 8.0)
テストドキュメント:Word 2013(.docx)
Jarパッケージ:**[Free Spire.Doc for Java 3.9.0](https://www.e-iceblue.com/Download/doc-for-java-free.html)**

次はjarをインポートする方法です。

jarパッケージをローカルにダウンロードして解凍し、ローカルのlibフォルダーにあるSpire.Doc.jarをJavaプログラムにインポートします。手順は次のとおりです。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/abe5b983-ad8e-6c1f-6776-67

元記事を表示

【合格】Java Silver(Java SE 8 Programmer I)勉強方法

職業訓練校でJavaをせっかく学んだので、形にするために受験しました。受験料が高すぎて(26600円)個人的には全然薦めてないです。自分が受験したときは8でしたが、現在は11にバージョンアップされています。そして、受験料がなんかさらに上がったような…?

[Java SE 11 Programmer I (1Z0-815-JPN) 試験 | Oracle University](https://www.oracle.com/jp/education/certification/1z0-815-jpn-48261-ja.html)

# 受験状況
– 勉強期間:1か月程度
– 使用教材:[徹底攻略 Java SE 8 Silver 問題集[1Z0-808]対応(=黒本)](https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5-Java-Silver-%E5%95%8F%E9%A1%8C%E9%9B%86-1Z0-808/dp/4844339931)
– 費用合計:30100円
– 黒本:3500円

元記事を表示

Databricks上でのJAR(Javaなど)の実行方法

JavaをDatabricks上のSpark環境で実行する方法について説明します。

DatabricksのSparkランタイム(Databricks Runtime)は、

* 最新のSparkバージョン対応・最適化機能の享受
* OSS Sparkにはない高速化機能/拡張機能
* C++ベースのSparkエンジン(Photon)の高速化ランタイム
* インフラ管理・ソフトウェア/脆弱性管理などからの解放

などの特徴があり、コードはほぼそのままで、Databricks上に実行環境を移すだけで、実行速度の向上、それに伴う、費用削減などが見込めます(もちろんケースバイケースになります)。

# Databricks上でのJARの実行方法

以下のステップになります。

1. JARファイルアップロードする
1. Jobの作成
1. Jobの実行と結果の確認

ここでは、前半でWeb UIを使用した方法に関して説明し、その後、CLI(コマンドライン)で実施する方法を説明します。

## 1. JARファイルのアップロード

JARをDatabricks上で実行するには、JARファイル

元記事を表示

Javaを使用してWordのタイトルを読み取る方法

##概要
人々がWordを使ってレポートまたは論文を編集している時、タイトルが使用されるのはごく普通のことです、特定のニーズにより、それらを従って適応されるため、「スタイル」のオプションでWordのタイトルをすばやく設定できます、以下の画像のように。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/bdb47169-4916-843e-bfb8-b82199296ff1.png)
ディレクトリを追加する場合、「有効スタイル」を「ディレクトリレベル」に設定することができます。ある程度で言えば、タイトルアウトラインをディレクトリとして使用することもできます。
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/decf0f8f-7a33-f4c1-1cbf-cb8253436119.png)

この記事では、バックエンドのJavaプログラムコードを介してWordのタイトルコンテンツを取

元記事を表示

Java Silver SE11 6章

# Java Silver SE11 6章
[黒本](https://www.amazon.co.jp/gp/product/4295007625/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)をもとに学んだことをアウトプットしていきます。
主に問題を解いていて、間違えた箇所もしくは知らなかった内容になります。

## クラス・インスタンス
JVMによりハードディスクに保存されているクラスファイルが読み込まれ、メモリ上にインスタンスを展開する。

“`java:Itemクラス
public class Item {
public String name;
public int price;

public void printInfo() {
System.out.println(name + “, ” + price);
}
}
“`

“`java:Mainクラス
public class Main {
public static void main(String[] args) {
Item ite

元記事を表示

無料クラウドサービスでJupyter Labを使ってみる ~Miniconda導入編~

## Google Cloud ShellでのMinicondaによる活用方法

### Minicondaとは?

前回の投稿から引き続きJupyter Lab(以下Lab)の導入をメインに解説します。

https://qiita.com/Q-Lazy/items/bd7dacf1d8e865d57a94

今回は[CloudShell](https://console.cloud.google.com/)に導入済みのPython環境ではなく、別途[Miniconda](https://docs.conda.io/)でPythonを導入して、Labをインストールします。

まずMinicondaとは何か? ベースとしてGUIを備えたフルセット版の[Anaconda](https://anaconda.org/)というPythonディストリビューションがあり、パッケージマネージャや仮想環境の機能を有しています。
そのAnacondaをテキストベースの環境向けにチューニングした、小型で軽量のサブセットがMinicondaという位置付けになります。

CloudShellはユーザーが使え

元記事を表示

React + Spring Boot での画像投稿

#はじめに
ReactとSpring Boot + Chakra UIでアプリケーション開発を行おうとしており、
その過程で画像投稿機能を組み込む予定なため学んだことを備忘録として記載します。

#React
“` NewUser.tsx
return (
<>




名前:

元記事を表示

【初心者向け】 interfaceのシンプルな使用例

## 概要
「結局インターフェースって何なの?」
Javaを勉強し始めた人の大多数が抱く疑問かと思います。
そんな新規Javaユーザーを苦しめるinterfaceを簡単な文法のみでまとめてみました。

### 実際に書いてみましょう
経験談にはなりますが、記事だけ読んでいても身につくものでは無いと思います。
この記事は簡単なコードのみで解説しているので、読み終えた後などコードをコピペして遊んでみてください。
(実際にコピペする際はFormater、Printer、Mainをそれぞれ別のファイルに保存してください。)

## 使用例

“`java:Formater
public interface Formater {

public String format(String string);
}
“`
さてさて、何やらフォーマットしてきそうなインターフェースが現れました。
そうです。このFormaterインターフェースは文字列を成形するメソッドを持ちます。
※interfaceを初めてみたよって人も臆さず読み進んでみてね。

“`java:Printer
public cl

元記事を表示

リーダブルコードのまとめ。 1/2

リーダブルコードを読み終わったので、内容をまとめます。

## 【第一部-表面上の改善】
### 2章-名前に情報を詰め込む

– 変数名には、その目的が分かるような明確な単語を選ぶ。例えば、get~という変数をもっと具体的に、fetch~やdownload~とする。
– tmpやnumなどの汎用的な名前はできるだけ避ける。
– メソッド名やクラス名は短いコメントのようなものである。このクラスやメソッドは何をするクラスなのか、一目でわかるような名前にする。
– 変数名に大切な情報を追加する。例えば、ミリ秒を表す変数名には _msをつける。
– 変数名のスコープが大きい場合、長い名前を付ける。1単語や2単語だと、その変数が何を表しているのかとても分かりづらくなってしまう。
– ローカル変数とグローバル変数を区別できるよう、変数に印をつける。例えば、グローバル変数には一番最初に_(アンダーバー)をつけるなど。

### 3章-誤解されない名前

– 意図が伝わるような名前を選ぶ。例えば、filterという名前は「選択する」という意味にも解釈できるし、「除外する」という意味にもとれる。「選

元記事を表示

【OOP】06_抽象化

こんにちは、コイキングです。

本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、抽象化について、説明したいと思います。

******

# 1. 抽象化とは?
現実のオブジェクトから核心的な事、共通的な事、繰り返している事を抜き出す事と言えます。

“ジムで運動する事”を用いて、例えてみると、
ある人はスクワットラックでスクワットで足の運動をするし、ある人はスミスマシンでデッドリフトで背中の運動を、ある人はベンチでベンチプレスで胸の筋肉を鍛えるでしょう。

上記の運動する人の共通点を抜き出してみると
運動器具 (スクワットラック、スミスマシン、ベンチ)から
適切な運動方法(スクワット、デッドリフト、ベンチプレス)で
特定の身体(足、背中、胸)を鍛えています。

また、核心的な行為を抜き出してみると’運動する’になります。

Javaでは上記のような抽象化作業を手伝うツールとして、抽象クラスとインターフェースがあります。
以下の例示コードは抽象クラスとインターフェースを用いて、”ジムで運動する事”を抽象化し

元記事を表示

RPG(ロールプレイングゲーム)作りで使いどころを解説するGoFデザインパターン23種類

まえがき

昨今においては、書籍や動画学習サイトなどにおいて、プログラミング言語の初心者の方に対して、RPG(ロールプレイングゲーム)の作り方を例に出して、プログラムの書き方を解説することが定番化しています。

誰でもとは言わずとも、多くの方にとって、子どもの頃に親しんできた身近なモチーフで、頭にスーッと入りやすいという大きなメリットがあります。

そこで、プログラミング学習者にとって鬼門の一つである、GoFのデザインパターンを23種類、全部、RPGの作り方の例だけで、説明してみようというのが、本記事の試みです。

23パターン

Iteratorパターン

RPGでは、「やくそう」や「たいまつ」、「鉄の剣」などアイテム(道具)を荷物袋(リスト)の中選んで、使ったり捨てたり、あるいは、手に入れたりなどの操作をすることがあります。

例えば、十字キーで操作するタイプのゲームの場合、下ボタンを押すと、次のアイテムが選択されることが一般的です。

RPGで要素を選択するのは何もアイテムだけではありません。戦闘になれば攻撃するターゲットや呪文な

元記事を表示

StAX XML Parser には StAX2 Woodstox を使う (Java/Kotlin)

Java や Kotlin などの JDK 開発環境で、XML をパースする選択肢として StAX パーサーがあります。

# 要約

StAX Parser は XML ファイルを詳細に解析したいケースで便利です。

JDK 標準の StAX Parser よりも、[StAX2 Woodstox](https://github.com/FasterXML/woodstox) を使用することをお勧めします。

# XML Parser の選択肢

JDK 標準(外部ライブラリ不要で使える)の XML Paresr は以下のものがあります。

| 種類 | 特徴 | class |
| — | — | —|
| DOM (Document Object Model) | XML をツリー構造で処理する | org.w3c.dom.Document
javax.xml.parsers.DocumentBuilder |
| XPath (XML Path Language) | XPath 文字列で XML 要素にアクセスする | org.w3c.dom.Documen

元記事を表示

【Java】コンストラクターについて

簡単にまとめました。

## コンストラクターとは

– インスタンス化のタイミングで呼び出される特殊なメソッド
– コンストラクターではメンバー変数の初期化など、事前処理系を記述するのが一般的

とりあえず、以下サンプルコードを実行します。

“`java
public class Person {
public String name;
public int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

public Person() {
this(“えんどうゆうき”, 27);
}

public void show() {
System.out.printf(“%s(%d歳)です。\n”, this.name, this.age);
}
}
“`

“`java
public class ConstructorBasic {

public static void main(String[]

元記事を表示

ECSとStep Functionsで並列分散バッチ処理を行う

## はじめに

現状ではジョブ管理システム(JP1 等)+EC2で実装しているバッチ処理を、サーバレスにしてリソースコストや運用コストを抑えたいと思い、勉強のためECSやStep Functionsを触ってみました。

ECSのドキュメントや各種記事等を読んで調べた結果、メインのバッチ処理はJavaアプリをECS(Fargate)上でコンテナ実行することとし、Step Functionsで定期実行や並列実行を制御する構成を試すことにしました。主な理由は以下となります。

– 既存バッチ処理のJava資材をなるべく流用したい **→ Javaアプリ**
– 入力1ファイルあたりのデータ量がそれなりに大きい想定のため、Lambdaでは15分タイムアウトに引っかかる可能性がある **→ ECS**
– 長くて数時間の日次ジョブの想定であり、実行中以外のリソース利用料金発生を避けたい(EC2のメンテナンスも面倒) **→ Fargate**
– ECS単体だとリトライや並列化の制御は難しそう **→ Step Functions**

ぶっちゃけ今回試した程度の処理内容なら、Sparkで書い

元記事を表示

PipedOutputStream を使ってオーディオをストリームで扱う

PublicClodなどの音声認識サービスにおいてSDKで実装しようとするとインターフェースとしてInputStreamとなっている事があります。
byte[] で扱いたい場合にはPipedOutputStream/PipedInputStreamを使うと実装の幅が広がったりします。

“`java
import static java.lang.System.out;

import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.TargetDataLine;

p

元記事を表示

解決!!AtCoder ABC234 D java クリア!!

##解決しました!
java初心者のヤスです!
AtCoder ABC234 D をようやっと解決しました!

どこでつまづいて、どうやって解決したかをまとめています。
問題はこちら↓

https://atcoder.jp/contests/abc234/tasks/abc234_d

##つまづいたところ
・split()でわざわざ全部読み込んでいた。
・配列とListの多様
・StringBuilder知らなかった。
・そもそもの考え方

##いまだにイマイチわからんこと
・平衡二分探索
・log回の概念

###split()でわざわざ全部読み込んでいた。

“`java:java
String[] NK = sc.nextLine().split(” “);
int N = Integer.parseInt(NK[0]);
int K = Integer.parseInt(NK[1]);

//中略

int numlist[] = Arrays.stream(sc.nextLine().split(” “)).mapToInt(Integer::parseInt).toA

元記事を表示

Java – How to Configure Log4j2 Properties File?

# Console Logging
“`
log4j2.properties
# Extra logging related to initialization of Log4j
# Set to debug or trace if log4j initialization is failing
status = warn
# Name of the configuration
name = ConsoleLogConfig

# Console appender configuration
appender.console.type = Console
appender.console.name = consoleLogger
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %m%n

# Root logger level
rootLogger.level = debug
# Root logger referring to console appender
rootLo

元記事を表示

OTHERカテゴリの最新記事