JAVA関連のことを調べてみた2021年08月30日

JAVA関連のことを調べてみた2021年08月30日
目次

[Java基礎①]サイコロを作る(ランダムな値の出力)Math.random() 型変換/変数の定義

初めに

今回はJavaでサイコロを作りつつ、Javaでの変数の定義方法を
学んでいきます。

コード

“`
public class Main {
public static void main(String[] args) {
double rand = Math.random() * 6 + 1;
int number = (int)rand;
System.out.println(“サイコロの目は” + number + “です。”);
}
}
“`
これを実行するとランダムに「サイコロの目は◯です。」と表示されます。

“`double rand = Math.random() * 6 + 1;“`
doubleで変数の型を宣言しています。
“`doubleは、小数点以下の数値です。“`

続いて、“`Math.random()“`はランダムな数を出力するメソッドです。
“`* 6 + 1“`は、何個の数字を取り出すか(6)、いくつからスタートするのか(1)を表します。
今回の場合1〜6と言うことです。

元記事を表示

【実践!Java】Stream APIをちゃんと理解する

# ■ Stream APIとは
Stream APIは、Listや配列を簡単に操作することができるイテレーションの拡張API。
例えば、for文でListから条件に合う値を取得する処理などはStream APIを使うことでよりシンプルに書くことができる。

大きく分けて以下の3つの操作を行う。
➀ Streamを生成

➁ 中間処理(省いてもOK)

➂ 終端処理

# ■ Stream生成
配列からストリーム生成

“`
Arrays.stream(配列のdata)
“`
listからストリーム生成

“`
list.stream()
“`

mapからストリーム生成

“`
map.entrySet().stream()
“`

# ■ 終端処理

生成したストリームを集計し、結果を返す処理。
簡単な処理であれば中間処理を省いて終端処理だけで実装できるため、先に紹介。

## 代表的なメソッド

| メソッド | 概要 |
|:————|:————: |
| anyMatch() | 少なくとも一つの要素でtrueとなる

元記事を表示

Spring Data JDBCで1対多テーブルを結合して取得する方法

#はじめに
Java言語初学者ですが、SpringBootフレームワークを使用してSQLを操作する際に、
1対多のテーブルを結合した結果を取得する方法でハマったため、
1対1のテーブル結合の方法と、1対多のテーブル結合の方法を比較したメモとして残します。

#環境
|OS|version|framework|使用環境|
|:—:|:—:|:—:|:—:|
|windows10|Java11|spring boot|Spring Tool Suite 4|
・Java11でSpring Data JDBCを使用できる状態
・動作するデータベース用意済み
・1対多の関係でテーブルを2つ作成済み
・テーブルにデータを格納済み

※今回の説明では「clabs」、「members」で記載します。

※また今回はテーブル結合方法の説明の為必要最低限の記載だけします。(importなどは省略)

#1対1のテーブルを結合して取得する方法
1対1のテーブルを結合してデータを取得する際は以下の方法を使用します。

※1対1のテーブル説明の為、1つのクラブには1人しか入れないこととします。

元記事を表示

HerokuにGitでHelloWorldをデプロイする②[SpringBoot]

