JAVA関連のことを調べてみた2020年07月10日

JAVA関連のことを調べてみた2020年07月10日

SpringBoot2.3.0以降で@PropertySourceのvalueに使用しているプレースホルダの解決に失敗する

# 内容

タイトルそのままです。
SpringBoot2.3.0 以降で`@PropertySource` の value の指定に `classpath:/something-config-${spring.profiles.active}.yml` のようにプレースホルダを使っていると、解決できずに例外が発生する。
現在の Boot の最新バージョンは 2.3.1 です。

ソース

“`java:SomethingConfig.java
@Configuration
@ConfigurationProperties(prefix = “something”)
@Component
@PropertySource(value = {“classpath:/something-config.yml”,”classpath:/something-config-${spring.profiles.active}.yml”}, factory = YamlPropertySourceFactory.class)
@Data
public class SomethingConfig {

元記事を表示

電卓プログラム

//キーボード入力インポート
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;

//クラス開始
public class Original {

//メインメソッド開始**************************
public static void main(String[] args) throws IOException {

//キーボード入力準備
BufferedReader br =
new BufferedReader (new InputStreamReader(System.in));

String now = “0”;
String input = “”;
String enzan = “”;
String msg = “数値”;
String data = “”;

//無限ループ
while(true){

元記事を表示

新興のSQLiteクライアント Reasonの開発をしています。

初めまして、hosokawatです。
SQLiteクライアント Reasonの開発をしています。

**ダウンロードは[こちら](https://reason.tokyo)から**

次の投稿からデバッグ&宣伝を兼ねてReasonを使ったSQLite入門の記事を投稿していくことにしました。
その前置として、Reasonの紹介をします。

## Reasonとは?
SQLの作成、検証を効率よく行うことを目的としたSQLiteクライアントです。
ゴテゴテなGUIのツールを使うよりもエディタを使って「手で書く方が早いんだ!!」っていう人をターゲットにしています。

### 百聞は一見に如かずということでスクリーンショットを見てみてください。

スクリーンショット 2020-07-10 7.04.46.png
### 推しの

元記事を表示

Objectをnewする

# はじめに

Javaの`Object`クラスはすべてのクラスのスーパークラスで非常に重要なクラスですが、それ自体を`new`することはあまりないのではないでしょうか?
この記事では`new Object()`が有意義となる二つのコード例を紹介します。

# メソッド内にメソッドを定義する

以下は「[Javaで数学の組み合わせ(Combination)を実装する – Qiita](https://qiita.com/5zm/items/949bf0721e8324f0ee35#comments)」のコメントに記載されたコード例です。文字列の配列`data`から`k`個取る組み合わせを列挙して返すメソッドです。

“`java
static List combination(String[] data, int k) {
List result = new ArrayList();
combination(data, 0, new String[k], 0, result);

元記事を表示

JavaFX 画面サイズが一定以下の場合はスクロールバーを出し、一定以上の場合は中のnodeをなるべく最大化する

## 今回のゴール
JavaFxをしようしてGUIアプリを作成する際にListViewを使用しましたが、以下のような要望がありました。

1. ListViewはなるべく大きく表示したい
– → windowの大きさに連動して大きさが自動的に変化する
1. windowサイズがある一定を下回った場合は、ListViewの大きさ変更をやめ、かつ、windowのスクロール表示にしたい。

そんな要望を満たすのに、それなりに苦労したので結果のメモ。

最終的に目指した動きはこんな感じ。
青枠部分がListViewで、ボタンのある位置よりも画面サイズが小さくなった場合にスクロールバーが登場し、横に部品があることを示す、といった具合。
![目指す姿fxml.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222220/350adcde-da43-76c4-3f64-ee05f8d8456e.gif)

## 環境
java1.8
JavaFX Scene Builder 2.0

## まずは結果から

元記事を表示

[JAVA]abstractとinterfaceの違いについて

Java言語仕様について、面接で答えられなかったことが恥ずかしかったので再度学び直します。

## interface と abstractの関係について

### 様々な表現方法で表す。

|#|interface|abstract|
|—|—|—|
|仕様面|クラス仕様としての定義をしたいときに利用する|継承関係にあり処理を再利用させたい場合に利用する|
|実装クラスor具体クラスとの関係|実装クラス *CAN* 抽象機能|具体クラス *IS* 抽象クラス|

### コード的な違い
#### interface
“`java
// 抽象
public interface Cashier {
void bill();
}

//実装クラス1
public class CreditCart implements Cashier {
public CreditCart(){
}
@Override
public void bill(){
System.out.println(“billed by cre

元記事を表示

PostgreSQLの時系列データのケース:時系列データの自動圧縮

本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/postgresql-time-series-data-case-automatic-compression-over-time_594813)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。

#背景
時系列データベースの最も重要な特徴の一つは、時間の経過に伴う圧縮です。例えば、最終日のデータは5分程度のポイントに圧縮され、最終週のデータは30分程度のポイントに圧縮されています。

PostgreSQLの圧縮アルゴリズムはカスタマイズ可能です。例えば、単純平均圧縮、最大圧縮、最小圧縮、または回転ドア圧縮アルゴリズムに基づく圧縮などです。

[PostgreSQLにおける回転ドアデータ圧縮アルゴリズムの実装 – IoT、監視、センサーのシナリオにおけるストリーミング圧縮の応用](https://github.com/digoal/blog/blob/master/201608/20160813_01.

元記事を表示

あなたのためのJavaスレッドセーフ

## 問

我々は如何にして Java におけるスレッドセーフを保証すべきか。

## 結論

* synchronized ブロックを使いましょう。
* ロックオブジェクトはprivateインスタンスフィールドで定義しましょう。
* ロックオブジェクトはスレッドセーフの保証対象ごとに定義しましょう。

## 薀蓄

* スレッドセーフとは
* スレッド間で可変データを共有する場合において、同期化が保証される状態。

* 同期化の保証とは
* 「原子性の保証」「可視性の保証」の二点を満たすものと定義する。

* 原子性の保証とは
* ある処理の開始から終了までの間、外部からの干渉を排他できること。

* 可視性の保証とは
* 時系列に対して最新の値が参照できること。

## Java言語仕様

Javaにおいては特に以下の制御構文が、これまでに出てきた要素に関連する。

* synchronizedブロック
* 引数に同じオブジェクトを指定したブロック間において、操作を同期化する。
* メソッドに対する synchronized 修飾は

元記事を表示

Java SE11 Silver 取得にかかった時間、使った教材

# 試験概要
Oracle Certified Java Programmer, Silver SE 11 認定資格は、Javaアプリケーション開発に必要とされる基本的なプログラミング知識を有し、上級者の指導のもとで開発作業を行うことができる開発初心者向け資格です。日常的なプログラミング・スキルだけでなく、さまざまなプロジェクトで発生する状況への対応能力も評価することを目的としています。Oracle Certified Java Programmer, Silver SE 11 認定資格を取得するためには、Java SE 11 Programmer I (1Z0-815-JPN) 試験の合格が必要です (認定パス)。
引用:[リンク](https://www.oracle.com/jp/education/certification/jse11-5570635-ja.html)
# 受験までのあらすじ
大学院卒業後、某大手メーカーに就職し、安定した人生を送れそうではあったが仕事に楽しみを見出すことができず退職。前から興味のあったプログラミングの学習を始めてみたところ時間を忘れて没頭して

元記事を表示

Java SE 7/8 Bronze 合格体験記 ーオンライン受験verー

__※2020年6月7日受験時の情報です。__

2020年6月、外出自粛中にオンライン受験でJava SE 7/8 Bronzeに合格しました!
と、いうことで、オンライン受験の方法や勉強方法などについてまとめてみようと思います。

ちなみに勉強方法・受験方法の順で書くので、
受験方法だけ知りたい方は次のリンクをぽちっとどうぞ!
[受験方法へGo](#受験方法)

__※まとめるために調べていたら、Java SE 7/8 Bronzeが配信されているのは2020年7月31日までなんですね!それ以降は[Java SE Bronze (1Z0-818-JPN)](https://education.oracle.com/ja/java-se-bronze-available-only-in-japan/pexam_1Z0-818)が後継の資格になるようです。__

## Java SE 7/8 Bronzeとは
Oracle社が運営する認定資格試験のうちの一つで、言語未経験者向けの入門資格。
Javaプログラムの基本的な文法やオブジェクト指向の知識を持っているかが試される。

|項目|

元記事を表示

Eclipse Debug_Shell使い方

1.ブレークポイント
2.デバック実行
3.ブレークポイントにて処理が停止したことを確認
4.Debug Shellにて
throw new java.sql.SQLException(“何かしらのメッセージ”);
右クリック→実行

元記事を表示

文字の重複カウント(substring)

“`java

import java.util.*;

//文章strのなかで指定文字targetの重複する回数をカウントする
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList list = new ArrayList();

//重複数の合計
int count = 0;

String target = sc.nextLine();
String str = sc.nextLine();

//文を一文字ずつlistに詰める。
for(int i = 1; i < str.length() + 1; i++){ list.add(str.substring(i - 1, i));

元記事を表示

Minecraft Forge 1.15.2でのcoremodの書き方

Minecraft Forge 1.15.2環境でのcoremodの書き方を簡単に解説します。
ASMって何? とかバイトコード何? という説明はここではしません。すいません。
あとJavascriptについても説明しません。すいません。

ただ、coremodを使うレベルのmodderの方々なら、フィーリングで書けると思います。

Forgeの1.13以降ならたぶん同じ書き方で動くと思いますが検証はしていません。

このページとサンプルコードを非常に参考にさせていただきました。先達に深く感謝します。
[99.99 – Coremod](https://cadiboo.github.io/tutorials/1.14.4/forge/99.99-coremod/)

# coremodって? ASMって?
それでも一応簡単に。”coremod”というのは、Forgeが用意している仕組みのひとつで、これを使うとMinecraftのJavaコードそのものを書き換えることができます(多少表現に語弊があります)。
そのために使うライブラリがASMです。また、コードそのものと言っても、普段書いて

元記事を表示

【じゃんけん(っぽい)ゲームで入門】Java

# 1. はじめに

自作した じゃんけん(っぽい)ゲーム を題材にして **Java** の文法や仕様を確認していきます。

## 1-1. ゲームの仕様

ルールは一般的なじゃんけんのルールに準じます。ただし、プレイヤーとCOMには5点の体力が用意されており、じゃんけんに勝利すると相手に1点のダメージを与えることができます。先に相手の体力を0点以下に減らしたほうの勝利となります。引き分けは発生せず、プレイヤーかCOMのどちらかが勝利するまで処理を続行します。

処理内容はコンソールに表示し、コンソールに表示された内容はログファイルにも吐き出すようにします。

## 1-2. Javaとは?

Javaは、かつて存在していた米国のIT企業 **Sun Microsystems(現・Oracle America)** によって開発された言語です。1996年1月にJDK 1.0が発表されて以来、継続的にバージョンアップを重ねており、2020年3月に発表されたJava SE 14が最新版となります。

言語の出自を辿ると、元々はC++をベースにした家電製品向け組み込み言語と

元記事を表示

【覚えておくと便利!!!】LocalDate型 から 文字列 、 文字列 から LocalDate型 に変換する方法

## 1.事前知識
– [【最新】UbuntuでJavaの環境を構築する方法](https://qiita.com/ryome/items/37c53e9638a9c6ea146a)

– [【初心者でもできる‼】Windows10にJava環境を作る方法(JDK14.0.1)](https://qiita.com/ryome/items/30135570954e36196821)

– [【わかりやすく解説‼】Javaのインスタンスの使い方](https://qiita.com/ryome/items/62ba0d8395af6698053a)

– [【初心者でもできる‼】Windows10にEclipseをインストールする方法(Java環境構築)](https://qiita.com/ryome/items/b47c5acdaa52cffbec58)

事前知識として、上記リンクの内容が必要です。

## 2.LocalDate型 から 文字列 、 文字列 から LocalDate型 に変換する方法

![01.png](https://qiita-image-store.s

元記事を表示

Eclipse 2020を使っていたらビルドエラーが止まらなくなった話

先日JavaのSpringチーム開発を行っていたところ私を含むチームメンバーの2人に同じエラーが発生しほとんど操作不能になりました。
根本的な原因は分かりませんが結論からいうと最新版のeclipseだけに発生する現象だったようです。

###環境
– IDE
– Eclipse 2020-6
– SpringToolSuite4(Eclipse4.16)
– Java
– 11
– フレームワーク
– Spring Boot
– OS
– Windows / Mac共に発生

###現象
スコープ外のオブジェクトへの参照やstaticメンバの参照エラーなどのコンパイルエラーが発生する状況で自動ビルドが行われると以下のようにビルドエラーが繰り返されてしまう。
Eclipseの再起動もしくはプロジェクトのプロパティ→builderからJava builderを外す[^1]まで止まらない。
[^1]: これをするとIDEがただのメモ帳と化す。
スクリーンショット 2020-07-07 17.13.52</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>Eclipse</div>
<div class='tag-cloud-link'>spring-boot</div>
<div class='tag-cloud-link'>JavaBuilder</div>
<div class='tag-cloud-link'>NullPointerException</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/maruLiaoningShifanDaxue/items/dcadcd698b0f66f2d056'>元記事を表示</a></div>
<h3 id=Apache JMeterをインストールする

# 最終更新日

2020年7月8日

検証を行ったOS/JDKのバージョンは下記です。

– macOS Catalina 10.15.5
– 未検証ですが、Windowsでも手順は同様のはずです
– AdoptOpenJDK 11.0.7
– インストール方法は別記事で紹介しています([Windowsの場合](https://www.youtube.com/watch?v=tWU0oUjosBo)・[macOSの場合](https://qiita.com/suke_masa/items/f9af0fb84ad9447ae961))

インストールするもののバージョンは下記です。

– Apache JMeter 5.3

> この記事が古くなった場合、下記の手順は最新のインストール手順とは異なっている可能性があります。その場合は[公式ドキュメント](http://jmeter.apache.org/download_jmeter.cgi)をご確認ください。

# JMeterのインストール
(1) http://jmeter.apache.org/download_

元記事を表示

Zipkinのダウンロードと起動

# 最終更新日

2020年7月8日

検証を行ったOS/JDKのバージョンは下記です。

– macOS Catalina 10.15.5
– 未検証ですが、Windowsでも手順は同様のはずです(curlとbashを利用する場合、事前にGit BashまたはWSLのインストールが必要なはずです)
– AdoptOpenJDK 11.0.7
– インストール方法は別記事で紹介しています([Windowsの場合](https://www.youtube.com/watch?v=tWU0oUjosBo)・[macOSの場合](https://qiita.com/suke_masa/items/f9af0fb84ad9447ae961))

インストールするもののバージョンは下記です。

– Zipkin 2.21.5

> この記事が古くなった場合、下記の手順は最新のインストール手順とは異なっている可能性があります。その場合は[公式ドキュメント](https://zipkin.io/pages/quickstart.html)をご確認ください。

# JARをダウンロー

元記事を表示

substringで指定範囲だけ大文字にする。(substringの使い方)

“`java
/*
substringは文字を抜き出す。
引数には文字のインデックスが入る。
※インデックスは0から
*/

/*
引数が二つの場合
例:
String str = “012345”;
substring(開始位置, 終了位置);
substring(0, 3)
抜き出される文字は[012]
※終了位置は3であるが抜き出される文字には含まれない。

引数が1つの場合は開始位置とする。
例:
String str = “012345”;
substring(開始位置);
substring(3);
抜き出される文字は[345]
*/

/*
※空白はインデックスに含まれる
String str = “0 12345”;(半角の空白)
substring(開始位置);
substring(3);
抜き出される文字は[2345]になる
*/

import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner

元記事を表示

【SpringBoot入門】thymeleafを使ってフォーム送信

#目的

[Spring Quickstart Guide](https://spring.io/quickstart)を取り組み終えた方、SpringBootを学び始めた方、復習をしたい方に向けて、

公式ガイド[Handling Form Submission](https://spring.io/guides/gs/handling-form-submission/)を実際に取り組み学んだことを共有します。

完成形はこちらになります。

Form画面で入力された値をResult画面で表示させるという処理を実装していきます。

![スクリーンショット 2020-07-08 13.44.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555244/4f501b36-035e-2014-29fa-ba078394de6f.png)

![スクリーンショット 2020-07-08 13.44.30.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

OTHERカテゴリの最新記事