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

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

Spring Boot(Spring MVC)利用時のTest構成メモ

# 前書き
普段、何気なくSpring Boot(Spring MVC)のテストを設計・実装してるのですが
初心「そういえば我々、今どんなTest構成なんだっけ?(特に、利用ブラウザ)」を忘れがち。

関連クラス辿ったので、備忘しておくもの。

# 前提
[公式Doc1](https://spring.pleiades.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing-spring-boot-applications-testing-with-mock-environment)や[公式Doc2](https://spring.pleiades.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing-spring-boot-applications-testing-autoconfigured-mvc-tests)に則って、自動構

元記事を表示

【JAVAについてまとめてみた】配列とList、ときどきMap

#はじめに
今回はjavaの配列についてまとめてみました。
配列は大量のデータを扱うときに使用します。
意外と奥が深い配列のみんな。
そんなみんなの生態にせまっていきます。

##1.配列

“`java:宣言の仕方
String[] list = new String[2];
“`
“`java:初期値指定
String[] list = {“hello”,”world”};
“`
“`java:その他の処理まとめ
list.length; //配列のサイズ取得
list[0] = “hello”; //要素の挿入
list[0]; //要素の取得
“`
大体こんな感じですかね。
始めの宣言時にサイズを指定する必要があります。
その後はサイズを増やしたり、減らしたりは基本できないっす。(固定長)
##2.List

“`java:宣言の仕方
List list = new ArrayList();
“`
“`java:初期値指定
List list = new ArrayList(Ar

元記事を表示

arc(),ellipse(),rect() だけでできるガチャピンプログラミング

こんにちは!青山学院大学 古橋研究室 所属の神田洋輔と申します。
普段は研究室での活動をmediumへ投稿しております。ですのでQuiitaへの記事投稿は初めてです!
そんな記念すべき第一回目の記事は、ガチャピンプログラミングです!!

#なぜガチャピン?
んん?・・・
ガチャピンプログラミングとはなんぞや?…
そう「ガチャピンの顔をプログラミングで書いてみよう!」と、ただシンプルにそれだけです笑
なぜこんなにシンプルかというとそれは私自身プログラミング超初心者だからなのです笑
そしてなぜガチャピンかというところですが、古橋研究室は2015年より、「みんなの防災+ソナエ」プロジェクトでガチャピン・ムックと一緒に子どもたち向けの災害ドローン体験会を行っており二人とはそのようなrelationshipがあるのです。
そして今回研究室内で行われたハッカソンのテーマが「ガチャムクハッカソン」だったということです。私はデジタルファブリケーションの観点からものづくり部代表として取り組みました。

#つくりかた
つくりかたはとってもとってもシンプルです。今回使用した関数はarc() 弧、el

元記事を表示

H2Database テーブルが見つからないエラー (Spring boot)

##環境
MacOS Big Sur 11.1
STS 4-4.9.0
Spring Boot 2.4.2
Java 11
H2database 1 .4.200
Maven 4.0.0

##状況

H2DatabaseはJVM環境で動くデータベース。
非常に軽量でJavaのテスト開発では重宝される。
JVM内部にデータベースを設置する埋込型と、指定されたパスにデータベースファイルを設置し保管するローカル型がある。

今回はデータを永続化させるためにローカル型のH2の設定をしていた。

####ファイル

エントリポイント

“`Java
package com.example.h2test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframew

元記事を表示

Javaで学ぶアルゴリズム 第5弾:モンテカルロ法

# #Javaで学ぶアルゴリズム < モンテカルロ法 >

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

##モンテカルロ法
モンテカルロというのは,「モナコ公国の首都モンテカルロ」であり,そこはギャンブルの街として有名である.数値計算のような方法ではなく,乱数を用いた一種の欠けのような方法で問題を解くことからモンテカルロ法と名付けられた.以下に例を示して,その方法を学ぶが,基本は非常にシンプルで,たくさん点をプロットして所望のところにどれだけの点がプロットされたかというのを基に答えを得るというものである.ここでは,$\pi$を求める例と楕円の面積を求める例を示す.

####例①:πを求める
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/a4508e05-fc49-c2c3-3452

元記事を表示

Java + Jackson Databind で JSON 日時文字列とオブジェクトを相互変換する

## 概要

– Java + Jackson Databind で JSON の日付・時刻を表す文字列と Java オブジェクトを相互変換するサンプルコードを示す
– 環境: Java 15 (AdoptOpenJDK 15.0.2+7) + Jackson Databind 2.12.1 + Jackson datatype: JSR310 2.12.1 + Gradle 6.8.2 + macOS Catalina

## サンプルコード

### ファイル一覧

“`
├── build.gradle
└── src
└── main
└── java
├── Sample.java
└── SampleData.java
“`

### build.gradle

“`groovy
plugins {
id ‘application’
id ‘java’
}

sourceCompatibility = JavaVersion.VERSION_15

application {
main

元記事を表示

JAVAのデータ型や変数について

#はじめに
今回はJAVAのデータ型や変数について書いていきたいと思います。
##変数
変数はデータを入れる箱になります。データを入れたり、出したりできます。
変数名をつけて、データ型を定義する必要があります。
クラス変数とかインスタンス変数とかあったりするのですが、今回は割愛します。

“`java:定義の仕方
// 基本型
int num = 0;
char character = ‘a’;
// 参照型
String hello = “helloWorld”;
int[] numList = {1,2,3};
“`

##【データ型】基本型(プリミティブ型)と参照型

###基本型(プリミティブ型)
| データ型名| 入る値 |
|:-:|:-:|
| byte | 8ビット整数 |
| short | 16ビット整数 |
| int | 32ビット整数 |
| long | 64ビット整数 |
| float | 32ビット単精度浮動小数点数 |
| double | 64ビット倍精度浮動小数点数  |
| boolean | true か

元記事を表示

eclipseを使ってSpringBootでHello World

##流れ##

* eclipseのインストール
* SpringBootプロジェクトの作成
* Hello Worldを表示

##eclipseのインストール##
eclipseをここからインストールします
→https://mergedoc.osdn.jp/
リンクを開いたら、バージョンやOSなどを選択して、インストールします。
今回は、Eclipse2020 → Java Windows64bit Full Editionを選択し、Downloadをクリックしました。

ダウンロードが完了したら、解凍します。
zipファイルの解凍には、7-Zipを使用してください。
今回は、Cドライブ直下に解答しました。

pleiadesというフォルダが作成されます。
これでeclipseのインストールは完了です。

eclipseを起動してみます。
pleiades\eclipse\eclipse.exeを起動します。
(ショートカットをデスクトップ等に作成しておくと便利です)
起動すると、ワークスペースのディレクトリ—選択という画面が表示されます。
このワークスペースの中に、ソースフ

元記事を表示

Circle CIでの自動デプロイ(SpringBootアプリケーション)のためのconfig.yml

“`yml
version: 2 # バージョンは「2」とする
jobs: # 実行するタスクの定義
build: # ビルドする内容をいかに記述
working_directory: <アプリケーションのルートディレクトリ>

docker: # Dockerの設定
– image: circleci/openjdk:11-stretch # Dockerfileの「From」に記述したベースイメージ

steps: # 実行するコマンドを以下に記述

– checkout:
path:

– restore_cache: pom.xmlが変わった時の差分を取得
key: portfolio-{{ checksum “pom.xml” }}

– run: mvn dependency:go-offline # プロジェクトのdependencyを取得する

– save_cache: # プロジェクトのdepende

元記事を表示

Javaで学ぶアルゴリズム 第4弾:ランダムな順列

# #Javaで学ぶアルゴリズム < ランダムな順列 >

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

##ランダムな順列
順列とは並びである.ここでは,$1$~$N$までの値をランダムに並べた順列を生成するアルゴリズムについて,最悪のアルゴリズムとそれの改良版を学び,最適な順列生成についての理解を深める.

##最悪のアルゴリズム
以下に方法を示す.これは,$N^2$オーダーの繰り返しを行う効率の悪い方法である.ここでは,$1$~$6$の値を例に扱う.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/0483d264-abbe-3368-84b8-f41194184995.png)
この方法では,範囲内の乱数を得て,リストにないものを取り入れていくという**無作為な抽出**のような方

