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

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

あたまのなかの整理メモ(Java – 例外編)

## My Java環境
* Java11

## `try-catch-finally`

* `try-catch-finally`の順で記載する。`catch句`はなくてもOK。
* `try句`と`finally句`は1つずつしか記載できない。`catch句`は複数書ける。
* `catch句`と`finally句`の両方に`return文`を書いた場合の例↓

“`java

public class Test {
public static void main(String… args) {
System.out.println(getException());
}

private static String getException() {
try {
throw new Exception();
} catch (Exception e) {
return “catch!”;
} finally {
re

元記事を表示

あたまのなかの整理メモ(Java – インスタンス編)

## My Java環境

* java11

## static

* `static`なフィールドは、インスタンスを生成しなくても使用できる
* `クラス名.フィールド名`または、インスタンス生成後に`インスタンス名.フィールド名`で使用する
* `static`なメソッドから`static`ではないフィールドやメソッドにはアクセスできない(`static`なメソッドからは`static`なフィールドやメソッドにしかアクセスできない)
* `static`ではないメソッドから`static`なフィールドやメソッドにはアクセスできる

## メソッドの戻り値

* メソッドの戻り値は`戻り値と同じ型`または`互換性のある型`である必要がある。

## 可変長引数

* 引数の数を自由に変更できる引数のこと。JVMによって配列に置き換えられる。
* 引数の型の直後にピリオド3つ`…`をつけて宣言する。

“`java

public static void main(String… args) {
// 処理
}
“`

* 可変長引数を最後の引数にする必要がある

元記事を表示

SpringWebFluxでコンテキストを併用するとMDCをアプリケーション間で伝播できるらしいじゃん

# まえがき
[SpringWebFluxでMDCを使用するにはコンテキストを使うんだってさ](https://qiita.com/angelica-keiskei/items/527eaaf6432a957f42fe)って記事でふれた、MDCをアプリケーション間で伝播させる話について書きます。
内容的に上記記事の知見が必要です。

# 先駆者の話
– [Line公式アカウントのチャットシステムにおけるSpringおよびWebFluxの活用事例
](https://speakerdeck.com/line_developers/examples-of-using-spring-and-webflux-in-the-chat-system-for-line-official-accounts?slide=44)
– MDCにリクエスト情報乗っけるには?という話題。WebFilter,Hook,Contextを使って解決するパターン
– [Passing Context with Spring WebFlux](https://ndportmann.com/passing-contex

元記事を表示

SpringWebFluxでMDCを使用するにはコンテキストを使うんだってさ

# WebFluxとMDCの相性の悪さ
Springで一般的に利用されているSpring WebMVCであればこの問題に遭遇することはない。

WebFluxとWebMVCで大きく異なっているのはリクエスト・レスポンスを処理する際のスレッドの扱いにある。
WebFluxで使用される[EventLoopThread](https://livebook.manning.com/book/netty-in-action/chapter-7/1)はSpringMVCと異なり、1リクエストを複数のスレッドで処理する。

ところが、MDCの実装はLocalThreadに依存している。つまり、MDCを実行したスレッドにはMDCの情報があるが、そうでないスレッドではMDCの情報が存在せず、ログに出ない。

**本番リリースギリギリ**でこの事象を踏み抜いてしまった私が、その調査結果をここに記す。

# 先駆者
– [Line公式アカウントのチャットシステムにおけるSpringおよびWebFluxの活用事例](https://speakerdeck.com/line_developers/example

元記事を表示

Java開発訓練

#01. Java開発環境構築
##0101. Javaインストール
###010101. jdk1.8.0_241 ダウンロードアドレス
https://www.oracle.com/cn/java/technologies/javase-jdk8-downloads.html
 
###010102. 手順書によってインストールして下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185058/7eb025cf-ecd0-f260-749a-782c7d159e0a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185058/5a13191b-df42-68e1-7321-eae1abe28952.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185058/52

元記事を表示

JavaFx よく使うコード

JavaFxでアプリケーションを作成する場合によく使う記述を備忘録として書きます。

# 背景色の変更
– コードで設定

“`Java:
border_Pane.setStyle(“-fx-background-color:rgb(0,255,0)”);
“`

– CSSで設定

“`CSS:
/*全体に設定*/
.root {
-fx-base: rgba(0, 0, 0);
}

