- 0.0.1. Java基本的なまとめ
- 0.0.2. Beanstalk+Docker+JavaアプリでタイムゾーンをJSTに変更したかった日
- 0.0.3. 【Unity、AWS】実践!構築から開発をしてウェブアプリを公開する!
- 0.0.4. JUnitでthrows Exceptionしないのは人道に反する
- 0.0.5. 【Java】ポリモーフィズムについて復習していく
- 0.0.6. M1 MacにJavaの環境構築
- 0.0.7. Java 11 to 17
- 0.0.8. ポケモンの対戦シュミレータを作ってる話
- 0.0.9. DataSourceが複数ある場合にSpring Testの@Sqlを使う場合の落とし穴
- 0.0.10. 【Java】継承について復習 していく
- 0.0.11. Eclipse+MavenでJavaFXの環境構築を行う
- 0.0.12. Javaのまとめ
- 0.0.13. [Java] JPAでbulk insertをする方法
- 0.0.14. [100%] CommonPrimeDivisors (codility lessons)
- 0.0.15. EclipseでMySQLを使う
- 0.0.16. [100%] ChocolatesByNumbers (codility lessons)
- 0.0.17. 【Java】カプセル化の理解ついての復習をしていく
- 0.0.18. 【Minecraft Development】 Spigotプラグイン開発 最初の設定チートシート
- 0.0.19. Java Word文書からPDFに変換
- 1. Spire.Doc for Javaとは?
Java基本的なまとめ
#クラス
クラスを組み合わせて一つのプログラムを作るイメージ。
クラスが集合体になってJavaの土台となっていくイメージ![10285001417.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1572216/d299cde8-3c2e-a472-77cf-ac9e7fbfa142.jpeg)
__クラスを定義する__
“`java:Greeting.java
class Greeting{
public static void main(String args[]){}
}
“`①class Greetingと定義する。クラスを定義する際、最初にclassと記述しなければならない。
②classの次は、どんな名前のクラスを決定する。クラスの名前のことを「クラス名」という。
__※ファイル名とクラス名は同じにする必要がある。__
__※クラス名の最初は大文字にするのが鉄則。__③クラス名の後は波括弧を記述する。波括弧で囲まれた部分をブロックと呼ぶ。
波括弧の中に、プロ
Beanstalk+Docker+JavaアプリでタイムゾーンをJSTに変更したかった日
微妙に嵌ったのでメモ
* AWS Elastic Beanstalk web applications
* Multicontainer Docker
* Java8 Spring Boot# .ebextensions で設定する方法
“`yml:.ebextensions/timezone.config
# Dockerホスト(EC2インスタンス)のタイムゾーンを変更
commands:
timezone:
command: ln -f -s /usr/share/zoneinfo/Japan /etc/localtime
“`
– EC2インスタンスのタイムゾーン: 変更される
– Dockerコンテナのタイムゾーン: 変更されない
– Javaアプリのタイムゾーン: 変更されない# Dockerfile に RUN を記述する方法
“`dockerfile:Dockerfile
# ゲストOSのタイムゾーンを変更
RUN ln -f -s /usr/share/zoneinfo/Japan /etc/localtime
ENTRYPOINT [“
【Unity、AWS】実践!構築から開発をしてウェブアプリを公開する!
#はじめに
ローカルで作成したアプリをサーバで公開し、外部から閲覧できるようにするまでの流れを実践を通してまとめました。また、GUIの操作で実装できる部分をコードで行い、実装方法の比較をしました。
アプリはUnity、サーバミドルウェアはSpringBoot、サーバはAWSを使用しました。#設計
今回、作りたいものの設計図です。経験少ないまま作成したものですので、ご容赦ください。
(1)構成図
AWSの構成と使用するファイルをまとめます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1474054/e0ff1cfe-9969-ba55-2108-6cdb51ff3e8f.png)
(2)ユースケース図
今回の記事で私が行ったタスクをまとめます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1474054/eb36280e-b037-17b9-9c8a-eb70
JUnitでthrows Exceptionしないのは人道に反する
こういうのやめてほしいんです。疲れました。
“`java:
@Test
public void testMethod_001 () {
try {
Foo foo = new Foo();
Object result = foo.method();
assertEquals(0, result);
} catch (Exception e) {
// ★☆★なんでこういうことするの★☆★
e.printStackTrace();
fail(“テスト実行時に例外が発生しました”);
}
}
“`単体テストがどうあるべきかとか、日常生活の中で考えたりしないんですかね?
メンテナンス不能です。こんなの。コンソール出力を見ないとどこで例外が起きたかわかりません。
どこの現場に行っても、何回指導しても直らなくてうんざりしています。誰かがそういう風に教育しているなら改めてほしいです。そもそも、単体テストの結果って3通りあると思うんです。
* 成功 … 正しく動
【Java】ポリモーフィズムについて復習していく
#目的
* ポリモーフィズムの理解を深める
#実際の手順と実例
###1.ポリモーフィズムとは同じクラスを継承した別々のクラスのオブジェクトの同じメソッドを呼び出した時に、それぞれのオブジェクトの振る舞い(処理)を変えることです。
下記の例をもとに見ていきます。
###2.例題
サンプルを作成しました。
まずは親クラスの作成をします。
“`Jump.java
package practice.jump;public class Jump {
// フィールドメソッドを定義
private String name;
protected String dream;// コンストラクタを作成
public Jump(String name, String dream) {
this.name = name;
this.dream = dream;
}// final修飾子をつけることで他で使えなくする(オーバーライド禁止)
final public String getName() {
return this.name;
}/
M1 MacにJavaの環境構築
#はじめに
OracleのサイトからJDKインストールしていたが、中々インストールまで辿り着けなかったので今回、azulのサイトからJDKダウンロードした流れをまとめていきたいと思います。#$ java -versionのメッセージ
“`
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.
“`JDK未インストール状態にて、$ java -versionのコマンドを打つと上記のメッセージが表示。
単純にJDK未インストールであるのでインストールを催促されるメッセージが表示される。#Eclipseを使うべきではない理由
Javaの開発環境といえば、IDE(統合開発環境)であるEclipseは初学者には難しいのでおすすめはできない。
理由が以下の通り。* Eclipseは高機能すぎて動きが遅い
* 高いPCスペックを要求する
* 初学者は挫折し
Java 11 to 17
# 概要
JavaのLTSバージョンの「17」がリリースされていたので、Java 11から新しく使えるようになった機能をメインにまとめます!
> こんな機能あるよ!の紹介にとどめ、詳細は追いません。
「触ってみよう」「調べてみよう」のきっかけになればと!# Switch Expressions
http://openjdk.java.net/jeps/361
switch文を式の中で使用できるようになりました!
“`java
jshell> var a = 1
a ==> 1jshell> var b = switch (a) {
…> case 1 -> “one”;
…> case 2, 3 -> “two or three”;
…> default -> “other”;
…> }
b ==> “one”jshell>
“`ポイント
– `->`と記載することで`break`を書かなくてよくなる
– break実装漏れによるバグが減る!
– `,`でつなげることで複数項目ぬも対
ポケモンの対戦シュミレータを作ってる話
# はじめに
こんにちは、4月から都内のSES企業で働いてる佐々木と申します。
先月ぐらいから勉強がてら毎日少しずつ作ってるポケモン対戦シミュレータが少しぐらい形になってきたので今日はそちらを紹介していきたいと思います。# 概要
https://github.com/sasakirione/PokemonClone
・仕事ではそこまでコーディングする機会がないので[^1]実際にガッツリコーディングする経験を積みたい
・TDDをやってみたい
・単純にポケモンが好き
・オブジェクト指向的な設計の勉強をはじめて試してみたくなった
・とりあえず研修で勉強してある程度基礎ができてるであろうJavaをある程度のレベルまで持っていきたい以上の理由からJavaとなんちゃってTDDでポケモンの対戦シミュレータを作ってみました。
# 使い方
もちろんGUIアプリケーションではないのでわざわざ使う人も少ないと思いますが一応簡単な使い方を解説していきたいと思います。テストコード見て貰えばなんとなく分かると思いますが、一応まとめておきます。
まず使用するポケモンのオブジェクトを作ります。“`Ja
DataSourceが複数ある場合にSpring Testの@Sqlを使う場合の落とし穴
# やりたいこと
DataSourceが複数ある場合のテスト時に、Spring Testの`@Sql`を使ってそれぞれのDataSourceにデータ投入を行いたいです。# 忙しい人のためのまとめ
– `@SqlConfig`に必ず下記を設定しましょう
– `dataSource`要素に`DataSource`のBean ID
– `transactionManager`要素に`PlatformTransactionManager`のBean ID
– 必須ではありませんが下記も明示的に設定した方が良いでしょう
– `transactionMode`要素に`ISOLATED`
– `errorMode`要素に`FAIL_ON_ERROR`# 検証した環境
– Spring Framework 5.3.9
– Spring Boot 2.5.4
– JUnit 5.7.2
– Oracle OpenJDK 17.0.0
– PostgreSQL 13.2 (Docker上で2コンテナを実行)
– macOS 11.6> 未確認ですが、多少バージョ
【Java】継承について復習 していく
#目的
* 継承について学んだことを例題に沿って復習する
#実際の手順と実例
###1.継承とは意味としてはそのままでした。
> あるクラスを作っているときに、クラスの一部を変更して使いまわしたいときに利用できる実装
参照:[今すぐ分かる!Javaで書くクラスの継承【初心者向け】](https://techacademy.jp/magazine/9246)
継承する元のクラスを「スーパークラス(親クラス、基底クラス)」と呼び、継承する先のクラスを「サブクラス(子クラス、派生クラス)」と呼びます。
###2.継承で覚えるべきこと
####1.抽象クラス
抽象メソッドを1つ以上持つクラスのことです。抽象メソッドとは、処理を記述せずにメソッド名や引数、戻り値だけを定義したメソッドのこと
→ 各継承先で(サブクラスで)処理だけ変えて使える**基本構文**
“`java
アクセス修飾子 abstract class クラス名 {
// 抽象メソッドの宣言
アクセス修飾子 abstract 戻り値の型 メソッド名(引数);
}
“`####2.イ
Eclipse+MavenでJavaFXの環境構築を行う
Eclipse+MavenでJavaFXを使い、Eclipseからの実行と、実行可能jarの作成ができるまでの手順を記載する。
この手順で環境構築を行った例は以下。
https://github.com/tsyki/javafx-example# JavaFX用のEclipseプラグイン「e(fx)clipse」を入れる(任意)
マーケットプレイスからインストールする。
入れなくてもJavaFXのアプリの実行はできるが、入れておくとFXMLの編集がやりやすくなる。
例えば、FXMLで指定したIDに対応するプロパティがコントローラで定義されていない、といった場合に警告を出してくれる。
2021/9版のpleiadesにe(fx)clipse3.7を入れて動作することを確認済み
# 新規Mavenプロジェクトを作成
「シンプルなプロジェクトの作成」をONにして作成する
# pom.xmlに以下を追加
“`xml
org.openjfx
javafx-controls
Javaのまとめ
#はじめに
今日からJavaの学習も始めたので少しずつJavaとはどういったところが得意なのかこちらの記事でまとめてノウハウを蓄積していきたいと思います。プログラミング学習始めた時はJavaとJavascriptってややこしいなと思っていました、懐かしいですね#Java得意なこと
Webアプリケーション、Androidアプリの開発。#Java特徴
* コンパイラ言語
* オブジェクト指向言語__コンパイラ言語__
コンパイラ言語とは、機械語に一括し変換してから実行するプログラミング言語。
処理が高速__オブジェクト指向言語__
Java はオブジェクト指向。オブジェクト指向では何か特定の役割を果たすモノ(=オブジェクト)を作成し、そのオブジェクトに対して実行する処理を指示する。余談として同じオブジェクト指向言語には「C++」「C#」「Kotlin」などがある。
__OSを選ばない__
Javaは、Windows,MacOS,Linuxなど、どのプラットフォームでも動く。
なぜなら、JVM上で動くから。JVM = Java Virtual Machine(Jav
[Java] JPAでbulk insertをする方法
## 概要
JPAでbulk insertを行いたいのだが、`@GeneratedValue`を使ってidを自動採番させるとbulk insertができない。`@GeneratedValue`を使わない場合、primary keyを明示的に入力しなければならないので面倒。自動採番した上でbulk insertする方法はないのか。
中々情報がないが、JPAの仕様を理解し直すところも含め、なんとか実現方法がないのか調査してみた。今回はPostgreSQLを使っているが、MySQLでも原因と解決策はほとんど同じである。
↓↓解決策だけ知りたい方は↓↓
**[解決策](#解決策)**## 環境
– OpenJDK 15.0.4
– Spring Boot 2.5.4
– org.springframework.data:spring-data-jpa:2.5.4
– PostgreSQL 9.6.23## bulk insertを有効にするための設定
まずはbulk insertを有効にするために、application.ymlで以下の設定をする。
これらの設定をし `rep
[100%] CommonPrimeDivisors (codility lessons)
_Lesson 12_
## [Euclidean algorithm](https://app.codility.com/programmers/lessons/12-euclidean_algorithm/)***
[Open reading material (PDF)](https://codility.com/media/train/10-Gcd.pdf)> _Medium_
> ### [CommonPrimeDivisors](https://app.codility.com/programmers/lessons/12-euclidean_algorithm/common_prime_divisors/)
> Check whether two numbers have the same prime divisors.***
#### Task description
A prime is a positive integer X that has exactly two distinct divisors: 1 and X. The first few
EclipseでMySQLを使う
#概要
MySQLで作成したデータベースの中身をEclipse(Java)で使えるようにする
詰まったことがあったので備忘録#バージョン等
Windows10Eclipse : 2021-06 (4.20.0)
Java : Java11
MySQL : 5.7.33# 目次
1. [Javaプロジェクト作成](#Chapter1)
1. [プロジェクトにMySQLライブラリの追加](#Chapter2)
1. [MySQLからDBの値を取り出す](#Chapter3)
1. [エラー対処](#Chapter4)
# 1.Javaプロジェクト作成
DBtestという名前でプロジェクトを作成する。
今回はモジュールファイルも使用するので作成する。
**Eclipse2021の場合は下画像のように「モジュール->module-info.javaファイルの作成」に✓を入れないとファイルが作成されないので注意**
![image.png](https:
[100%] ChocolatesByNumbers (codility lessons)
_Lesson 12_
## [Euclidean algorithm](https://app.codility.com/programmers/lessons/12-euclidean_algorithm/)***
[Open reading material (PDF)](https://codility.com/media/train/10-Gcd.pdf)> _Easy_
> ### [ChocolatesByNumbers](https://app.codility.com/programmers/lessons/12-euclidean_algorithm/chocolates_by_numbers/)
> There are N chocolates in a circle. Count the number of chocolates you will eat.***
#### Task description
Two positive integers N and M are given. Integer N represents the numbe
【Java】カプセル化の理解ついての復習をしていく
#目的
* カプセル化に関しての復習と定着
#実際の手順と実例
###1.カプセル化とは* カプセル化とはオブジェクトの情報をカプセルのようにまとめ、中身を隠蔽したままオブジェクトを利用すること
* カプセル化のイメージは
* 外から防御されている
* カプセルに包まれている
* 「オブジェクト内のデータ」を包み、「オブジェクト外からの不正アクセス」を防ぐこれらのイメージを持って問題を例にして考えていきます。
###2.例題
####問題
「Practice.java」を実行した結果が同じになるように、「NoCapsule.java」を「Capsule.java」に変更して、カプセル化したプログラムに変更してください。
**実行結果**
““`java
好きな食べ物はラーメンです。
週に1回食べています。
最近は週に2回食べるようになりました。。。
““`““`NoCapsule.java
package practice;public class NoCapsule {
public String food;
【Minecraft Development】 Spigotプラグイン開発 最初の設定チートシート
# はじめに
このQiitaは **IntelliJ IDEA のプラグイン “Minecraft Development”** を使っている人向けの記事です。
VScodeなどで開発している人向けではないこと、それから自分向けの備忘録でもあります。
しっかりとした説明は省きます。
## まずやること
* IntelliJ IDEAに Minecraft Development を導入する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666481/8370d6a8-cf26-c9b8-12f5-91190408ecfb.png)
* JDKを導入する
* Minecraft v1.17以前のプロジェクトを開発するときは **JDK v1.8**
* Minecraft v1.17以降のプロジェクトを開発するときは **JDK v16**
* それぞれ変えないと開発できないので注意
* [JDKのダウンロードはこちらから](https://w
Java Word文書からPDFに変換
Spire.Doc for Javaを利用することで、Wordファイルから、ただ数秒で様々なファイルに変換できます。これこそが、Javaでプログラミングを行う開発者にとって、とても使いやすいライブラリじゃないでしょうか。さあ、今回は、Word文書からPDFに変換する方法を紹介していきましょう!簡単なので、もしお役に立てば嬉しいと思います。
Spire.Doc for Javaとは?
Spire. Doc for Javaは、E-iceblue社が開発され、開発者が JavaプラットホームでWordのドキュメントを迅速か
[100%] CountSemiprimes (codility lessons)
_Lesson11_
## [Sieve of Eratosthenes](https://app.codility.com/programmers/lessons/11-sieve_of_eratosthenes/)[Open reading material (PDF)](https://codility.com/media/train/9-Sieve.pdf)
> _Medium_
> ### [CountSemiprimes](https://app.codility.com/programmers/lessons/11-sieve_of_eratosthenes/count_semiprimes/)
> Count the semiprime numbers in the given range [a..b]#### Task description
A prime is a positive integer X that has exactly two distinct divisors: 1 and X. The first few prime integer