元記事を表示

Spring Boot Actuatorで開発の効率化を図ってみた

Springで開発していると裏側で登録されている情報を確認したくなることが多々あります。
ちゃんと意図通りにコンポーネントスキャンされてBeanが登録されているか、プロパティの設定値が登録されているか…などなど知りたいことがたくさんです。
デバッグ用にログ出力させる、なども一つの手ですがなかなか面倒に感じてしまうと思います。

そんなときにオススメなのが**Spring Boot Actuator**です。
今回はじめて使ってみて便利だと思ったので、備忘録として投稿しました。

## Spring Boot Actuatorとは?

Spring Bootで提供されている監視や管理、また開発時にも役立つ情報を取得することができます。
アプリケーションに組み込むことでHTTP/JMXから取得が可能です。
情報を取得するためのエンドポイントや細かな設定は[リファレンス](https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html)にズラッと記載されています。

#

元記事を表示

Effective Java(第3版)の個人的なまとめ【項目1】 コンストラクタの代わりにstaticメソッドを検討する

Effective Javaを学んだ個人的なまとめです。

#### 結論
インスタンスの生成や利用を考えるときに、コンストラクタの利用を無意識に考えるのではなく、staticファクトリメソッドも検討に入れよう。

コンストラクタを利用する場合と比較してどのようなメリットとデメリットがあるのか。