今回は、前回作成したHelloWorldをHerokuにデプロイします。
前回→[HerokuにGitでHelloWorldをデプロイする①[SpringBoot]](https://qiita.com/kiki_202181/private/de4c0aab5713b478f04e)

#環境
+ OS : Windows10
+ Git : 2.32.0
+ Heroku : 7.53.0
+ eclipse
+ Spring Boot(thymeleaf,Maven)

#前提条件
+ Gitをインストール済み
+ Herokuに登録済み
+ Heroku CLIをインストール済み

#コマンドプロンプトを開く
前回作成したHelloWorldをHerokuを開いてください。
そして、フォルダのパスが書いてあるところに、`cmd`と入力し、Enterキーを押してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1832699/00f5166b-e470-6eed-dce4

元記事を表示

HerokuにGitでHelloWorldをデプロイする①[SpringBoot]

#環境
+ OS : Windows10
+ Git : 2.32.0
+ Heroku : 7.53.0
+ eclipse
+ Spring Boot(thymeleaf,Maven)

今回、GitHubと連携はしていません。

#前提条件
+ Gitをインストール済み
+ Herokuに登録済み
+ Heroku CLIをインストール済み

#Hello Worldのコードを準備する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1832699/967b66bd-5e24-6fee-f567-ce52abf156be.png)

GitHubで公開もしています。

https://github.com/kiki202181/HelloWorld

##Spring スターター・プロジェクトを作る
ファイル>新規>Spring スターター・プロジェクト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

Java16で追加されたDateTimeFormatterクラスの書式設定”B”について

# はじめに
Java16でDateTimeFormatterクラスの書式設定に “B” (period-of-day)が追加されました。
以下のドキュメントには意味として period-of-day 、例が in the morning とあるだけでよくわかりません。

https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/time/format/DateTimeFormatter.html

そこで、この書式設定 “B” について実機確認とソースから調べました。

# 実機確認

各時刻で書式設定 B を指定したときにどのように変換されるかを確認。
## 確認用ソース

“`java:TestPreiodOfDay.java
import java.time.format.DateTimeFormatter;
import java.time.LocalTime;

public class TestPreiodOfDay {
public static void main(S

元記事を表示

Eclipseを使ったtwitter4Jの環境構築メモ

Twitter APIをJavaで動かしたいと思い、twitter4Jに出会いました。
ここに、環境構築やデバッグ時の操作についてメモを残します。

動作環境
– Windows10
– Java11
– Eclipse IDE
– twitter4J 4.0.7

#環境構築
何はともあれTwitter APIの登録を。https://developer.twitter.com/en
Consumer API keys, Access token & access token secretを取得しておきましょう。

次に、twitter4Jのダウンロード。http://twitter4j.org/ja/index.html#download
適当なディレクトリに解凍しておきましょう。

Eclipseのインストール方法は省きます。

**プロジェクト作成**
Javaプロジェクトを作成します。ここでは、TestTwitter4Jという名前にしました。
![01_project.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

Java初心者に超オススメ出来るUdemy動画講座7選まとめ。最速マスター特化

初心者にオススメ出来るJava関連のUdemy動画をまとめました(タイトルの通りです)。
オススメ度は私の主観なのであしからず。

## 【 5日でできる】はじめての Java プログラミング入門
おすすめ度:★★★★★
・[【 5日でできる】はじめての Java プログラミング入門](https://px.a8.net/svt/ejp?a8mat=3BBPJR+AVRCOQ+3L4M+BW8O2&a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fcourse%2F10daysjava%2F)
### この講座で学べる内容
・Javaプログラミングの流れ、実行の仕組みについて理解できる
・Javaプログラミング環境を自分のPC上に作れるようになる
・統合開発環境(Eclipse)を導入し、効率よく開発ができるようになる
・オブジェクト指向プログラミングの概念を理解できる
・Android StudioをインストールしてAndroidプログラミングを体験できる
## 【Java サーブレット( Servlet )決定版】ゼロから環境構築~設計モデルま

元記事を表示

[WIP] Java テストコード

# 概要
Javaのテストコードの基本について纏めます。

# テストコード考え方
* 取れない値はモックを用意 (例:API,DBなど)
* Boolを返すファンクションに対して何も値をセットしない場合falseを返す
* モックで値がなんでも良い場合any()を利用
* targetsで実際のファンクションをコール

元記事を表示

[WIP] IntelliJ IDEA 便利機能 for Mac

# 概要
IntelliJ IDEA 便利機能について纏めます。

# ショートカットキー
**import**
– option + enter

**複数行コメントアウト**
– コメントアウト該当行を選択 → Command + /

元記事を表示

【STS(SpringToolSuite)初学者必見】STS(Spring Tool Suite)が、PC再起動 or シャットダウン後、PC起動した後使えなくなる

##某プログラミングスクール卒業生の備忘録

どうもお久しぶりです!今回は

__か__
__な__
__り__

しんどかったことを投稿したいと思います(ほんと原因究明までしんどかったです。。。笑)

それでは早速行ってみましょう!

##STS(Spring ToolSuite)が起動しなくなった!?

そうなんです。再起動、もしくはシャットダウン後、PC起動時に使えなくなりました。。。

そのダイアログが

__「アプリケーション”SpringToolSuite4”を開くためのアクセス権がありません。」__

といったダイアログでした(写真を載せたかったんですが、ちょっと無理みたいです笑)

Spring Boot学習中に起きたことで、勉強どころじゃなくなりまして。10時間ほど無駄にしました。

Spring系のコンテンツは、英語のものばっかりなので、同事象が起きた場合はぜひ参考にしてください。
(Springだけじゃなくても、PC内アプリが同じことが起こったらぜひ参考に。)

##環境

Mac Book Pro
  ーシリコンのやつではないです。
SpringToolSui

元記事を表示

DBUnit + spring-test-dbunit を複数スキーマMySQLで使う設定

## 概要

SpringBoot環境でDBUnitを使う際、spring-test-dbunitを使うとアノテーションで指定するだけでデータベースのセットアップとアサーションができて便利ですね。

spring-test-dbunitは2021年8月現在最終コミットが2016年となっていて、残念ながら更新は完全に止まってしまっているのですが、まだそこそこ使われているようです。

ここではDBUnit + spring-test-dbunitを複数スキーマ切ってあるMySQLで使う際の問題について扱いますので、導入などは他の記事を参考にしてください。

## 問題

ひとつのDBにテスト用のスキーマと検証用のスキーマがある等、複数スキーマの環境でDBUnit + spring-test-dbunitを使うとAmbiguousTableNameExceptionが起きて困りました。

(特に制約がなければテストで使用するDBをH2などのインメモリDBにすればこのような問題は起きないしそうしたいところですが…)

スキーマは指定しているのですがどうやら正しく処理がされていないようです。

元記事を表示

JOOQ3.15に上げるとSpring Bootが起動しない

2021/8/28現在、Spring BootとJOOQ 3.15を組み合わせるとDSLContextのインジェクションに失敗するようになりました。

“`
Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.
2021-08-28 08:51:20.130 ERROR 10463 — [ main] o.s.b.d.LoggingFailureAnalysisReporter :

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in com.example.securingweb.UsersController required a bean of type ‘org.joo

元記事を表示

Java SE 11勉強ノート

# 基本

以下の本で勉強した際の勉強ノート。

なぜJavaはOSに依存しないのか

<目次>
・「 OS に依存する」とは

##◆ 「 OS に依存する」とは
 OS によって動作が異なる(動くか動かないか含め)ということを指します。「 Java がOS に依存しない」とは、どの OS でも同じく正常に動作する、ということです。

では Java はどのような特徴により依存しないようになっているのでしょうか?
~~依存しないための条件として、以下3つが挙げられます。~~

~~① OSがその言語をサポートしていること~~
~~② その言語で行いたい処理を、各OS上でサポートされている範囲内で書くことができ、期待通りの動作が行えること~~
~~③ その言語で書いたプログラムのコンパイル結果がOS独自に定義されており、各OS上で再コンパイルしないで動作させることができること~~

【 2021-08-29 追記(訂正)】

Java では JVM(Java仮想マシン)と呼ばれる仮想マシン(ソフトウェア)が、各OSの違いを吸収するという役割を果たしています。

Java で作成されたプログラムは、実行前にコンパイラと呼ばれる言語プロセッサがソースファイル(.java)か

元記事を表示

UJIタグで作れる物集

#ujiタグとは
ujiタグとは、**Webcoodinator**が提供している**JSP用**のタグです。このujタグを利用することで、**アプリケーションの動作を制御したり、HTMLので描写する画面部分を作成**することができます。
今回は、ujiタグを使って、画面部分を作成する方法について、簡単に説明していきたいと思います!
##ujiタグで作成できる画面部分
ujiタグを使って、様々なものを作成することができますが、以下のものを作成する方法について、説明していきたいと思います!
・表:2次元の表を作成します。
・ツリー:木構造のテータを段下げして表示させます。
・リスト:単純な繰り返しです。
・条件:条件によって、表示内容を変更します。
・複合Bean:データBeanの繰り返しを待っている際に、データBeanの各項目を参照します。

ujiタグでは、画面部分をインターフェースしたデータBeanを使用して、作成していきます。
意味が分からないという方もいらっしゃると思いますが、ゆっくり説明していきます!

###表
まずは、TableModelをインターフェイスしたデータBea

元記事を表示

マルチスレッドで動作するマイクラサーバーがあるというので試してみる

[Chiyogami](https://github.com/Be4rJP/Chiyogami)という、[Paper](https://github.com/PaperMC/Paper)をフォークしたマルチスレッドに対応するサーバーソフトがあるというので試してみました。

#ビルド
サーバーのjarファイルはそのまま落とせず、各自ビルドして利用するようになっています。
https://github.com/Be4rJP/Chiyogami にて日本語による解説があるのでそちらを参考に。

### 利用するサーバーのバージョンに対応したBranchを選ぶ

現在は[1.15.2](https://github.com/Be4rJP/Chiyogami/tree/ver/1.15.2)、[1.16.5](https://github.com/Be4rJP/Chiyogami/tree/ver/1.16.5)、[1.17.1]
(https://github.com/Be4rJP/Chiyogami/tree/ver/1.17.1)の3つが用意されています。
今回は1.17.1を選択。

#

元記事を表示

AWSのEC2インスタンスでAmazon Correttoを用いてJDK16を導入する

とあるサーバー向けソフトウェアでJava16を必要とする事があった。
すでにAmazon Corretto 8を用いてJDK8がインストールされていたが、
AmazonLinuxならAmazon CorrettoというOpenJDK互換のソフトウェアが簡単にインストールとバージョン切り替えが可能なのでその方法を説明する。
この記事ではAmazon Corretto 16のインストールについて解説するが、Corretto 8については次の記事を参考にしてほしい。→[AWSのEC2インスタンスでAmazon Correttoを用いてJDK8を導入する](https://qiita.com/honahuku/items/e5464bb3b102710b555a)

# 環境
“`
AWS EC2 t4g.medium ARM AmazonLinux2
JDK 1.8.0_302 がインストール済み
“`
今回はARM版のAmazonLinux2を利用しているが、x86でも手順はほぼ同様だと思われる。

# インストール
今回はyumからインストールを行う。rpmからマニュアルでインストー

元記事を表示

Javaでシリアル通信するためにRXTXライブラリを使ってCOMポートを開いた

###あらまし

先日こんなことがあった

https://qiita.com/Rmecan/questions/066befcf0e7b700b3d42

解決したので報告

まず本プロジェクトの環境周りを
プログラムはほぼ触らずに新しいパソコンへ移植というお仕事

– Windows 7 32bit -> Windows Server 2016 64bit
– Java6 -> Java8
– シリアル通信で外部機械との通信あり、シリアル通信には`RXTX-2.1-7`というライブラリを使っている

次に起きた問題

“`Java
// RS232Cポートをオープンする。この処理を実行すると
CommPortIdentifier RSport = CommPortIdentifier.getPortIdentifier(“COM1”);
“`
“`Java
// このエラーになる。( rxtxParallel.dll と rxtxSerial.dll を見つけられませんだって )
> java.lang.NoClassDefFoundError: no rxtxSerial

元記事を表示

AWSのEC2インスタンスでAmazon Correttoを用いてJDK8を導入する

とあるサーバー向けソフトウェアでJava16を必要とする事があった。
AmazonLinuxならAmazon CorrettoというOpenJDK互換のソフトウェアが簡単にインストールとバージョン切り替えが可能なのでその方法を説明する。
この記事ではAmazon Corretto 8のインストールについて解説するが、Corretto 16については次の記事を参考にしてほしい。→[AWSのEC2インスタンスでAmazon Correttoを用いてJDK16を導入する](https://qiita.com/honahuku/items/36e83367f6acac9947c8)

# 環境
“`
AWS EC2 t4g.medium ARM AmazonLinux2
Javaは未インストール
“`
今回はARM版のAL2を利用しているが、x86でも手順はほぼ同様だと思われる。

# インストール
今回はyumからインストールを行う。rpmからマニュアルでインストールする方法はこちら→[AWSのマニュアル](https://docs.aws.amazon.com/corretto/lat

元記事を表示

OTHERカテゴリの最新記事