/*Nodeごとに設定*/
.base_border_Pane{
-fx-background-color:rgb(0,255,0);
}
“`

# その他
– SceneBuilder上でプレビューの表示
SceneBuilder上で CTRL + P を押すとプレビュー表示する。

元記事を表示

未経験エンジニア 勉強方法 no.1 (2020/03/08)

#入社までの一月の勉強方法を考えてみた。
#1. 作りたいものを考えてみた。
勉強管理webアプリを作ってみよう。
#2. 計画を立てる。
Webサイトと本を活用し、段階的にやってみる。一ヶ月目の計画に関して、下記に記述する。
2年分のザックリとした計画に関しては、後日立てよう。
#3. 言語を学ぶ。(03.08~03.15)
「スッキリわかる入門」
「なぜあなたは、Javaでオブジェクト指向ができないのか」
の2冊を読もうと。
Codecademyでの学習は引き続き続ける予定。
#4. 動画を見て作ってみる。(03.16~03.23)
ドットインストールを活用。
「スッキリわかる実践」
も読んでみる。
#5. 本を読んでアプリを作ってみよう。(03.24~03.31)
「サーブレット&JSP」
「Spring徹底入門 Spring frameworkによるJacaアプリ開発」
フレームワークが違うので、混乱するかな、?
実際に自分でゼロから作ってみる。

#教養
これとは別に、本を読んでいく。
ITの基礎知識があまり無いので。というよりは、新卒入社一年目で勉強したものの、忘れてしまっ

元記事を表示

OpenJDKと各種JDKディストリビューションの情報源まとめ #minjava

# はじめに
この記事は、3/13正式出版の共著『[みんなのJava](https://gihyo.jp/book/2020/978-4-297-11199-1)』タイアップ企画としてお送りします。:grin:

HelloWorldを書こう

この記事を見てくれてるってことはどこかで見つけてきたか前の記事を見てくれたんだよね?
じゃ、本題行きますか。
今回はMinecraftの中で「/hello」って打つと「HelloWorld!」って出てくるようになるコードを書いていこう。
じゃまずIntelliJ IDEAを立ち上げよう。

##プロジェクトを立ち上げる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545700/cf4a986b-acc0-d139-dfc9-553d040729a6.png)
まずSpigotにチェックをつけよう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545700/c1332075-c1ce-7f1d-b218-dc26c3df47e5.png)
ここではよくわからない人はこんな感じに設定していいと思います。
![image.png](https://qiita-image-store.s3.a

元記事を表示

あたまのなかの整理メモ(Java – 配列編)

## My Java環境

* java11

## 配列

* 同じ型や互換性のある型しか扱えない
* 要素数はインスタンス生成時、あとから変更不可

## 配列の宣言

* 配列の要素数は`int`型であること。
* 1次元目の要素数は省略不可。
* 多次元配列の場合は大括弧`[]`をまとめて記述する必要はない。
* 多次元配列では2次元目以降の配列の要素数を合わせる必要はない。

### 宣言の例

“`java

int arr[];
int[] arr1;
int[][] arr2;
int arr3[][];
int[] arr4[];
int[][] arr5[];

arr = new int[2];
arr1 = new int[2];
arr2 = new int[2][1];
arr3 = new int[1][2];
arr4 = new int[2][];
arr5 = new int[2][][];
“`

### 配列インスタンスの生成

#### プリミティブ型の場合

“`java

int arr[] = new int[2];
“`

元記事を表示

初心者から始めるJava、入れ子・break・continue

#はじめに
この記事は備忘録である。
参考書レベルの内容だが、本記事に掲載するコードについては、
**間違えた**ものが中心となる。これは実際にコーディング中に間違えた部分を掲載し、自分で反省するために投稿するという目的によるもの。
また、後日にJavaSilver試験問題の勉強を兼ねて復習するため、深い部分の話はここでは触れない。

##環境
言語:Java11、JDK13.0.2
動作環境:Windows10

#入れ子
マトリョーシカ人形を見たことがあるだろうか。サイズが違う相似の物体をたくさん重ねたものだ。ここで扱う入れ子は**制御構造のネスト(入れ子)**である。
`if` `for` `while`の文が。処理の中にまた制御構造を内包する状態になっており、二重ループ・三重ループなど階層的な処理を行うのに向いている。

##break
`break`自体は`switch`文のときに触れたが、入れ子の後で説明するなら**「今処理しているネスト(入れ子)を中断し、上位のループに入る」**動きになる。仮に無限ループに入っていたとしても、break文の条件を満たせば抜けることが出来る

元記事を表示

Visual Studio CodeによるSpring MVC Webアプリ開発 環境構築編(JDK11・Maven・Tomcat・Visual Studio Codeのインストール)

#はじめに
[Pleiades All in One Eclipse](https://mergedoc.osdn.jp/)を使用すればzipをダウンロードして、解凍するだけで簡単に環境構築出来ます。
ですが、世の中Visual Studio Codeが流行っていますので、これでJavaの開発がどこまで出来るのか、検証していきたいと思っています。
ゴールはSpring MVCを使用してのWebアプリ開発です。Spring Bootを使用した開発の紹介は検索すれば沢山ヒットします。
ですので、あえてSpring Bootは使わない方法でトライします。
2020年3月現在、抱えている案件が非BootのSpring MVC Webアプリケーション開発と言う理由もあります。

#環境
OS:Windows 10 Pro 64bit
Editor:Visual Studio Code 1.42.1
JDK:AdoptOpenJDK 11.0.6+10 x64
Apache Maven:v3.6.3
Apache Tomcat:v9.0.31

#JDK11インストール
今回はAdoptOpenJ

元記事を表示

IntelliJ IDEA の設定

こんにちは。Mr_El_Capitanです。
今回初めて書くのでなかなか見やすくはできてないと思いますがよければ参考にしていってください。
私はいつもIntelliJ IDEAを使ってMinecraftのプラグインを作っています。
今回はそんな私が使っているIntelliJ IDEAについてとMinecraftプラグインでまず最初に作るべきものを紹介していきます。

##その1 IntelliJ IDEAのインストール
まず https://www.jetbrains.com/ja-jp/idea/download/#section=windows にアクセスして
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545700/7ef4f712-49e9-2aed-5bec-7a99db65b161.png)
この画面に移ります。
**ここで注意!**
よくある人は左の水色のUltimateをインストールして「なんだこれお金がいるのかよ」って思われがちですが実は右のコミュニティが私も使ってい

元記事を表示

ラーメン屋共有ウェブサイトを開発してみた。

ラーメン屋をレビューするウェブサイトを開発しました。
今回は、経緯と学んだことを書いていきます。

#言語とツール
・Java
・Spring
・HTML/CSS
・JavaScript
・Heroku
・MySQL
・Spring Tool Suite

#経緯
UdemyでSpringの学習をしていた際に、会社の同期に依頼された開発したウェブサイトです。同期から必要な要件を伺い、リリースしました。
初めてのSpringでの開発、初めて友人に頼まれての開発、、、と初めてづくしの開発で非常に良い経験になりました。
友人に喜んでもらえてよかったです。

#成果物
今回は行ったラーメン屋さんを投稿できます。醤油ラーメン、味噌ラーメン、、、などの分類ごとに表示される画像が異なります。
CRUD処理は全て網羅しました。

![スクリーンショット 2020-03-08 10.47.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577071/893ded4b-2e21-66cf-821e-e151101bc9

元記事を表示

java.util.Date ⇔ java.time.LocalDateTime 変換

#メモ
java.util.Dateとjava.time.LocalDateTimeを相互変換する際のメモ。

##java.util.Dateからjava.time.LocalDateTimeへ変換

“`Java
/**
* DateからLocalDateTimeへ変換
* @return
*/
public LocalDateTime toLocalDateTime(Date date) {
Instant instant = date.toInstant();
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
return zonedDateTime.toLocalDateTime();
}
“`

Webアプリ等で実行環境と取得したいロケールが異なる場合、`ZonedDateTime`に変換する際のZoneIdを取得したいロケールを指定します。

“`Java
//