#### ? メリット
#####1.名前を持つことができる
コンストラクタはクラス名と同じであるため、任意の名前を持つことができない。staticメソッドの場合は、メソッドなのでその動作にあった名前をつけることができるためわかりやすい
#####2. インスタンスを生成する必要がない
キャッシュしているインスタンスの再利用をすることで不用意なインスタンスの生成を防ぎ、計算量、処理量を減らすことができる。(GoFデザインパターンのシングルトン)
#####3.任意のサブタイプのオブジェクトを返すことができる
#####4.返却するオブジェクトを入力によって変えることができる
コンストラクタと異なり、戻り値を任意に定められるため、型にあった任意のオブジェクトを返却することができる。
####

元記事を表示

Javaでファイルやディレクトリのタイムスタンプを変更したい。

Javaでファイルやディレクトリのタイムスタンプを変更したい場合`Files.setLastModifiedTime`を利用すると便利です。たとえば指定のファイルのタイムスタンプを現在時刻にしたい場合は以下のようなコードになります。

“`java
FileTime now = FileTime.from(Instant.now());
Path file = Paths.get(“/path/to/file”);
Files.setLastModifiedTime(file, now);
“`

`Files.setLastModifiedTime`の第2引数には時刻を指定します。Javaで時間や日付というと`Date`や`Calendar`や`LocalDateTime`あたりをよく利用しますが、ここでは`FileTime`というあまりなじみのないものを利用することに注意する必要があります。

__環境情報__

“`
$ java -version
openjdk version “11.0.3” 2019-04-16
OpenJDK Runtime Environment

元記事を表示

【Java】MapをListに変換する方法

#はじめに

本記事ではMapをListに変換する2通りの方法をアウトプットします。

#Listを直接生成する方法

“`java
Map TopBillionaires = new LinkedHashMap<>();
TopBillionaires.put(“$195bn”, “Elon Musk”);
TopBillionaires.put(“$185bn”, “Jeff Bezos”);
TopBillionaires.put(“$134bn”, “Bill Gates”);
TopBillionaires.put(“$102bn”, “Mark Zuckerberg”);
TopBillionaires.put(“$88.2bn”, “Warren Buffett”);
TopBillionaires.put(“$81bn”, “Sergey Brin”);

List keyList = new ArrayList<>(TopBillionaires.keySet());
List

元記事を表示

AutoCompleteTextViewにフォーカスを当てたままキーボードを非表示にする

## AutoCompleteTextViewとは

キーボードによるインプットに対して、自動で文字を補完してくれる機能を備えもったEditTextのことです。

通常、Googleの[マテリアルデザインガイドライン](https://material.io/develop/android/components/menu)に則ったドロップダウンメニューを作成する場合は以下のような実装をします。

***res/layout/dropdown_menu.xml***

“`xml
Javaでビンゴマシーン作ってみた

目的

 本記事の目的はビンゴマシーンの作成です。
数の出る規則性はJava.util.Randomをそのまま使います。
しかし、これだけでは同じ数が数回表示されてしまうのでそういった点を工夫しました。

下記にソースコードがあります。
https://github.com/T1210Taichi/BingoMachine.git

元記事を表示

JDK 1.0 (Java 1.0.2) を入手したので、GitHub に置いておきました。

(この記事は [地平線に行く](https://yujisoftware.hatenablog.com/entry/2021/02/12/225501) とのマルチポストです)

JDK 1.0 (Java 1.0.2) を入手したので、GitHub に置いておきました。
https://github.com/YujiSoftware/JDK1.0

なんと、Windows 10 上でも動きます。
あと、[src.zip も展開して置いた](https://github.com/YujiSoftware/JDK1.0/tree/master/src) ので、GitHub 上で読めます。

Java 考古学者のみなさま、ぜひご活用ください!

# 入手の経緯

前々から Java 1.0 を触ってみたいなーと思っていたのですが、Oracle の [Java Archive](https://www.oracle.com/jp/java/technologies/oracle-java-archive-downloads.html) にはなぜか Java 1.1 以降しか置いてありませんで

元記事を表示

JAVAの条件分岐についてまとめてみた

#JAVAの条件分岐についてまとめてみた
今回はJAVAの条件分岐についてまとめてみました。
##1.IF文
“`if..文
if(条件式){
 実行処理
}
“`
一番シンプルなやつです!
条件式に「num > 1」みたいな式を書いて、「true」だったら処理を実行します。

“`if..else文
if(条件式){
 実行処理1
}else{
実行処理2
}
“`
elseが増えましたね。
条件式が「false」だった場合は、実行処理2の方が実行されます。

“`if..else.if文
if(条件式){
 実行処理1
}else if(条件式2) {
実行処理2
}else{
実行処理3
}
“`
また、一つ増えました。
一つ目の条件式が「false」だったら、二つ目の条件式で判定し「true」だった場合に実行処理2が実行されます。
全部「false」だった場合に、else内の実行処理3が実行されます。
elseはあってもなくてもいいです。

“`:三項式
(条件式)?trueの場合の処理:falseの場合の処理;
例:
 num = (num ==

元記事を表示

【Java】Queue、Deque、Stackの関係

Deque(デック)は「double ended queue」(両端キュー)の略。
Queue、Deque、Stackのメソッドを比較できる図を作りました。(この図が意外と見つからなかった。)

挿入(要素を挿入する)
削除(要素を取得し削除する)
検査(要素を取得するが削除しない)

メソッドにはそれぞれ、2つの形式があります。
1つは操作が失敗したときに例外をスローし、もう1つは特殊な値(操作に応じてnullまたはfalseのいずれか)を返します。

## Queue
[Queue](https://docs.oracle.com/javase/jp/

元記事を表示

文系大学2年生が1年間で取得した資格5つ紹介

大学2年生(この1年間)で取得した資格について書いていきます。
勉強した方法や期間など、参考にしてみてください。
##大学2年生初期の自分の状況##
* ITパスポート取得済み(1年生の最初)
* 私立の文系学部生、情報系科目の勉強ほとんど無し
* 1年生の春休みに、本格的にプログラミング学習(独学)を開始
* 2生になる頃から業務開発系企業でエンジニアインターン開始

##取得した理由##

* 情報系科目を学んでおらず、幅広く学びたいと思ったため。
* 勉強継続できる事を証明するため。
* インターンに参加しており、体系的に学びたいと思う事が多々あったため。

##取得した資格5つ##

* Java Silver
* LPIC L2(L1も)
* 基本情報技術者試験
* Oracle Master Silver(新資格体系)
* UMTP L1

##Java Silver##
**対策期間:~1週間**
**使用した学習教材**

* [徹底攻略Java SE 11 Silver問題集](https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E

元記事を表示

OTHERカテゴリの最新記事