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

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

javaのコンストラクタを理解する

##はじめに
簡単なことからコツコツとjavaのアウトプットをします。
javaシルバーに合格することを目標に勉強中。

##コンストラクタとは
インスタンス化されたときに必ず実行されるメソッド
変数の初期化などに使用される。

##書き方
“`
修飾子 コンストラクタ名(){
処理内容
}
“`

コンスタラクタ名はクラス名と同じになる。

##書いてみる
“`Main.java
class Cat {
String name;
int age;

//コンストラクタ
Cat() {
System.out.println(“newされると実行されるにゃ〜”);
}
}

public class Main {
public static void main(String[] args) {
Cat obj = new Cat();
}
}
“`

実行結果

“`
newされると実行されるにゃ〜
“`

newした際にコンストラクタが正しく実行されています。

引数を渡すこともできます。

“`Main.java
class Cat {
S

元記事を表示

for文、if文について

※尚、下記内容は、UdemyのURL教材を元に学習しております。
https://www.udemy.com/share/101Wu4AEIbd1ZRRHoF/

if構文を使った処理

ある条件を満たした場合に処理を実行したい場合使う関数。
基本の書き方は以下、

if(条件){
trueの場合に実行したい処理
}

また、falseの場合の処理の設定も可能。
その場合は以下

if(条件){
trueの場合に実行したい処理
}else{
falseの時に実行したい処理
}

for文

繰り返し処理を行える。
基本の書き方は以下、

for(初期値; 条件範囲; 変化式){
繰り返し処理したい内容
}

コードの反省点

偶数だけを二乗して出すと言う課題の処理で、以下のコードを書いた。

for(i = 0; i <= 20; i++){ if(i % 2 == 0){ System.out.printf("%d * %d = %d", i, i, i*i).println(); }} 0

元記事を表示

Spring徹底入門のバージョンアップメモ

SpringFrameworkを学ぶには良書と呼ばれる「Spring徹底入門」。
チュートリアルを実装しながら学ぼうとするも、
自分の環境とは異なってつまずくことがあったのでメモしておく。
わかる範囲で直してはみたものの、まだあるかも・・・?

## 環境
| | 本 | 自分の環境 |
|:———————————|:———-:|:——–:|
| Spring Framework | 4.2.6 | 5.2.3 |
| Spring Boot | 1.3.5 | 2.2.4 |
| Thymeleaf | 2.1.0 | 3.0.4 |
| thymeleaf-extras-springsecurity4 | 2.1.2 | – |
| thymele

元記事を表示

自分の為のJava環境設定まとめ[mac]

#OSの選択

Windowsで使う人のが多いと思うけど、個人的な趣味でmacを選択。
めんどいことも多いのでVRとかグラフィック系の処理をしない限りはmacを使ってる。

# Javaインストール

Javaって言っても色んなのあるけど、今回はopenJDKを使う。
Javaのオープンソース。

例えばjava11使いたいなら 「11.0.2 (build 11.0.2+9)」とか選択して入れる。
http://jdk.java.net/archive/

こんな感じで適当な場所に設置。

“`
mv ~/Downloads/jdk-11.0.2.jdk/ /Library/Java/JavaVirtualMachines/
“`

# 環境変数の設定

JAVA_HOMEとPATHを設定

“`:.bashrc
#java
#export JAVA_HOME=”/

元記事を表示

Spring Bootでwebアプリを開発、独立したTomcatサーバーへwarを配置する場合の注意点(個人的メモ)

####Spring Boot開発で、warのみ別APサーバーへ配置した経験がなかったので、調べた内容をメモしておきます。

