- 1. 三項演算子でシンプルに描く
- 1.1. 【Java】PaizaのJava入門編(6)まで終えて重要だと感じた内容まとめ。
- 1.2. アルゴリズム:Java 三角形が作れるかどうかの判定。
- 1.3. TDDで電卓を作ってみた
- 1.4. AWS LambdaにJava11のプログラムをデプロイし、パラメータストアから値を取得するメモ
- 1.5. Apache Beamで実装したストリーム処理でDoFnからデータストア参照してエンリッチする
- 1.6. AndroidStudioで簡易的なじゃんけんアプリを作ってみた。
- 1.7. [java入門] finalについて簡易解説
- 1.8. [java入門]java継承とは
- 1.9. [トリビアの泉]1から9の数字が重複なくある9桁の数字は必ず9の倍数になるらしいけど証明とかめんどいしPythonで調べてみた。
- 1.10. 【Java】Qiita デイリー LGTM 数ランキング【自動更新】
- 1.11. SpringBootのプロジェクトにlombok導入する
- 1.12. [java tips] lombok @Builderを使ったクラスでもjson fixtureを使いたい
- 1.13. Java初心者が簡単な性格診断アプリを作る
- 1.14. Java – How to Set Difference Configuration Files for Log4j2
Spring Framework 学習資料
以前、私がSpring Frameworkに関して学んでいた頃に、環境構築方法までを含めた学習資料を作成したことがあります。
資料はPDF化されていて、サンプルコードもセットになっています。
Springの基本である、DI(Dependency Injection)やAOP(Aspect Oriented Programming)はもちろん、他に押さえておくべき基本的なポイントは網羅されています。
これからSpringを学びたい方にとっては、ぴったりな教材だと思われるため、このブログにてご紹介致します。
https://github.com/GL-Kageyama/Spring_Boot_Learning_Collection
![0_Q8ax33ctjsEfRRlg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2173896/73e5e745-2f95-03df-dd45-44b6b81249d1.png)
簡単なJSPとJavaのセットを作ってDockerで動かす
[前回](https://qiita.com/mm0kan/items/3b513d218ce20de05e1f)はTomcatのDockerイメージ(公式)にHTMLだけ追加してオリジナルのDockerイメージを作る…というのをやったので、今回はJavaも追加して動的アプリケーションを作っちゃおう~と思いました。前回作ったDockerイメージにJavaクラスを追加してindex.htmlをちょっと修正したらいけるだろう…と思っていたのですが、なんだか無理そうなのでEclipse先生とかjersey(JavaでREST APIを作るためのフレームワーク)様の力を借りたいと思います。
##ざっくり手順
1)事前準備(各種ツールのダウンロード)
2)とりあえずEclipseで動くプロジェクトを作る
3)プロジェクトをWARでエクスポートしてDockerで動かす
##使ったもの
Docker Desktop for Windows
Windows PowerShell
Eclipse
###1)事前準備
それぞれ以下の公式サイトからダウンロード
[Docker Desktop for Win
VSCodeで”パッケージがマッチしない”エラー
VSCodeでJavaを使っていたら、パッケージがマッチしないエラーが発生したので備忘
#やりたいこと
パッケージ名がマッチせずにエラーが発生
設定したフォルダをソースパスに設定する“`
package a.b.c.interfaces.Sample;public class SampleController {
}
“`#エラー内容
java(536871240)#調査
java(536871240)でググる#原因
想定していたディレクトリ以外でソースパスに設定されている#解決策
VSCodeのエクスプローラーで該当ディレクトリの親ディレクトを右クリックで– Remove Folder to Java Source Path
を選択し、該当ディレクトリを右クリックして
– Add Folder to Java Source Path
を選択することで、ソースパスとして設定されエラーが無くなる。
#参考
https://teratail.com/questions/287130
@IntDefについて
## 経緯
私はEnumクラスが大好きなのですが、この前初めてIntDefを触りました。
独自アノテーションに対して付与する・・・?
便利そうなので調べてみました。## IntDef(StringDef)とは
端的に言うと、Androidにおいて**Enumより軽く、型安全に定数を使用できるようになるアノテーション**のことです。Enumを使用した場合、1つのEunmにつき1.0~1.4 KB ほど増えることがあるそうです。
サイズの増加は可能な限り避けたいので、かなり有用な方法に思えます。([参考](https://developer.android.com/topic/performance/reduce-apk-size#remove-enums))## 使ってみる
とりあえずEnumのサンプルを。細かい部分は目を瞑ってください。“` Sample.java
public enum DayOfTheWeek {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESD
[100%] FibFrog (codility Lesson 13)
_Lesson13_
## [Fibonacci numbers](https://app.codility.com/programmers/lessons/13-fibonacci_numbers/)***
[Open reading material (PDF)](https://codility.com/media/train/11-Fibonacci.pdf)> _Medium_
> ### [FibFrog](https://app.codility.com/programmers/lessons/13-fibonacci_numbers/fib_frog/)
> Count the minimum number of jumps required for a frog to get to the other side of a river.#### Task description
***
The Fibonacci sequence is defined using the following recursive formula:F(0) = 0
条件分岐で学んだこと10/18
“`js
public class Main {
public static void main(String[] args) {
int isHungry = 1;
String food = “魚”;
System.out.println(“こんにちは”);
if (isHungry== 0) {
System.out.println(“お腹がいっぱいです”);
} else {
System.out.println(“はらぺこです”);
}
if (isHungry == 1) {
System.out.println(food + “をいただきます”);
}
System.out.println(“ごちそうさまでした”);
}
}
“`三項演算子でシンプルに描く
“`js
int isHungry = 1;
String food = “魚”;
System.out.println(“こんにちは
【Java】PaizaのJava入門編(6)まで終えて重要だと感じた内容まとめ。
##乱数の生成 Math.random();
“`java
public class Lesson036{
public static void main(String args[]){
//randomメソッドは実数を生成するのでdouble型の変数を宣言
double d;
//randomメソッドで生成した実数を変数dに代入
d = Math.random();
//出力
System.out.println(d);
}
}
“`
##整数を生成する場合 (int)(Math.random()*10)
“`java
public class Lesson037{
public static void main(String args[]){
//int型変数iを宣言
int i;
//randomメソッドで0以上10未満の整数を生成
i = (int)(Math.random()*10);
アルゴリズム:Java 三角形が作れるかどうかの判定。
## 参考文献
参考: [プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~](https://www.amazon.co.jp/dp/B00CY9256C/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)#三角形が作れるかどうかの判定。
n本の辺をがある。そこから3本選んで最も周の長さが長い三角形の時のその長さを求める。
なお、三角形が作れないときは0を出力。
例 入力 n=5; a=[2,3,4,5,10]; 出力 12“`java:triangle.java
import java.util.*;
public class Triangle{static void triangle() {
Scanner std = new Scanner(System.in);
int n =
TDDで電卓を作ってみた
# はじめに
[前回](https://qiita.com/mickie895/items/f5079f7b6683e71a8381)、Javaの勉強会の資料を作った話をした。
そこで出した、一昔前にはGUIアプリケーションのサンプルの定番だった「電卓」、それをできるだけ丁寧に実装できないか試してみた。# 結果
せっかくTDDで少しづつ実装するのだから、実装していった過程を日記形式にしてみました。
https://note.com/mickie895/m/m0671be86f61a
そして実際にコーディングした結果がこちら。
https://github.com/mickie895/swing_calc_for_education
# 工夫した部分
* 前回から準備していた、GUI部分と計算部分の処理の分離。
* GUIはGUIの実装と、計算機能にテキストを送り、結果を受け取っているだけのクラスにした。
* switch文を極力減らす。よくあるサンプルではswitch文にする計算処理はHashMapとクラス化によって振る舞いを分離。
* クリア周りが実
AWS LambdaにJava11のプログラムをデプロイし、パラメータストアから値を取得するメモ
### パラメータストアに適当なキーを保存
– キー名:testkey
– 値:test-value![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530708/eaad3e6f-0cfe-83bd-d7f5-66f767ed4d28.png)
### ラムダ上に関数をデプロイして実行
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530708/0af6dfb2-917e-5c14-836c-92e720fb198a.png)### 実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530708/e6835c85-5c1d-bc31-fc9e-e05e8a704040.png)### ソース作成からデプロイまで
– sam initでテンプレートを作成(AWS Quick Start
Apache Beamで実装したストリーム処理でDoFnからデータストア参照してエンリッチする
## はじめに
現状ではFlinkのDataStreamAPIを使用して実装しているストリーム処理について、Apache Beamを使用する場合はどのように実装すればよいのかを調べています。その中で、ストリーム処理中でデータストアからデータを取得し、ストリームイベントのエンリッチメントを行う方法を試しています。
前提として、データストアにはアプリケーションのメモリ内では保持しきれないレベルの大量データが保存されており、ストリームイベント内の項目をキーとしてデータストアからキーに紐づくデータのみを取得する必要があるケースを想定しています。FlinkのDataStreamAPIの場合は[Async I/O](https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/dev/datastream/operators/asyncio/)を使用していましたが、Beamのドキュメント内ではFlinkのAsync I/O相当の機能の記載が見つけられませんでした。
ググって見つけた以下の記事では、エンリッチメント方法として3つ
AndroidStudioで簡易的なじゃんけんアプリを作ってみた。
どうも、Pythonを主軸に開発を行っている学生エンジニアのirohasです。
今回はAndroidstudioで簡易的なじゃんけんアプリを作成してみたので共有しようと思います。~使用物~
・AndroidStudio
・Java
・デバイス(AndroidStudio内のエミュレーターでもおk)
まずはじゃんけんをするために必要な画像たちをresフォルダのdrawableフォルダに格納していきます。
必要な画像を格納したら、画面のデザインに入っていきます。画面のデザインはActivity_main.xmlで行います。
コードでデザインしたい方はコードで、目視でデザインをしたい方はデザインタブをクリックして自由にデザインしましょう。
僕はコードがやりやすかったのでコードでデザインしました。“`
[java入門] finalについて簡易解説
# javaのfinalについて
・finalは修飾子の1つ。変化をさせたくない変数などに利用する。
#### finalとは
修飾子の一つ。それが最後のものであることを表す。
例)円周率のような値はどこであっても変わることのない定数なので一度代入されたなら決して変わって欲しくない。
そのため最後の値という意味でfinalを使っていく。
#### 種類
・final変数: 一度しか値を代入することができない変数を宣言できる。
・finalクラス: クラスにfinalをつけるとクラスを継承できなくなる
・finalフィールド: フィールドはクラス変数とインスタンス変数にfinalをつけて宣言することができる。
・finalメソッド: サブクラスでメソッドをオーバーライドできなくなる
[java入門]java継承とは
##java 継承とは
・あるクラスを作っているときにクラスの一部を変更して使い回す際に実装するもの。
つまり、あるクラスで定義したプロパティとメソッドをそのまま受け継ぎつつ独自のプロパティやメソッドを差分として定具することが可能。
・継承元のクラスを「スーパークラス」と呼ぶサブクラスを継承して作成
—“`java
public class EmployeeDev extends EmployeeBase {
public EmployeeDev() {
}
public EmployeeDev(String employeeName) {
super.setEmployeeName(employeeName);
super.setDivisionName(引数を指定);
}
}
“`・これでスーパークラスの「EmployeeBaseクラス」を継承したサブクラスの「EmployeeDevクラス」が完成した。
### 継承のメリット
・継承元のスーパークラスを変更すれば継承先のサブクラスまで変更反映される
[トリビアの泉]1から9の数字が重複なくある9桁の数字は必ず9の倍数になるらしいけど証明とかめんどいしPythonで調べてみた。
QuizKnockの動画で気になったことがあります(QuizKnock見すぎな)。
後日こちらの動画で$123456789$の桁をどう入れ替えても9の倍数になるという定理が紹介されていたので運命を感じ、組んでみることにしました。
SpringBootのプロジェクトにlombok導入する
# はじめに
前回、[SpringBootの始め方](https://qiita.com/kihara-takahiro/items/366c4393731a9db02caf)で簡単なAPI作成ができるようにしました。今回は前回の記事にlombokを導入してボイラーコードを減らせるようにしつつJSONでPOSTされた結果をもとにレスポンスを返すようにしてみようと思います。# Lombokの導入
## Lombokってなに?
[Lombok](https://projectlombok.org/)は Javaにおけるボイラープレートコードをソースコードから排除するために使用するライブラリです。
例えば`getter`や`setter`をJavaでは書くことが多いのですがこれらのコードを書かなくても良くすることで本質的に必要ではないコードを減らすことができます。## build.gradleの設定
前回作成した`build.gradle`に`org.projectlombok:lombok`を追加します。“`gradle:build.gradle
plugins {
id
[java tips] lombok @Builderを使ったクラスでもjson fixtureを使いたい
# 前提
* Java
* Spring boot
* Jacksonを利用してobject <-> json変換
* junitで単体テストを書く
* lombokを利用している# 概要
Javaでunittestを書くとき、テストで使うデータを用意するのはわりとめんどくさい。
“`java
var hoge = new Hoge(“hogeId”, “hogeName”, new Fuga(“fugaId”, “fugaName”, …));
““というわけで、一般的には外部にjsonファイルを用意し、これを読み込ませてテストに使う。
* hoge.json
“`json
{
“id”: “hogeId”,
“name”: “hogeName”,
“fuga”: {
“id”: “fugaId”,
“name”: “fugaName”,
…
}
}
“`しかし、一部のオブジェクト(たとえばドメインモデル)は「不変オブジェクト(immutable object)」にしないといけない。そ
Java初心者が簡単な性格診断アプリを作る
#はじめに
職業訓練校5か月目、授業内容はC言語を使った組み込みから、Java言語での開発に移り変わりました。
今回は授業で制作した性格診断アプリを紹介していきます。なお、作成するにあたってこちらのサイト様を参考にさせて頂きました。
[チェックボックスのチェック状態を設定, 取得する](https://seesaawiki.jp/w/moonlight_aska/d/%A5%C1%A5%A7%A5%C3%A5%AF%A5%DC%A5%C3%A5%AF%A5%B9%A4%CE%A5%C1%A5%A7%A5%C3%A5%AF%BE%F5%C2%D6%A4%F2%C0%DF%C4%EA%2C%20%BC%E8%C6%C0%A4%B9%A4%EB)完成品がこちら
授業で作った画面遷移を使った性格診断アプリ pic.twitter.com/wgbK13sMRy
— バキオ (@B
Java – How to Set Difference Configuration Files for Log4j2
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LoggerContext;“`java
if (env.equals(“DEV”)) {
setLog4j2ConfigFile(“log4j2-dev.xml”);
}private void setLog4j2ConfigFile(String log4j2ConfigFile) throws URISyntaxException {
LoggerContext context = (LoggerContext) LogManager.getContext(false);
context.setConfigLocation(getClass().getResource(log4j2ConfigFile).toURI());
}
“`https://stackoverflow.com/questions/23200891/how-to-use-multiple-configurati