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

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

【Java】String型と数値型の型変換をまとめてみた

#プログラミング勉強日記

#本題
String型 → int型
Integer.parseInt();
Integer.valueOf();

String型 → byte型
Byte.parseByte();
Byte.valueOf();

String型 → short型
Short.parseShort
Short.valueOf

String型 → logng型
Long.parseLong();
Long.valueOf();

String型 → float型
Float.parseFloat();
Float.valueOf();

String型 → double型
Double.parseDouble();
Double.valueOf();

数値型 → String型
String.valueOf();

int型 → String型
Integer.toString();

byte型 → String型
Byte.toString();

short型 → String型
Short.toString();

long型 → String型
Long.t

元記事を表示

Quarkus – Creating Your First Application  やってみた

AWS Lambda などの Function-as-a-Service (FaaS) に投入する関数を Java で書こうと思って調べたところ、Quarkus (クォーカス) という、Java でマイクロサービスを作るのに適したフレームワークがあると知ったので、試してみました。

一応サーバーが起動するところまで到達できましたが、Quarkus をこれから使いたいという方に役立つ情報というよりは、新技術を試すときにありがちな試行錯誤の記録です。一般に、うまくいった事例だけが記事になって残る傾向があり、新技術にトライする際のトラブルにどう立ち向かうか、あるいはいつ立ち向かうのをやめるかということは記事になることが少ないと思います。今回は、一つの事例として公開させていただきます。

Quarkus の Creating Your First Application で示されているアプリをビルドすることにだけ関心があるという方は、[GraalVM で再度試す](#graalvm-%E3%81%A7%E5%86%8D%E5%BA%A6%E8%A9%A6%E3%81%99)の節だけ参考にしてい

元記事を表示

Java 小テスト① 〜if 編〜

これは友達向けのJavaの小テストです。
Java初心者の文法腕試しでお使いくださいー!!

今日はif文の小テストを作りたいと思います!

第1問:ミスを探し, 動く状態を作りなさい。

“`java
public static void main(String[] args) {
int grade = 90;

if grade >= 90 {
System.out.println(“秀”);
} else if grade >= 80 & grade < 90 { System.out.println("優"); } else if grade >= 70 & grade < 80 { System.out.println("良"); } else if grade >= 60 & grade < 70 { System.out.println("可"); } else {

元記事を表示

文字列連結時、大量の場合➡効率について

文字列連結時、大量の場合➡効率について、以下は参考になります。

“`sample.js
//効率悪い例:
  detail += “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”;
  detail += “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”;
  detail += “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”;
//改善例:
  detail += “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”
+ “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”;
+ “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”

元記事を表示

Javaで学ぶアルゴリズム 第7弾:乱数

# #Javaで学ぶアルゴリズム < 乱数 >

##はじめに
Javaは授業で触れただけで全くの初心者であり,何もわかっていない.なので,基本的なアルゴリズムをJavaで実装し,アルゴリズムの理解を深めるとともに,Javaにも慣れていきたい.
その第7弾として乱数を扱う.

##乱数
意味としては無作為に得られるランダムな数値であるが,コンピュータ言語にある乱数発生ライブラリはすべて**擬似乱数**と呼ばれる計算によって求められる乱数である.ここでは,その発生方法の仕組みや,評価も実装を通して学ぶ.なお,その2つは**一様乱数(線形合同法)**と**ボックス・ミュラー法**である.

##一様乱数(線形合同法)
一様乱数の説明を示した後,実装を行う.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/07267cdc-100d-ac9a-0ff8-4a8131695a1b.png)

####実装
以下にソースコードとそのときの出力を示す.
#####ソースコード: 一様

元記事を表示

Javaで String (文字列) を昇順 (asc)・降順 (desc) にソートする

#はじめに:

##やりたいこと
文字列 (String) をソートしたい。
・ “627118” -> (昇順) -> “112678”
・ “627118” -> (降順) -> “876211”
・ “Hello World” -> (昇順) -> ” HWdellloor”
・ “Hello World” -> (降順) -> “roollledWH ”

#考察

## 昇順ソート
・これはすんなりいった。「やったこと」 の”StringSortAsc”を参照ください。
 String => char[] => Arrays.sort() => New String()

## 降順ソート
・一旦 String を char [] にして

“`
// char 配列に変換
char[] charArr = str.toCharArray();
“`

・Arrays.sort の第2引数に Collections.reverseOrder() を渡す