以下、@TEBASAKIさん投稿の下記記事から抜粋させていただきました。
[Spring Boot解説第4回\(開発環境編:warファイル作成\)](https://qiita.com/TEBASAKI/items/7a22c8b6ac6eb5f1c304)
※Spring bootのバージョンにより、build.gradleの記述方法が異なる様なので注意ください。

####1. プログラム修正
– ApplicationクラスへのSpringBootServletInitializerの継承追加。
– SpringApplicationBuilderメソッドのオーバーライド。

####2. build.gradleの修正

– Spring bootでwebアプリを開発する際、単純にビルドしてできたwarには、組み込みTomcatが含まれてしまう。これを回避する定義を追加する。

####3. Gradleタスク(war)実行

– Gradleタスク(

元記事を表示

printfメソッド/引数/変数/型に関して

printfメソッド

printfメソッドは、引数を渡すことができる

<引数を渡すことができるとは?>
自らが作成した定型フォーマットに対して、設定した文字を自由に入れることができる。
JavaScriptで言うところのテンプレートリテラルに値することができる。

ーJavaのprintfメソッドの場合
int num = 5;
int num2 = 10;
System.out.printf(“%d + %d = %d”, num, num2, num + num2).println();


5+10=15

変数と型

変数とはデータを一時的に保管する箱のような物。何度でも変更がかけられる。
どの型で変数を指定するかによって、中に入れられるデータの種類、容量(文字数)が変わる。
また、変数名は基本的には自由に決めることが可能だが、いくつかのルールがある。

<変数の型の種類>
byte:より短い数字(大体2桁くらいまで)
short:4桁くらいまで
int:9桁くらいまでの数字
long:世界人口などの大きい桁数
float:浮

元記事を表示

リバースプロキシを設定しててもSpringでFlashAttributeしたい!(しない)

# 結論
アクセスするURLとSpringが受け取るリクエストURLが異なると、FlashAttributeしてもリダイレクト先にパラメータを渡せないぞ!!

# 事の始まり

例えば、`domain/~`のリクエストを`domain/hoge/~`に変更するプロキシが組まれていたとします。
きっとこんな感じ:kissing:(適当)

“`nginx.conf
location / {
proxy_pass http://tomcat:8080/hoge/;
}
“`

その中で、RedirectAttributesのaddFlashAttributeを実行したところ、リダイレクト先でマッピングされない事態に遭遇しました。
たぶんこんな感じ:kissing_heart:(さらに適当)

“`HogeController.java
@RequestMapping(value=”/hoge/save”, method = RequestMethod.POST)
public String save(@ModelAttribute(“form”) HogeForm f

元記事を表示

JavaでZIPからFileSystemを呼ぼうとして てこずった話

Java7以降で「ZIP」や「JAR」形式のファイルを「FileSystem」として開けます。
(Java上ではZIPも「JAR」として扱われます。)

ところがあるときどうやってもうまくいかなかった。
    原因というか結論:「実行環境次第で使えない時がある(?)」

備忘録として記事にします。
(環境:Win10で古めのJava8)

### FileSystems.newFileSystem の使い方
まず、前提となる使用法を記しときます。
FileSystems.newFileSystem()というメソッドを使います。
対象ファイルの指定は Path か URI が使えます。
既存ファイル、新規ファイルどちらでもいけます。

#### 1. Path で指定する方法

“`java

final Path zipfilePath = Paths.get(“C:/a.zip”);

try{
FileSystem fs = FileSystems.newFileSystem(zipfilePath, null);
}catch(Exc

元記事を表示

[Processing] GT Forceを使ってみる。

##はじめに
今回は、PCでGT Forceを接続してみたという話。Processingという言語を使うと簡単に使えるようになるので、ぜひお試しいただきたい。ゲーム用のコントローラが自由に使えるようになるとやれることが広がるのではないか。今回の内容は「自作のいろいろ」様のサイトの情報をもとに行った。筆者もはっきりこのライブラリを理解していないため、説明が不十分なところがある。筆者のメモ程度の内容であることをご了承いただきたい。

[自作のいろいろ様のサイト](https://garchiving.com/how-to-gamepad-in-processing/)

使用するGT ForceはPS2用のもので非常に古いものである。調べてみると、このハンドルコントローラーはWindows10に対応していないとの記述もあったが、GT Force Pro用のものを使用したところ、無事Windows10で使うことができた。ただし、logicoolのセットアップソフトでは、ペダルが反応しなかった。故障かと思ったが後のプログラムでは動作した。

##実行環境
・Windows10 64bit
・P

元記事を表示

Selenideのshould、shouldBe、shouldHaveの違い

[SelenideのQuick Start](https://selenide.org/quick-start.html)をやっていて、Assertionメソッドにshould、shouldBe、shouldHaveの3種類(と否定を表現するshouldNot、shouldNotBe、shouldNotHaveの3種類)があり、使い分けがよく分からなかったのでそれを整理したメモです。

## 違い
まず、自分の英語力が足りていませんでした。
以下のやりとりでもある通り、should、shouldBe、shouldHaveは同義語となるため違いはありません。

元記事を表示

【Kotlin】Enumを使用した処理の実例

#初めに
自分がコードを書く際にEnumをよく使うようになってきたので実際に使った実例をまとめていこうと思います。

コードはKotlinで記述します。記述方法が異なりますがJavaでも同じような仕組みで実装できると思います。(他の言語でもできるかも)

#コード値⇔名称の変換処理
「データ上コード値(01とか)で扱うが画面に出す場合は名称で出したい」のような仕様があった場合、コード値から名称へ名称からコード値への変換処理が必要になります。

以下では単純な条件分岐を使用した場合とEnumを使用した実装方法を挙げていきます。

####条件分岐を使用する方法

思いつくコードは以下が挙げられます。

“`kotlin
// コードを名称に変換
fun convert(code : String) : String {

if (“01” == code) {
return “名称1”
} else if (“02” == code) {
return “名称2”

元記事を表示

IntelliJ+Jersey+Spring FrameworkでRESTfulAPIのマルチモジュールサンプル

以下の記事の続きです。

Jersey+Spring FrameworkでRESTfulAPIの最小構成サンプル
https://qiita.com/kasa_le/items/59ebd6b5490945dd5580

Mavenでマルチモジュール構成にする(Jersey RESTful)
https://qiita.com/kasa_le/items/db0d84e3e868ff14bc2b

今回は上の2つの記事で作成したプロジェクトをマージするような作業です。
が、一応ゼロからプロジェクトを作るていで説明します。

# 目的
**Jsersey**と**Spring Framework**(not Boot)でRESTfulAPIを実装する。

# ゴール
– Jersey+Spring FrameworkでRESTfulAPIが一通り(CRUD)が動く。
– マルチモジュール構成でDIが出来る。

# 環境など

|ツールなど|バージョンなど|
|:–|:–|
| MacbookPro |macOS Mojave 10.14.5|
|IntelliJ IDEA |Ulti

元記事を表示

まいくろさーびすあーきてくちゃメモ

# 概要

とあるマイクロサービス開発に携わることになり、取り巻く技術要素について調査した内容から良TIPSをブックマーク。サマリを追記。

## とあるサービスの特徴
– Javaベースのマイクロサービス
– 今後別言語のサービスを追加する可能性もあるためREST APIベースのインターフェース
– Javaにおいては高速ながDI必須
– Dockerコンテナの利用
– Gradleによるマルチプロジェクトビルド
– 設計思想はドメイン駆動設計を採用

# ?マイクロサービス
– 複数の小さなサービスをAPIを介することで連結させたシステム
– サービス間の依存がないため、言語や基盤に関係なくサービスを追加・削除可能
– 代表的なAPIはREST APIで、http通信にてJsonを介したデータのやり取りを行う
– サービスが複数となるため、以下の課題をどう解決していくかが求められる
– サービスごとに参照する永続化層(DB、ファイルなど)をAPIを介してしか通信できないためスキーマ構成に悩む。もしそこを許容してしまうと、一番最下層で依存が発生し、マイクロサービスの意

元記事を表示

スッキリわかるサーブレット 第13章のdocotsubuがPostgreSQLに繋がらない問題

#起きた問題
スッキリわかるサーブレット 第13章 docotsubuがSQLに繋がらない
(一番下にエラーを書いておく)

エラー内容の冒頭
“`java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/docotsubu “`
から、ダウンロードしたはずのpostgresqlのドライバのパスが通っていない感じ。

#解決方法
postgresqlのドライバをダウンロードした後、そのjarファイルを
C:\pleiades-2020-03-java-win-64bit-jre_20200322\pleiades\tomcat\9\lib フォルダに、置く、というか移動させる。
その後、eclipseでビルドパスを通す。
**<方法>**
➡docotsubu3のパースペクティブ右クリック
➡ビルドパス
➡ビルドパスの構成
➡(左の)javaのビルドパス
➡(上の)ライブラリ
➡モジュールパス
~~➡(右の)クラス・フォルダの追加~~
~~➡WebContent/

元記事を表示

#1 世知辛い初心者エンジニアの壁 ~エンジニアになりたい君へ~

初投稿になります。あつぎです?

未経験新卒で入社したものの、初っ端から自宅学習を強いられております。
「あっ、これ前にやったやつだ!」みたいなこともなく、事前に自分で勉強していたjavaやマークアップ言語、Web系言語も意味をなしておりません。

まず初心者の方に伝えたいのは、入社する会社が
【SIer】なのか【Web系】なのか知っておきましょう。
なんとなく開発したいは、悪くもないですが、良くもないです。はい。

#■C言語めちゃくちゃムズイ
題名の通りです。
研修でC言語を学ぶのは「普通」なのでしょうか?
挫折率の高い言語を研修にするのは、なんとも言えない気持ちです。

開発環境はEclipse IDE(統合開発環境)で作業してたのですが、
Javaのようにサクサク実行ができず詰んでおります:scream:

##■詰んでるところ
プログラミングというのは、

❶コードを書いて
❷コンパイルして(PCが読める言葉に翻訳して)
❸実行結果(画面に表示される)
のですが、Eclipseの環境だと、なぜかコンパイルできずに死亡し

元記事を表示

ウイルス性肺炎と診断されたエンジニアの約2か月の在宅勤務記。

# 序:某渡辺さんの手記を読んだ。
 4月1日実名公開の『[これで「軽症」と言うのか。新型コロナ感染で入院中、渡辺一誠さんの手記](https://forbesjapan.com/articles/detail/33415/1/1/1)』を読んだ。もちろん存じ上げない方だが六本木勤務らしい。いろいろと辛そう。。緊急宣言が出されることで、IT業界の方々も、これからいろいろな影響を受けることがあることだろう。
 ということで、参考になればと、参考情報として、2月下旬に自室で悶絶(もんぜつ)しつつも保健所で門前払いされたのち3週間後に、自費で受けたCTスキャンでウイルス性肺炎と診断された私(中年♂)のこの二月ほどを振り返るポエムを書くことにした。恥ずかしいのだけれども。。
 状況としては、病状が悪かったはじめの1月は在宅でいろいろとやらかした。回復後の1月弱で、いくつかを取り戻せたと思っている。勤怠については、(理解ある勤務先のおかげで)2か月間皆勤とさせてもらっている。

## (付記) CTによる診断と血液検査
(その他の検査での陽性反応を経て別途の投薬を受けるも)発熱してから1月たって

元記事を表示

MySQL に UUID のデータを 16 byte で保存する

似たような話は各所にあるのですが、自分の理解向け、備忘録向けに書きます。

# UUID について
https://ja.wikipedia.org/wiki/UUID

もとの起こりはWikipediaなどを見るとして、実運用的には開発時にデータに一意なIDを割り振る際によく用いられる。

UUIDには複数のバージョンがあり、最も開発で用いられていると思われるのは **UUIDバージョン4(ランダム生成)** 、その他に **バージョン1(MacアドレスやTimestamp情報を用いて生成)** などがある。

ビット幅は **128ビット(16バイト)** で、文字列表現では16進法で以下のような形で表現する。
(32バイト+バウンダリ4バイト=36バイト。 “-” がバウンダリ文字列)
> 550e8400-e29b-41d4-a716-446655440000

# SQL を用いて 16バイトで MySQL に保存する (8.0 以前 )
MySQL に16バイトで保存する場合には、16進数の文字列表現のUUIDからバウンダリ文字列を取り除いたものを、Binary に変換して

元記事を表示

Jersey+Spring FrameworkでRESTfulAPIの最小構成サンプル

こちらの記事の続きです。

Mavenでマルチモジュール構成にする(Jersey RESTful)
https://qiita.com/kasa_le/items/db0d84e3e868ff14bc2b

# 目的
**Jsersey**と**Spring Framework**(not Boot)でRESTfulAPIを実装する。

`Java Spring`で調べると**Spring Boot**の例ばかりで、多分Boot使ったほうがいろいろ楽なんでしょうが、大人の事情で使えない(かもしれない)ので、**Spring Framework**の方を使ったサンプルを目指します。

# ゴール
Jersey+Spring Frameworkの最小構成のプログラムでHello World的なものが動く。

# 環境など

|ツールなど|バージョンなど|
|:–|:–|
| MacbookPro |macOS Mojave 10.14.5|
|IntelliJ IDEA |Ultimate 2019.3.3|
|Java |AdoptOpenJDK 11|
|apache maven

元記事を表示

mDNSでAndroidからRaspberryPiを探す

##Raspberry Pi

### avahi-daemonの設定

avahi-daemonのインストール(入っていなければ)

“`
sudo apt-get install avahi-daemon
“`

設定変更

“`
sudo vi /etc/avahi/avahi-daemon.conf
“`

noになっているとAndroid側で探索が出来なかった

“`avahi-daemon.conf
[publish]
publish-workstation=yes
“`

avahi-daemon.service再起動

“`bash
sudo systemctl restart avahi-daemon.service
“`

### host名確認

“`bash
cat /etc/hostname

“`

## Android

これをみた方が早いとは思う(参考)
https://developer.android.com/training/connect-devices-wirelessly/nsd.html

許可取り

元記事を表示

【JAVA関連】【短期】Qiitaの今読んでおくべき記事100選【毎日自動更新】

ページ容量を増やさないために、不具合報告やコメントは、**[説明記事](https://qiita.com/j5c8k6m8/items/09e0baf63e171269b587)** に記載いただけると助かります。

|順位|記事名
________________________________________|ユーザ|投稿日付
更新日付|LGTM[^1]|
|:-:|:–|:-:|:-:|:-:|
|1|**[SwaggerでRESTful APIの管理を楽にする](37228f5d687ad2969aa2)**|disc99|16/10/10
18/02/02|1244
46|
|2|**[30分で覚えるKotlin文法](cc0377b75d8537ef8a85)**|k5n|16/02/10
18/03/30|838
52|
|3|**[Kotlin スコープ関数 用途まとめ](d29e3080d9fc8a38691e)**|ngsw\_taro|15/09/29
18/05/16|746
50|
|4|**

元記事を表示

OTHERカテゴリの最新記事