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

JAVA関連のことを調べてみた2020年03月31日
目次

初めてのSpring案件を終えたメモ ~データベース編~

#はじめに
ピュアJavaとDBの基本知識のみスタートからのSpring案件が波乱の末ひと段落したので、所感や覚書などを。:speech_balloon:
記事の内容としてはチュートリアル以上、実践未満のイメージ。
掲載コードは動作確認できていないのであくまで参考で。:pray:

#開発環境
RedHat(開発環境はCent)7系
Java8
SpringBoot2.1.6
MySQL8系
STS

#SpringDataJPAについて
関連用語が難しい。
JPA(仕様)を実装したもの(Hibernate)を利用したフレームワークがSpringDataJPA。自信ない。
動的クエリ作成で使うCriteriaAPIはJPAの機能だから参考にしていい。
サンプルで見かけるEclipseLinkはHibernateとは違う実装なので参考にしないほうがよさそう。
でも[Hibernateの機能でなくSpringの機能を推奨してたりするから、油断ならない。]
(https://qiita.com/suke_masa/items/392976749fce94a8ef1f#hibernate-va

元記事を表示

初めてのSpring案件を終えたメモ ~MVC編~

#はじめに
ピュアJavaとDBの基本知識のみスタートからのSpring案件が波乱の末ひと段落したので、所感や覚書などを。
記事の内容としてはチュートリアル以上、実践未満のイメージ。:speech_balloon:
掲載コードは動作確認できていないのであくまで参考で。:pray:
英語は目が滑るので日本語多様してる、許して。:pray::sob::pray:

#開発環境
RedHat(開発環境はCent)7系
Java8
SpringBoot2.1.6
MySQL8系
STS

#MVCについて
ロジック(Model)と、画面(View)とそれを繋ぐコントローラ(Controller)に分けて設計しましょう、という理解。
でもSpringではViewとControllerでやりとりするデータのことをModelと呼んでいる。
自分がそもそもMVCを理解できていたか不安になったけど、言葉の定義はフレームワークごとに異なるので深く考えるのはやめた。:innocent:
https://qiita.com/yo1000/items/a6acbf5f454a7f53aef9
https://q

元記事を表示

初めてのSpring案件を終えたメモ ~Springとは編~

#はじめに
ピュアJavaとDBの基本知識のみスタートからのSpring案件が波乱の末ひと段落したので、所感や覚書などを。:speech_balloon:
記事の内容としてはチュートリアル以上、実践未満のイメージ。

#開発環境
RedHat(開発環境はCent)7系
Java8
SpringBoot2.1.6
MySQL8系
STS

#Spring Framework について
10年もののフレームワークで、大体のことができる、つまり、ごちゃごちゃしてる。
情報を入手するときは書籍にせよネットにせよ、鮮度を確認する。
特に設定に関して、XML地獄からはすでに解放され、アノテーションやapplication.propertiesに記述できることが多い。
https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html

#application.propertiesについて
後から知った application.yml のほうが見やすそう。

元記事を表示

【GradleでJakartaEE 8 アプリケーション開発】2. プロジェクト作成

#はじめに
本記事は [【GradleでJakartaEE 8 アプリケーション開発】1. 環境構築](https://qiita.com/sunnycloudy764/items/1431d78f05dc092a23b2) の続きです。
前回の記事では開発環境の構築を行いました。本記事ではGradleプロジェクトを作成します。

#EclipseのGradle設定
EclipseでGradleプロジェクトを使う際、前回の環境設定でインストールしたGradleを使用するために下記設定を行います。
Eclipseを起動し、ウィンドウ > 設定 を開き、Gradle を選択し、下記の変更を行います。

| 項目 | 内容 |
|:——|:——–|
| ローカル・インストール・ディレクトリー| Gradleのインストールフォルダ |
| Java ホーム | Jakarta EE 8 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226889/47bf4ab9-91d1

元記事を表示

VisualStudioCodeにおけるデバッグコンソールへの出力設定

vscodeにてJavaのデバッグ環境を作ろうとしたところ、実行結果をデバッグコンソールに表示させられず、かなりつまづいたので書いておきます。

##デバッグ環境を構築&デバッグ
まずは適当なサイトを参考にしながらJDKや拡張機能をインストール。そして、テストのためにJavaのファイルを作り、デバッグコンソールに文字列を表示するだけの簡単なコードを記述してみました。
![alt](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527091/0879597f-5463-9542-c79c-b648dded4b1c.png)
参考にしていたサイトでは、この段階でデバッグを開始したら実行結果がデバッグコンソールに表示されていましたがここで問題発生。なぜかデバッグコンソールに「hello world」の文字列が表示されないのです。
JDKをインストールし直しても、拡張機能を入れ直しても、ファイルを作り直しても、一向に表示されない…
![alt](https://qiita-image-store.s3.ap-northe

元記事を表示

`get()`を使うな ~ 敗北者の Optional

Java の Optional に関する記事を見ると “この教え方では **Optional の意味がまるっきりない使い方するやつ**ばかりが生まれるぞ……” というのを数多く見てしまったので,せめてもの反抗にこの記事を書きます。

## TL; DR

`isPresent()`と`get()`しか知らない奴は

![yamero.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241027/bdc325bf-4dd7-e91d-b11e-bc21f5b6281e.png)

## こういう書き方をしてはいけない

記事を見ていると

> null チェックは`Optional#isPresent()`で行い,値は`Optional#get()`で取り出します。

みたいな解説が多すぎる。

**そういうことをしてはいけない**。それでは**従来の null チェックとなにも変わらない**。変わらないどころかタイプ数が増え,実行時間が増え,メモリ使用量が増え**,デメリットだけが上乗せされている**。メ

元記事を表示

Elasticsearchにおける「32GBメモリの壁」の境界線を調べる

## はじめに
Elasticsearchでは以前からJVMヒープメモリサイズの設定における「32GBの壁」の存在が語られてきました。
デフォルト設定はXms,Xmxともに1gですが、ノードに搭載されるメモリ量に応じてこのパラメータは適宜サイジングすることが必要です。

Elasticsearch 2.xの時代にはすでに[Elasticsearch Definitive Guide](https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html)にて、JVMのヒープサイズの設定で32GBを超えないことが性能上のTipsとして言及されていました。
現在の[公式document](https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html)にも、このサイズは「約」32GBを超えないこととして推奨がされています。

本記事ではある環境において、この正確なしきい値となるメモリサイズを調べる方法をまとめます。

元記事を表示

java弄ってた時に出たエラー

Not only pythonエラー備忘録 but also java備忘録

#メモ
文字列の設定
String型に値を設定する場合は””、char型に値を設定する場合は”を使おう。

#エラー集
###java.lang.IllegalStateException: closed
エラーメッセージ

“`java:example.java
example E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
Process: example, PID: XXXXX
java.lang.IllegalStateException: closed
at okio.RealBufferedSource.select(RealBufferedSource.kt:83)
at okhttp3.internal.Util.readBomAsCharset(Util.kt:254)
at okhttp3.ResponseBody.string(Res

元記事を表示

ストライクガンダムでオブジェクト指向(java)

#はじめに
オブジェクト指向の学習のために作成しました。
ストライクガンダムとストライクダガーの組み立てをイメージし、それぞれの特徴と共通する部分を意識して作成しました。
#手順
以下の手順で作成しました。
1. インターフェースの作成
 →3種のストライカーパックをインターフェースとします。
2. 親クラスの作成
 →X100系フレームを親クラスとします。
3. 子クラスの作成
 →ストライクガンダムとストライクダガーを子クラスとします。
4. Factoryクラスの作成
 →Factoryクラスに出力するための記述を行います。
#インターフェースの作成
エール、ソード、ランチャーをインターフェースの形で作成し、それぞれの武装を以下のように記述します。

“`IAile.java
package practice;

public interface IAile {

public String WEAPON_Aile[] = {“57mm高エネルギービームライフル”, “ビームサーベル”, “対ビームシールド”};

}
“`
エールストライカー

“`ISword.j

元記事を表示

Activity内に定義したAsyncTaskのネストクラスに警告「This ‘AsyncTask’ class should be static or leaks might occur」

この記事は、
「[非staticネストクラスが握っちゃう、エンクロージングオブジェクトの暗黙的参照](https://qiita.com/wakwak/items/21da22045c2d084fdd33#comment-21887e3165e8d82845a9)」と題した投稿の続きです。
ですので、先にそっちをご覧いただければ幸いです。
そっちの記事は、頭ごなし的に言っちゃえば、「ネストクラスには、`static`修飾子を付けろ」です。

# いきなりカウントアップしだすアプリを作ってみた、ら…

起動したとたんに、勝手に1秒刻みでカウントアップが始まります。
START!から始まったら「9」まで数え上げたらお終いです。
(このアニメーションGIFは、3まで至ったらまたSTART!を繰り返しているアニメーションですが、このQiitaに貼り付けたアニメーションGIFを止めるすべがないのでごめんなさい)

![countup.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100612/cd7b052b

元記事を表示

HULFT IoT EdgeStreamingでプラグインを作成してみた【実行編】(3/3)

#はじめに
こんにちは。よろず相談担当 すぎもん:yum:です。
今回は、HULFT IoT EdgeStreamingのSDKを使用したコンポーネント(アダプタ)の開発をやってみようと思います。全3部作で完結するよう記載してます。

#今回やること
今回は、第3弾としてHULFT IoT EdgeStreaming Plugin SDKで開発したプラグインのビルドと実行をしてみようと思います。第1弾、第2弾の記事は、下記にありますので参考にしてみてください。

:arrow_forward: [HULFT IoT EdgeStreamingでプラグインを作成してみた【セットアップ編】(1/3)]
(https://qiita.com/sugimon/items/cf7503479c6e4c46c3b3)
:arrow_forward: [HULFT IoT EdgeStreamingでプラグインを作成してみた【開発編】(2/3)](https://qiita.com/sugimon/items/67bdd6f610e03cdfcef2)
:arrow_forward: HULFT

元記事を表示

HULFT IoT EdgeStreamingでプラグインを作成してみた【開発編】(2/3)

#はじめに
こんにちは。よろず相談担当 すぎもん:yum:です。
今回は、HULFT IoT EdgeStreamingのSDKを使用したコンポーネント(アダプタ)の開発をやってみようと思います。全3部作で完結するよう記載してます。

#今回やること
今回は、第2弾としてHULFT IoT EdgeStreaming Plugin SDKを使用してプラグインを開発してみます。他にセットアップ編、実行編の記事もあるので是非参考にしてみてください。

:arrow_forward: [HULFT IoT EdgeStreamingでプラグインを作成してみた【セットアップ編】(1/3)]
(https://qiita.com/sugimon/items/cf7503479c6e4c46c3b3)
:arrow_forward: HULFT IoT EdgeStreamingでプラグインを作成してみた【開発編】(2/3)
:arrow_forward: [HULFT IoT EdgeStreamingでプラグインを作成してみた【実行編】(3/3)](https://qiita.com/sugi

元記事を表示

HULFT IoT EdgeStreamingでプラグインを作成してみた【セットアップ編】(1/3)

#はじめに
こんにちは。よろず相談担当 すぎもん:yum:です。
今回は、HULFT IoT EdgeStreamingのSDKを使用したコンポーネント(アダプタ)の開発をやってみようと思います。全3部作で完結するよう記載してます。

#今回やること
今回は、第1弾としてHULFT IoT EdgeStreaming SDKを使用するためのセットアップ編として環境準備をしてみようと思います。既に環境あるよ~って方は、読み飛ばしていただき下記の【開発編】、【実行編】の記事を参考にしてみてください。

:arrow_forward: HULFT IoT EdgeStreamingでプラグインを作成してみた【セットアップ編】(1/3)
:arrow_forward: [HULFT IoT EdgeStreamingでプラグインを作成してみた【開発編】(2/3)](https://qiita.com/sugimon/items/67bdd6f610e03cdfcef2)
:arrow_forward: [HULFT IoT EdgeStreamingでプラグインを作成してみた【実行編】(3/

元記事を表示

Eclipse インストール時に Failed to create the Java Virtual Machine.

## はじめに

Mac に Eclipse をインストールしようとしたら “Failed to create the Java Virtual Machine.” って怒られました。

install-error.png

インストール時にこんな屈辱を受けたのは初めてだ

もちろん Java は入ってる

結論から言うと、案の定いつものやつ

`-vm` を ini ファイルに設定するあれだ

## 手順

*最初に注意点*

原因がよくわからないが、 ini ファイルを vim で修正するとこんなエラーが出る。

usodaro.pngゼロから作るDeepLearningをJavaで勉強する。

※注意
この記事は、まだこの本を読み始めたばかりの私が自分のために書いている自己満要素が多いのでレベルが低い且つ
内容が間違っていたりおかしなコードになっている可能性があります。
あと用語の説明などはあまりしないので機械学習を知らない人には意味不明だと思います。
徐々にこの記事を更新していきます。

# (単層)パーセプトロンの実装
パーセプトロン:アルゴリズムの一種。
       ニューラルネットワークのもととなったアルゴリズム。        
       活性化関数にステップ関数を用いる。
       単層だと線形領域しか表現できない。

**コンストラクタにバイアスと各入力信号の重みを渡してANDやOR,NANDを表現する。**

“`
public class PerceptronSample {

private double b, w1, w2;

PerceptronSample(double b, double w1, double w2){
this.b = b;
this.w1 = w1;

元記事を表示

保守性を上げる重要なデザインパターン

#導入
こんにちは。けちょんです。
皆さん、保守性の低いコードを作ってしまっていませんか?
私が以前指摘され、改善したコードを紹介します。

#改善前
##コード

“`java
public class Main {
public static void main(String[] args) throws Exception {
if (args[0].equals(ExecPattern.A.toString())) {
exeA(args[1]);
} else if (args[0].equals(ExecPattern.B.toString())) {
exeB(args[1]);
} else {
throw new Exception(“illigal request parameter”);
}
}

private static void exeA(String input) {
// something
}

private static void exeB(String input) {
// somethi

元記事を表示

新世代Javaプログラミングガイドの紹介(Java 言語拡張 プロジェクト「Amber」編)

この記事は[新世代Javaプログラミングガイドの紹介(Java 12編)](https://qiita.com/kazsharp/items/f5365122204129fedfdd)の続きです。

##Java 言語拡張 プロジェクト「Amber」
書籍の最後はAmberプロジェクトについての解説で締めくくられています。
AmberプロジェクトはJava言語をより良い言語に拡張しようとして進められているプロジェクトですが、原著の出版時にはJavaのどのバージョンで使えるようになるか決まっていないものが多かったようです。
もちろん、翻訳書が発売された今でも決まっていないものがあります。
そんな **未来の機能** を含むAmberプロジェクトですが書籍では以下の5つについて解説させています。

* Amber プロジェクトの拡張 enum 型
* データクラスとその利用方法
* テキストブロック
* ラムダの改善ポイント
* パターンマッチング

###Java14で使える機能
書籍発売時と違い、Java14が既にリリース済みです。
Java14では上記の機能のうち

* データクラス

元記事を表示

計算ゲームアプリ 更新

・自作のBGMを追加
・アプリ中断時BGMが流れ続ける不具合修正
・アプリ再開時にアプリが停止する不具合を修正
・広告(Admob)が表示されるように設定

以前のソースコード
https://qiita.com/KToushi/items/e338aaaf6decc9fced77

サンプル動画

package com.nyaa.braintrainer;

import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import an

元記事を表示

屋内環境を手軽にモニタリングする~⑨モーション検知(HC-SR501 / RCWL-0516)をJavaで取得する(GPIO / Pi4J)~

以前、[こちらの記事](https://qiita.com/s5uishida/items/9c31e6fd9b6eb0fa9c96)で、屋内環境(自宅/オフィス/工場)で一般的な環境情報をモニタリングする簡易ツールについて書いたことがあります。このような環境情報のモニタリング用にツールにまとめられたオープンソースは意外と見当たらず、以下のコンセプトイメージを立てて、プライベートで作成しました。
rainy_concept_jp.png
各センサーならびに産業オートメーション機器から取得した情報を以下のように利用することができます。

– Webブラウザから時系列グラフでモニタリングする。(ダッシュボード)
– 他の用途で利用できるようにJSON化してMQTTで出力する。(オフライン分析用にクラウドやストレージに蓄

元記事を表示

AWS Lambda で Javaを使う ー実装編Tips – ReagionとInstanceIDからInstance名を取得する

##AWS Lambda で Javaを使う 目次
・[Eclipse準備編](https://qiita.com/t_ookubo/items/a71a9bd05282bf20e023)
・登録実行編(いつか)
・[実装編 – EC2を止める/立ち上げる](https://qiita.com/t_ookubo/items/3b12bd985a65a73b4c59)
・[実装編 – CloudWatchの引数を確認する](https://qiita.com/t_ookubo/items/18d47265d39bba4364b8)
・[実装編Tips – ReagionとInstanceIDからInstance名を取得する](https://qiita.com/t_ookubo/items/619d8029546447e61391)

### ReagionとInstanceIDからInstance名を取得する

引数にReagionコードとInstanceIDを渡すと、Instance名を返してあげる。
また、二回目以降、同じReagionコードを渡した場合、Mapに格納している値を返

元記事を表示

OTHERカテゴリの最新記事