元記事を表示

DUO3.0勉強用ウェブサイトを開発してみた。

今回は、DUO3.0をランダムに10問出題してくれるウェブサイトを開発しました。
経緯や学んだことを記事にしていきます。

#DUO3.0とは?
560の例文が載っている言わずと知れた超有名英単語帳です。
余談ですが、私はこれを全て暗記したおかげでTOEIC 915取れました。

興味がある方は是非!
[Amazonでチェックしてみてください!](https://www.amazon.co.jp/DUO-3-0-%E9%88%B4%E6%9C%A8-%E9%99%BD%E4%B8%80/dp/4900790052)

#経緯
寝る前にランダムで10問程度DUOの例文を出してくれるアプリないかな、、、と思い、
いろいろ探したのですが、結局良いものがなかったので、今回自分で作りました。

#成果物
流石に著作権が怖いため、ネットにはあげておりませんが、画像をお見せします!

![スクリーンショット 2020-03-08 10.23.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577071/62e5d

元記事を表示

出費を記録するウェブサイトを開発してみた。

今回は家計簿アプリを作ってみました。
経緯や学んだことなどを記載していきます。

今回作ったものはこんな感じです。
![スクリーンショット 2020-02-29 16.43.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577071/3098857d-ef55-32e9-6f19-059988a95f9d.png)

#言語やツール
・HTML,CSS
・Java
・JavaScript
・MySQL
・Heroku

#経緯
「そろそろ貯蓄をしなければ、、、」と思っていた今年の初めに家計簿をつけることを決意しました。しかし、なかなかつける習慣にならなかったので、「自分で作ればつける習慣がつくのでは」と思い立ち開発しました。シンプルで誰が触っても使いやすいを意識して開発しました。綺麗な円グラフを作成したかったので、chart.jsを使いました。

#できること
・ログインログアウト
・使った金額と内容、分類を登録
・月別に合計金額やその内訳など表示
・メールアドレスを指定して該当月の出費を送付

元記事を表示

Herokuにwarファイルをデプロイする

こんにちは。今回はHerokuにwarファイルをデプロイする方法を記事にします。
今回はEclipseでwarファイルを生成した後、そのwarファイルをHerokuにデプロイします。

#必要なもの
3つあればデプロイできます。
①Herokuアカウント
②開発したJavaアプリケーション
③Eclipse
※Eclipseに関しては、簡単にwarファイルを生成するために必要なだけですので、warファイルをすでにお持ちの方は必要ないです。

#手順
###①Heroku上でプロジェクトを作成
“Create new app”→App nameにアプリ名を入力→”Setting”を押下→”Add Buildpack”を押下→”Java”を選択
今回は、アプリ名を「HerokuSampleProject」とします。

![スクリーンショット 2020-03-08 9.30.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577071/296c3511-f8c1-c49e-7837-fb92be9d542

元記事を表示

あたまのなかの整理メモ(Java – データ型編)

# My Java環境

* java11

# Javaのデータ型

* プリミティブ型
* 参照型

## プリミティブ型(値そのものを使う、`null`は代入できない。)

* boolean(初期値は`false`)
* char
* byte
* short
* int
* long(`l`をつける。`long value = 10l;`)
* float(`f`をつける。`float value = 10f;`)
* double

## 参照型(インスタンスへの参照を扱う)

* オブジェクト型
* 配列型
* 列挙型

## n進数

* 2進数(`0b`はじまり。`int value = 0x0101`)
* 8進数(`0`はじまり。`int value = 077;`)
* 10進数(特記なし。`int value = 10;`)
* 16進数(`0x`はじまり。`int value = 0x1B;`)

## アンダースコアを使用した数値表記

* 先頭と末尾での使用NG(`int value = _123;`や`int val

元記事を表示

OTHERカテゴリの最新記事