- 1. Java学習 基礎編 ~繰り返し処理 for文 ~
- 2. EasyBuggyとEasyBuggy BootをEclipseから同時に開発・デバッグできるようにするまで
- 3. djUnit pluginに新しいASMを適用した話
- 4. Fizz Buzzに対抗して世界のナベアツプログラムを紹介します。
- 5. javaのmockitoを使用してリスト型データを返すには
- 6. Spring Security使用時に、Http://localhost:8080/h2-console で接続できない(CSRF対策)
- 7. SpringBoot + MySQL でTodoリストを作る!CRUDの実装(Read編)
- 8. Ubuntu20.04デスクトップ を使って開発してみたい
- 9. ポイントカードの集計方法
- 10. SpringBoot2とPostgreSQLで講座受講管理アプリを作った。
- 11. Java-トランザクション制御
- 12. ROS2Javaをビルドする
- 13. AWS Signature v4の署名をJavaで作る「完全な署名バージョン4」for Java
- 14. AHC001参加記
- 15. AWS SDK for Javaで “JAXB is unavailable” と言われたら
- 16. docker上のmavenダウンロードファイルを永続化
- 17. Javaでサーバアプリ開発
- 18. 【Java】AtCoderのABC-195に参加しました(レート:230→251)。
- 19. EditTextに入力したテキストを動的に変更したい~数字を自動的にカンマ区切りにしてみる~
- 20. DockerでPostgresSQLをビルドするとエラー
Java学習 基礎編 ~繰り返し処理 for文 ~
Java学習の備忘録になります。
内容は初心者なので基礎的な部分となります。
Javaに興味がある方やJava学習初心者の参考になれば幸いです。* * *
### 繰り返し処理
簡単にいうと、
『**一定の処理を自動で繰り返し行う処理**』
のことを繰り返し処理と言う。#### for文
前回学習した「**while文**」と同じ、繰り返し処理のひとつ。
記述方法は下記になり、**条件がtrueの間、{}内の処理を繰り返す**ことができる。for文の方が、while文よりシンプルに書けるイメージかも。
“`Main.java
for (変数の初期化; 条件式; 変数の更新) {
繰り返す処理;
}// while文と比較してみましょう。
while (条件) {
繰り返す処理;
}//————————————————-
// 例 for文
for (int i = 1; i <= 5; i++) { System.out.println(i); } // 例 while文 in
EasyBuggyとEasyBuggy BootをEclipseから同時に開発・デバッグできるようにするまで
# EasyBuggy / EasyBuggy Bootとは
メモリリーク、デッドロック、JVMクラッシュ、SQLインジェクションなど、バグや脆弱性の動作を理解するためにつくられたバグだらけのWebアプリケーションです。Apache 2.0ライセンスで公開されています。
EasyBuggyは[基本的な技術のみが使われています](https://t246osslab.wordpress.com/2017/03/14/easybuggy-%e3%81%ae%e3%83%88%e3%83%aa%e3%82%bb%e3%83%84/)が、EasyBuggy Bootは[Spring Bootなどの新しい技術が使われています](https://t246osslab.wordpress.com/2017/08/27/easybuggy-boot%E3%81%AE%E3%83%88%E3%83%AA%E3%82%BB%E3%83%84/)。
# やりたいこと
[EasyBuggy](https://github.com/k-tamura/easybuggy/blob/master/READM
djUnit pluginに新しいASMを適用した話
# いまさらで恐縮です
いまさらEclipse、しかもdjUnitの話もどうなのかと思いますが、新規開発はないとしても、djUnitで単体テストされているシステムをメンテナンスする場合とか、それを新しいjavaに移行させる場合とか、そういった用途では、今でもdjUnitが必要となる場面があるのかもしれないと思い、新しいEclipseで、新しいjavaでdjUnitが動くよう修正しました。
以前から、ちょいちょい作業していたのですが、やっと公開できるレベルになったので公開します。# 機能追加は特になし
これと言った機能追加はしていませんが、まずは新しいEclipseでも動作するようにしたversion0.8.6と、バイトコード処理ライブラリのASMを新しいものに入れ替えたversion0.9.0を公開します。
また、Eclipse 3.7(Indigo) – 4.6(Neon)で動作するものと、4.7(Oxygen)以降で動作するものは、分けて公開しています。[djUnit plugin for Eclipse version 3.7 – 4.6](https://piecem
Fizz Buzzに対抗して世界のナベアツプログラムを紹介します。
ヨーロッパで「Fizz Buzz」という多人数で1から順に数を数えて
・3の倍数を「Fizz」
・5の倍数を「Buzz」
・3でも5でも割り切れる数は「Fizz Buzz」
・それ以外は数字
を言うゲームがあります。世界のナベアツで有名な桂三度さんの
「3の倍数、3が付く数字を言うとアホになる」
というプログラムを書きました。JavaとPHPで1~50までのプログラムです。Java
//世界の「ナベアツ」ゲーム
//1から50までのを対象に、
// 3の倍数、数字に3がつくと、アホになる
//
//
// 新規作成日 2021/3/15
// Author 乃木坂好きのITエンジニアpackage paiza;
public class Sekainonabeatu {
public static void main(String[] args) {
for(int i=1;i<=50;i++) { if ((i % 3 ==0) ||( i/10 == 3) || (i%10 == 3)) {
javaのmockitoを使用してリスト型データを返すには
Junitで単体テストをする。(ライブラリ下記を使用)
・Eclipse4.8
・Java 8
・mockit-1.10.19
・junit-4.12“`java
package G_T.OfficeSystem.controller;
import java.util.List;public class Test1 {
//DBが無い時にリストデータを返すメソッド
public ListrunSample(String ID,String PASS) {
// 未実装
return null;
}//ただ、何か文字を返すメソッド
public String runSample(String ID) {
// 未実装
return null;
}
}
“`“` java
//DBが無い時にリストデータを返すメソッド
Test1 hoge = mock(Test1.class);
Listlist = Arrays.asList(new String[] { “a”,”b”,”c” }
Spring Security使用時に、Http://localhost:8080/h2-console で接続できない(CSRF対策)
#Spring Security使用時に、Http://localhost:8080/h2-console で接続できない場合、試したこと。
###①まず、ログイン不要ページに`h2-console/**`を追加します。
####ログインしていなくてもHttp://localhost:8080/h2-console/~ にアクセスできるように。
※`**`はいずれかのファイル、という意味の正規表現。
`/webjars/**` `/css/**` `/login`(ログイン画面) `/signup`(ユーザー登録画面)、などと一緒に直列で書く。(下は一例)“`SecurityConfig.java
@Override
protected void configure(HttpSecurity http) throws Exception {
//ログイン不要ページの設定
http.authorizeRequests().antMatchers(“/webjars/**”).permitAll().an
SpringBoot + MySQL でTodoリストを作る!CRUDの実装(Read編)
# はじめに
今回は、**「SpringBootでMySQLからデータを取得して、Thymeleafを用いて画面に表示させる」**をゴールとしています。
SpringBootを学び始めた方、復習をしたい方に向けて学んだ事を共有します。
##開発環境
“`
OS: macOS Mojave(バージョン 10.14.6)
“`“`
$ java -version
openjdk version “11.0.2” 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
“`“`
$ mvn -version
Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec
Java version: 15.0.2, vendor: N/A, runtime: /usr/local/Cellar/openjdk/15.0.2/libexec/open
Ubuntu20.04デスクトップ を使って開発してみたい
## はじめに…
初めての投稿です。おかしなところあるかもしれませんが、ご容赦ください。
間違っている情報は教えていただけると嬉しいです。## やりたい事
iPad のRDPアプリ(M社製)を使ってUbuntuへログイン
Eclipse開いてJava開発をしながらスタバでドヤってみたい## やった事
通常通りVirualBoxにUbuntu20.04デスクトップ を構築
UbuntuのIP固定(CentOSばかりやってたからUbuntuの変更方法新鮮でした。)
コンフィグ作成(ファイル名はたぶん何でも良い)
[参考にさせていただいた記事](https://qiita.com/zen3/items/757f96cbe522a9ad397d)“`yaml:/etc/netplan/99_config.yaml
network:
version: 2
renderer: networkd
ethernets:
デバイス名:
dhcp4: false
dhcp6: false
addresses: [設定したいIP/24]
ポイントカードの集計方法
Javaのプログラム初心者向けにポイントカードの集計のプログラミング課題を作りました。
課題の内容を画像で貼ります。
![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1055346/4e9670e6-ce62-cd00-f73c-738ef10a4e46.jpeg)
![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1055346/a84a7cce-ef49-0da7-945e-28dc11dd5d99.jpeg)
是非Javaで作ってみてください。今回は例外処理の実装は必要ありません。
SpringBoot2とPostgreSQLで講座受講管理アプリを作った。
##概要
SpringBoot2とPostgreSQLを使って「講座受講管理アプリ」を作りました。
会社の研修の管理や研修の申し込みをする用途を想定しています。
業務要件は[「平成30年度秋期システムアーキテクト試験午後Ⅰ」](https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2018h30.html#30aki)を参考にして、機能の実装や画面デザインは[「Spring Boot 2 入門: 基礎から実演まで Kindle」](https://www.amazon.co.jp/Spring-Boot-2-%E5%85%A5%E9%96%80-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E5%AE%9F%E6%BC%94%E3%81%BE%E3%81%A7-ebook/dp/B0893LQ5KY)を参考にしました。
Java-トランザクション制御### トランザクション
トランザクションとは、一連の処理を一つのまとまった処理として扱うための論理的な単位です。同一トランザクションに属するSQL処理が複数ある場合– すべてが成功して初めて処理結果を確定する(コミット)
– 途中で失敗したら、トランザクション実行前の状態に戻す(ロールバック)データベースの処理結果を確定させることをコミット(commit)、実行前の状態に戻すことをロールバック(rollback)といいます。
### トランザクションの利用
Javaでは、JBDC(Java DataBase Connectivity)というデータベース操作専用のAPIが提供されています。
JBDCを用いてトランザクション制御を指示するには、Connectionオブジェクトを使います。#### 1. setAutoCommit()-接続が確立した直後
JBDCのデフォルトでは、SQLが一つ送信されるたびに自動的にコミットされるオートコミットモードになっています。以下の宣言を行うことで明示的にトランザクション制御をできます。– con.setAutoCommit(fal
ROS2Javaをビルドする
# はじめに
とある研修の教材作りにROS2を使用してはどうか、たまたま周りにJavaできる人多いよねという事で、私が手始めにROS2Javaを触ってみることにしました。
(この記事は身内向けの記事ですが、他にROS2Javaを試してみたい方にも参考になるかもしれないので投稿しました。)
まずは[ROS2Javaのリポジトリ](https://github.com/ros2-java/ros2_java)を見て、自分のMacBook Airにインストールしてみようと思いましたがbrew/pipで入れる依存モジュールやROS/ROS2の依存モジュールのバージョンの組み合わせが悪いのかビルドがうまくいきませんでした。
今回はいろいろ試行錯誤してできたビルド手順をまとめておきたいと思います。
macのローカルではなくUbuntu18.04のDockerコンテナ内でのビルドになります。# 環境
– OS : macOS 10.15.7
– CPU : 1.2 GHz クアッドコアIntel Core i7
– Docker : 20.10.0# ビルド手順
## Docker Ima
AWS Signature v4の署名をJavaで作る「完全な署名バージョン4」for Java
## AWS Sig V4とは
AWSのAPIを利用するときに、クライアント側からI AMユーザであることを示す為に送付する署名のことです。前はバージョン2とかいろいろあったみたいですが、今はV4がメインで使われているようです。
SigV4はAWS公式のルールにしたがって作り、HTTPリクエストのAuthorizationヘッダーの値に載せて送ります。それを受け取ったAWS側では、同じロジックに従って署名を作り、送られてきた署名と一致するかを確かめることで認証を行います。API GatewayのI AMユーザを使ったアクセス制限を例に、今回は自前で実装してみます。
## SigV4の使い方
POSTであればリクエストヘッダーにAuthorization、X-Amz-Dateの二つを載せて送ります。GETであればクエリパラメータ文字列でもいけるようです。その2つの文字列を作るのにはルールがあり、特にAuthorizationのほうは面倒なルールに従って文字列を生成する必要があります。
本来であれば、SDKを使えば簡単にできるところですが、どんなことをしているのか中身が気になったので自
AHC001参加記
# AHC001参加記(schwarzahl)
https://atcoder.jp/contests/ahc001
AtCoder Heuristic Contest 001 が 2021-03-06(土) 12:00 ~ 2021-03-14(日) 20:00、
つまり9日間開催されていて僕にはあまりにも長く
2日目にして既に「誰かに話したい・・・!」という気持ちが強まってしまったので
ルール違反にならないようmarkdownに書いて気持ちを発散することにしましたCodingame然りマラソン系は熱くなりやすく
僕自身、この手のコンテストに出るのが初めて、というわけではないのですが
twitter以外にちゃんと参加記を書こうと思ったのは
これが初めてかもしれません初めてだから・・・と甘えるわけではないですが
多分、他の人がしっかり問題内容については解説するでしょうし
参加した人だけが読む気がするので、問題内容についてはこの記事では触れません
(後で良さそうな問題解説をしてくれてる人の記事へのリンクは貼るかもしれません)## あとがき(まとめ)
記事的には「はじめに
AWS SDK for Javaで “JAXB is unavailable” と言われたら
# 環境
– AWS SDK for Java S3 1.11.327
– Zulu 11.0.9.1
– M1版 macOS Big Sur 11.2.3# 現象
`AmazonS3#putObject()` でS3にファイルをアップロードすると、 `JAXB is unavailable. Will fallback to SDK implementation which may be less performant` という警告ログが出ます。# 原因
JDK 11にはJAXB実装が含まれないからです。JDK 8とかだと、この現象は起こらないはずです。# 解決方法
JAXBを明示的に追加すればOKです。“`xml:pom.xml
com.amazonaws
aws-java-sdk-bom
docker上のmavenダウンロードファイルを永続化
# ビルドするたびにダウンロードするのは時間がかかるので以下のように永続化
“`
app:
build: containers/spring
…
volumes:
– .:/app
# これ
– .m2:/root/.m2
“`
Javaでサーバアプリ開発
今更だけどJavaでWebアプリケーション開発を久しぶりに行うことになったので、その整理。
# 0.はじめに
## 0-1.環境Windows10 20H2
pleiades-2020-12-java-win-64bit-jre_20201222## 0-2.書式
|記号|説明|
|:—:|:—|
|「 」|画面名|
|[ ]|画面内の項目名|
|【 】|入力値|# 1. 環境構築
## 1-1.Tomcatの準備
pleiadesにはTomcat9が標準で入っているので、それを使用する。
そのため手動で設定は不要だが、設定手順を明記するため、Tomcat10を使用するための手順を記載する。### 1-1-1.Tomcatのダウンロード
以下のURLからTomcat10をダウンロードする。
https://tomcat.apache.org/download-10.cgiダウンロードするモジュールは「Binary Distributions」のCoreにあるZioファイル。(黄色の個所)
![image.png](https://qiita-im
【Java】AtCoderのABC-195に参加しました(レート:230→251)。
こんばんは。
2021/3/13に、AtCoderのABC-195に参加しました。
レートは以下の通りとなっています。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402487/f7341a3b-a83d-d381-6954-ee0ffdad4f7e.png)
https://atcoder.jp/users/ishikawaryou
C問題は、意外と余裕をもって解けました。
しかしながらB問題が解けなかったという、初めての展開・・。レートは230→251に更新!
Bでしくじったけどレートが下がらなくてよかった。順位は4606位となっています。
しかしこのペースだと、茶色まで半年近くかかりそうだ・・。頑張らねば。###A問題
M、Hを入力。
HがMの倍数であればYes、でなければNoを出力。
問題文上は、モンスター云々が書いてありましたが、分かりにくくなるので割愛します。“`java
import java.util.Scanner;public clas
EditTextに入力したテキストを動的に変更したい~数字を自動的にカンマ区切りにしてみる~
EditTextで文字列を入力した際、入力した文字列の内容に応じて動的にテキストの内容を変更したい時ってありますよね。
そんな時は、TextWatcherを使えば実現できます。## TextWatcherってなに
TextWatcherはテキスト入力の監視を行うためのリスナーです。
EditText#addTextChangedListener()でTextWatcherをリスナーとして登録することで、
EditTextのテキストの入力を検知し、動的にテキストの内容を変更することが可能です。## コードサンプル
とりあえず、コードサンプルを作ったので見てみましょう。
今回は、数値を入力した際に自動でカンマ区切りの表示にする機能を実装してみました。### MyTextWatcher.kt
今回は、MyTextWatcherという名前でTextWatcherインタフェースを実装したクラスを作成しました。“`kotlin:MyTextWatcher.kt
import android.text.Editable
import android.text.TextWatc
DockerでPostgresSQLをビルドするとエラー
## 環境
macOS
Docker
PostgresSQL### 経緯
下記サイトを参考に、Spring-boot+PostgresSQL環境で勉強したかったので、docker-composeで環境作成。
(下記サイト様は素晴らしく、独自で追加した内容が悪かったという流れです)https://ameblo.jp/kazusa-g/entry-12535018096.html
コンテナdownしてもデータを残しておきたかったので、サイトを渡り歩いてdataをhostのフォルダと繋げてみました。
“`yaml:docker-compose.yml
version: ‘3.2’
services:
db:
image: postgres:latest
#省略
volumes:
– “$PWD/db_data/:/var/lib/postgresql/data”
– “$PWD/init_db/:/docker-entrypoint-initdb.d/”
java: