- 1. 三項演算子でシンプルに描く
- 1.1. java 学習 メモ
- 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
- 1.15. SpringBootの始め方
- 1.16. Couchbase Lite機能解説:クエリ① 概要、インデックス、SELECT句
- 1.17. 【SpringBoot】NamedParameterJdbcTemplateで実行されるSQL文をログ出力する
@IntDefについて
## 経緯
私はEnumクラスが大好きなのですが、この前初めてIntDefを触りました。
独自アノテーションに対して付与する・・・?
便利そうなので調べてみました。## IntDef(StringDef)とは
端的に言うと、**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,
WEDNESDAY,
THURS
[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 学習 メモ
##乱数の生成 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 三角形が作れるかどうかの判定。
#三角形が作れるかどうかの判定。
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 = std.nextInt();
int answer = 0;
int[] a = new int[100];//辺の本数は最大で100本
for(int i = 0; i
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 継承とは
・あるクラスを作っているときにクラスの一部を変更して使い回す際に実装するもの。
つまり、あるクラスで定義したプロパティとメソッドをそのまま受け継ぎつつ独自のプロパティやメソッドを差分として定具することが可能。
・継承元のクラスを「スーパークラス」と呼ぶサブクラスを継承して作成
—“`
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
SpringBootの始め方
# はじめに
普段Javaのエンジニアですが、らしいことを全然かけてないなと思い。SpringBootでAPIを作るまでの簡単な流れを記事にしてみようと思いました。
やり方はこの方法でなくてもあると思いますので一例としてみていただければと思います。# 前提
eclipseはすでに持っていることを前提としているため必要な方はeclipseを取得してから後続の作業を行ってください。
https://mergedoc.osdn.jp/# spring initializr
以下のリンクからspring initializrを開いて諸々記載が終わったら「GENERATE」ボタンを押してください。
https://start.spring.io/![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524088/4df83b69-e331-722a-b2b4-8cd02f655b55.png)
特に何を作るという目的もないので、buildツールをGradleにだけ変えています。
パッケ
Couchbase Lite機能解説:クエリ① 概要、インデックス、SELECT句
## 概要
Couchbase Liteは、例1に示されている形式のクエリを使用します。
例1.クエリ形式
“`sql
SELECT ____
FROM ‘database’
WHERE ____,
JOIN ____
GROUP BY ____
ORDER BY ____
“`SQL経験者には不要でしょうが、それぞれのキーワードの解説は以下の通りです。
– `SELEC`Tステートメントが結果セットに返されるドキュメントプロパティを指定します
– `FROM`は、ドキュメントを照会するデータベースを指定します
– `WHERE`ステートメントはクエリ基準を指定します。
– クエリ基準に一致するドキュメントの `SELECT`されたプロパティが結果セットに返されます
– `JOIN`ステートメントは、複数のドキュメントを結合するための基準を指定します
– `GROUP BY`ステートメントは、結果セット内の返されたアイテムをグループ化するために使用される基準を指定します
– `ORDER BY`ステートメントは、結果セット内のアイテムの順序付けに使用される基
【SpringBoot】NamedParameterJdbcTemplateで実行されるSQL文をログ出力する
## 備考(※読み飛ばし推奨)
– 業務で役立ったので備忘録として残すことにした。
– [log4jdbc](https://github.com/arthurblake/log4jdbc)で実装すべきだが、Gradle(Maven)を書き換えるのが面倒な人向け。
– NamedParameterではないJdbcTemplate使用時は`String.replaceFirst`で`?`を置換すればいけそうな気がするが、パラメータの順番担保はどうなるのか未確認。[log4jdbc](https://github.com/arthurblake/log4jdbc)を使うべき。## サンプルコード
“`Java
package sample.repository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repositor