“`
import java.util.Collections;

Arrays.sort(charA

元記事を表示

intellijでdoma2の実装クラスが自動生成されない場合の解決法

## 概要
通常doma2ではinterfaceを実装してbuildするとその実装クラスが自動で生成される。
しかしintellijのbuildボタン(緑のボタン)でbuildを行う場合、この自動生成が行われず、DBからのデータ取得に失敗する場合がある。

自分含めまわりで何人かハマっている人がいたのでその際の解決法を記載

## 原因と解決法
preference/Build,Execution,Deployment/Build tools/Gradle
でintellijのbuildボタンで行う処理が設定できる。
ここの
“`Build and run using: “`

がデフォルトではGradleになっているが、既存ファイルを開いた時にIntellij IDEAになっている事があり、その場合はdomaクラスが自動生成されない。

その場合は画像のようにデフォルトのgradleに戻してから再起動すればdoma実装クラスが自動生成できる様になっているはず
![スクリーンショット 2021-01-15 17.45.36.png](https://qiita-image-sto

元記事を表示

【エラー】tomcat8080は使用されています

## tomcatでやらかした話
tomcatを初めて触ったとき、コンソールで起動して、eclipseでも起動して、このエラー出しました。

それまでRailsをやってたので、localhostはコンソールで起動するものって思い込んでた:baby_tone1:

テキストエディタから起動できるなんて発想がなかったし、他の言語やってるとそれに囚われがちって気づきました。

## 解消方法
####①コンソールで起動していたtomcatを停止させる

– macのコマンドは[こちら](https://qiita.com/okapie/items/f3d66552bc1533e7af44)から

→eclipseでサーバーを実行出来たらよし:thumbsup:

#### ②裏で動いてるtomcatを停止させる
1.Macのターミナルから「lsof -i:8080」と入力する

2.PIDに記載されている数字を確認する
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
      ****     
     ココ!

3.ターミナルに「

元記事を表示

DatePickerDialogとSQLite

DatePickerDialogを用いた日付取得とSQLiteへの連携について

GitHubを見にきてください。

元記事を表示

【エラー】unknown column ‘~’ in ‘field ~’

## エラー
DBにデータを保存したいのに出来ない…
コンソールを確認したところ下記のエラー:eyes:

“`
unknown column ‘question_id’ in ‘field list’
“`

## 原因
question_idは、questionsテーブルの中にあるのに、correct_answersって書いてた…:baby_tone1:

“`
String sql = “INSERT INTO correct_answers (question_id, answer, created_at, updated_at) values (?,?,current_timestamp(),current_timestamp())”;
“`

## まとめ
記事少ないと思ったらこんなヘナチョコミスかよ。
もうこんなミスしたくない:hugging:
今後同じエラーがでた時のためにも備忘録。

①データベースエラーだったらまずDBに関わる部分全部確認すること
・DAOのSQL文、Beanのカラム名、DBのカラム名が同じか
・DAOのSQL文のテーブル名間違ってないか

元記事を表示

FileMaker ServerからJDBCで検索する

ある案件でFileMaker Server上のデータを検索するプログラムを開発する機会があり、その備忘録として以下に記します。

## FileMaker Serverの構築
環境を汚したくないので、Vagrant+VirtualBoxでゲストマシンを作成し、バージョン19で新登場したLinux版をインストールします。

|ソフト|バージョン|
|—|—|
|FileMaker Server|19.2.1.23|
|Vagrant|2.2.14|
|vagrant-hostmanager|1.8.9|
|VirtualBox|6.1.18|
|CentOSイメージ|centos/7 (virtualbox, 2004.01)|

### ゲストマシンの作成

“`ruby:Vagrantfile
def read_ip_address(machine)
command = “ip a | grep ‘inet’ | grep -v ‘127.0.0.1’ | cut -d: -f2 | awk ‘{ print $2 }’ | cut -f1 -d /”
resul

元記事を表示

Java PDF をTIFFに変換

Spire.PDF for Javaを使ってPDF をTIFFに変換することができます。そして、文書のページと指定するページだけをTIFFで保存することができます。

下準備

1.E-iceblueの公式サイトからFree Spire.PDF for Java無料版をダウンロードしてください。

f:id:lendoris:20210224144116p:plain

Java PDF をイメージで保存

      

今回はJavaでPDF をイメージで保存する方法を紹介します。Spire.PDF for Javaを使ってJpeg, Jpg, Png, Bmp, Tiff, Gif, EMFといった形式に変換することができます。今日はPNGを例にあげて説明しましょう。

下準備

1.E-iceblueの公式サイトからFree Spire.PDF for Java無料版をダウンロードしてください。

f:id:lendoris:20210224144116p:p</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>PDF</div>
<div class='tag-cloud-link'>イメージ保存</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/iceblue/items/ad9b2598f7bd91250c13'>元記事を表示</a></div>
<h3 id=【エラー】Parameter index out of range

## エラー
DAO,Beans,Servletを作成し、JSPを表示しようとしたところ、JSPが表示されなかった。コンソールを確認したところ下記のエラーを発見:eyes:

“`
Parameter index out of range (4 > number of parameters, which is 3).
“`

## 原因
パラメーターが4つあるのに、`?`が3つしかなかった:sweat_drops:

“`
String sql = “INSERT INTO questions (question_id, answer, created_at, updated_at) values (?,?,?)”;
“`

## まとめ
パラメーターと`?`は同じ数用意しよう:point_up:

記事が少なくて時間を浪費してしまったので備忘録。こんなミスするの私くらいだろう。

## 引用
[java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 0)
]

読書計画

#背景
あるレビューアーさんを余所目で見ていて、この人ちゃんときちんとした本を読んでないな
って思ったことから・・・そんなにJavaの本て名著はいくつもないので・・・
読んでおくに越したことはないなと思って・・・・私の本当に主観ですが・・・
私も読んでないです。理由は読んでも吸収できなかったので・・・
この人、ここから来てるなっていうのは別にいいかなと思います。
アジャイル本読んでても所詮っていうのは、別にいいかなって読まないよりはいいような気がする。
#読書計画
##基本
【電子合本版】Code Complete 第2版 完全なプログラミングを目指して
→ 上巻だけでもね。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
Effective Java 第3版
##実力
JUnit実践入門 ── 体系的に学ぶユニットテストの技法 WEB+DB PRESS plus
##案件用
JavaによるRESTfulシステム構築
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
##教養
人月の神話

SpringBootで一括更新を実現する

## 概要
* 以下動画の機能を実現する

![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/148710/0fbf7a78-fca2-6a96-6a2b-2e264b3ad880.gif)

## 機能説明
* 同じ画面の中でボタンをクリックすると閲覧モードと編集モードが切り替える
* 更新ボタンを押下すると複数件のデータを同時に更新する

## 開発環境
* Windows 10
* Spring Tool Suite 4 Version: 4.8.1.RELEASE
* JavaSE-11
* MySql 5.8
* Thymeleaf 3.0.12

## 事前準備
Mysqlにcountryテーブルを作成する

“`sql:country
CREATE TABLE `country` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`countryKbn` varchar(10) NOT NULL,
`countryName` varc

SpringBootで二つの 2つのドロップダウンリストを連動させる方法

## 概要
* SpringBoot + thymeleaf + mysqlでWebアプリケーション開発時、二つの 2つのselectBoxを連動させる方法を紹介します。

## 機能
* ひとつ目のドロップダウンリストの都道府県により、2つのドロップダウンリストの値は該当県の市区町に変わる。

## 開発環境
* Windows 10
* Spring Tool Suite 4 Version: 4.8.1.RELEASE
* JavaSE-11
* MySql 5.8
* Thymeleaf 3.0.12

## 事前準備
Mysqlに都道府県と市区町のテーブルを作ってデータを登録する

都道府県テーブルを作成する

“`sql:create_pref
CREATE TABLE `pref` (
`prefCode` int(11) NOT NULL,
`prefName` varchar(50) NOT NULL,
`disFlag` int(11) DEFAULT ‘1’,
PRIMARY KEY (`prefCode`)
) ENGINE=InnoDB

あらためてJavaを学習する(その0)

1〜2年前にJavaを学習してから、最近はJavaScript(Node.js)やAWSといった学習がメインでJavaからは久しく離れてました。
最近Java知識が必要になる可能性が出たので、簡単に復習がてら学習を行おう!と思った次第。その備忘録として記事にしています。Qiita初投稿です。

その0では主にJava言語についてと環境構築、Hello Worldをコンソールに表示するまでの内容がメインです。

## Javaの特徴
* OSに依存しない(OS非依存)
* オブジェクト指向
* 静的型付け言語
* JVMによるメモリ管理

※C言語(1972年) → C++(1983年) → Java(1996年) の順番で登場している

## Java実行までの流れ
OS非依存を実現しているのがJava Virtual Machine(`JVM`)
人間が書いたり読んだりできるコード(`高級言語`)は機械側では理解できない。
(機械が理解できるのは0と1の羅列で構成された機械語)

C言語やJava言語といった高級言語を機械語に翻訳することを`コンパイル`と呼ぶ。
また、上記のコンパイ

Ehcache(3系)のメモ

# Ehcaheとは
* Javaにおける定番のキャッシュライブラリ
* key-value型のデータ構造
* データの持ち先としてメモリ(ヒープ、ヒープ外)やファイルを選ぶことができる
* この記事の執筆時点の最新版は3.9.1
* 「Ehcache」でググって上位に出てくる日本語の記事はメジャーバージョンが古いことが多い…(APIは大きく変わっている)

# 使い方
## インストール
MavenなりGradleなり、お好きなビルドツールで依存を設定しましょう。
https://mvnrepository.com/artifact/org.ehcache/ehcache/3.9.1

## 基本的な使い方
とりあえず公式ドキュメントをもとに適当に書いたソースをペタリ。

“`java
import org.ehcache.Cache;
import org.ehcache.CacheManager;

import static org.ehcache.config.builders.CacheConfigurationBuilder.newCacheConfiguratio

CentOS8 に OpenJDK15 をインストールしたときのメモ

CentOS8 に OpenJDK15 をインストールしようとしたとき、yum では LTS Version しかインストール出来ませんでした。(2021/02/23 時点)
インストール方法をググってもパッと出てこなかったので、手順をメモしておきます。

rpm をダウンロードしてインストールするのが簡単そうでした。
CentOS8 の rpm は pkgs.org よりダウンロード出来ます。

OpenJDK の rpm は下記からとってこれます。
https://pkgs.org/download/java-latest-openjdk

OpenJDK をインストールする前に依存ライブラリが必要そうで、下記から取得します。
https://pkgs.org/download/java-latest-openjdk-headless

wget で ダウンロードして dnf でインストールします。(2021/02/23 時点)
(URLは変更になるので、上記ページの Binary Package のURLから最新を落としてください)

“`
wget https://dow