- 1. Progate javaコース達成
- 1.1. Progate JavaⅤ 学習内容
- 1.1.1. プログラミングなんて自分には出来るのだろうか?と悩んでいても始まらないので、この日記を見てくれている人は、自分と一緒にプログラミング学習を進めていこう!!!
- 1.1.2. Android Studioでタブ文字が機能しない
- 1.1.3. web(java)の制作必要なもの練習メモ 作成中
- 1.1.4. Javaのポリモーフィズム super()について
- 1.1.5. アノテーションってなぁに?
- 1.1.6. Javaプログラミング (static句と「クラス変数」)
- 1.1.7. 【個人メモ】Java における乱数生成器とのつき合い方
- 1.1.8. Google Cloud Firestore で Channel ManagedChannelImpl was not shutdown properly!!! が発生する
- 1.1.9. 最近噂のDart言語でjsアプリ作ってみた
- 1.1.10. try-with-resourseが便利
- 1.1.11. Google Cloud Firestore で IllegalStateException: Firestore client has already been closed が発生する
- 1.1.12. JavaでRocksDBを使用してみる
- 1.1.13. Mavenで導入したKotlinのInterfaceに実装した関数を、Java8からデフォルト実装として利用する方法
- 1.1.14. 【Java】条件文の個人的まとめ(基礎)
- 1.1.15. Spring フラッシュスコープを利用したリダイレクトと単体テスト
- 1.1.16. Androidで文字を点滅するメソッドができてうれしい
- 1.1.17. Cloud Firestore を Java から使う際のドキュメントまとめ
- 1.1.18. 再帰下降構文解析法による数式の構文解析器の実装(Java)
- 1.1.19. Java11インストール後にEclipseが起動しなくなる現象
- 1.1.20. Javaプログラミング (クラスとインスタンス、メインメソッド)
- 1.1. Progate JavaⅤ 学習内容
プログラミング学習3日目
この日記は昨日の学習記録です
Progate javaコース達成
取りあえずprogateのJavaコースを3日程で全て終わらせる事が出来た。
あまり理解しがたい箇所も多々あったので、明日からは「スッキリわかるJava入門 第2版」を学習していこと思う。Progate JavaⅤ 学習内容
- オブジェクト指向において重要なクラス継承のやり方と理解
- 親クラスのメソッドをsuper()で使用する方法
- 抽象メソッドの書き方、サブクラスでオーバーライド(上書き)、クラス型のフィールド理解
プログラミングなんて自分には出来るのだろうか?と悩んでいても始まらないので、この日記を見てくれている人は、自分と一緒にプログラミング学習を進めていこう!!!
Android Studioでタブ文字が機能しない
Android StudioでTabキーを入力しても半角スペースが3つ入力されるだけでタブ文字になりません。助けて。
最新のAndroid StudioをWindows10で使用してます。
Settings > Editor > Code Style > Java > Tabs and Indentsの、『Use tab character』にはチェックを入れました。
半角スペースを4つもしくは8つ打ったりもしましたが変わらず。“`Java
ArrayListanswers = new ArrayList ();
for (int i = 1; i <= 3; i++) { answers.add(quizSet.get(currentQuiz)[i]); } Collections.shuffle(answers); ``` quiz.txt```What is A? A0 A1 A2``` 簡単なクイズアプリを作っていて、 quiz.tx
web(java)の制作必要なもの練習メモ 作成中
#web(java)の勉強をしているときに使ったものです
###フィルタ
javaリソース->srcにパッケージを作成
EncodingFilter(フィルター)を作成しdoFilterに
request.setCharacterEncoding(“UTF-8”);
response.setCharacterEncoding(“UTF-8”);
を設定することにより各サーブレットとjspに記述する必要がなくなるログを残すフィルタ
doFilterに
System.out.println( ((HttpServletRequest)request).getRequestURI() + “:” + new Date() );
に記述するとコンソールにアクセスログを残す
Javaのポリモーフィズム super()について
ポリモーフィズムを改めて調べたのでまとめておく
今回はsuper()を深ぼって理解したい**対象**
– なんとなくでJavaを書いている人
## super()とは、親クラスのコンストラクタである
**結論**である具体例で試していこうと思う
## 具体例
“`Person.java
public class Person {
Person() {
System.out.println(“人間です。” + );
}
}
“`
“`Student.java
public class Student extends Person {
Student() {
System.out.println(“学生です。”);
}
}
“`
“`Main.java
public class Main {
public static void main() {
new Student();
}
}
“`
“`result
人間です。
学生です。
“`## 解説
Stud
アノテーションってなぁに?
#はじめに
勝手に始めた「なぁに?」シリーズ(というか、ただのメモ)。
今回はJavaのアノテーションについて。知っているようで知らない(?)アノテーションの意味やメリットを簡単に整理する。
#アノテーションってなに?
+ Annotation = 注釈 の意。
+ コード中に “@” を使って記述する。
+ たとえば、以下のようなコードになる。“`java
package hoge.nwobhm;public class Metallica {
@Override
public String playMetal() {
return “riff”;
}
public static void main(String[] args) {
Metallica metal= new Metallica ();
System.out.println(metal.playMetal());
}
}
“`#例えばどんなものがあるの?
具体的には以下のようなものがある。+ Overri
Javaプログラミング (static句と「クラス変数」)
#static句とクラス
メインメソッドのメソッド名の前についているstaticという文言についてです。
標準出力やクラスの書き方、呼び出し方を理解していれば読めると思います。
##クラス変数
普通、クラスはインスタンス化して使います。試しに次のメソッドを考えてみましょう。“`java
public class Calculate {
private int s = 3;
public int multipleIntegerNumber(int num){
s = num + s;
s = num + s;
return s;
}
}
“`
これをメインメソッドの中で呼び出してみます。“`java
public class Mainmethod{
public static void main(String[] args){int result;
Calculate calculate = new Calculate();
result = calculate.multipleIntegerNumber(3
【個人メモ】Java における乱数生成器とのつき合い方
https://k11i.biz/blog/2019/11/25/how-to-use-random-number-generator-in-java/
Google Cloud Firestore で Channel ManagedChannelImpl was not shutdown properly!!! が発生する
## 概要
– Google Cloud Firestore API Client Library for Java で「Channel ManagedChannelImpl was not shutdown properly!!!」というエラーメッセージが出力される
– 今回の環境: Java 11 + Google Cloud Firestore API Client Library for Java 1.31.0## エラーメッセージ例
“`
2019-11-25 05:57:46.557 ERROR 41081 — [nio-8080-exec-5] i.g.i.ManagedChannelOrphanWrapper : *~*~*~ Channel ManagedChannelImpl{logId=5, target=firestore.googleapis.com:443} was not shutdown properly!!! ~*~*~*
Make sure to call shutdown()/shutdownNow() and w
最近噂のDart言語でjsアプリ作ってみた
最近噂の3倍生産性が良いFlutterにつられて色々調べていたら、dart言語なるものがあり、JSアプリ作ろうかなーって思っていたので、使ってみた。
https://dart.devfacebookインスタントゲームとして、公開済み。
https://fb.gg/play/solitaireproworldjavaで開発したandroidアプリを移植した。
https://play.google.com/store/apps/details?id=jp.co.projapan.solitaireゲームアプリなので、StageXLフレームワークを使用。これはFlash風APIになってる。
http://www.stagexl.org###良かった点
– ビルドが速い。5秒程度でリロードされる。慣れるとサクサク開発できて、超気持ちいい。
– Javaに似てるので、javaから移植しやすい。javaプログラマーは入りやすい。
– javaと比べると、文句なしでDartがいい。全然違う。Objective-Cはクソ
– 新しめの言語なので、変な制約が少ない。C++とかクソ
–
try-with-resourseが便利
##リソースを自動で閉じる
ファイル開いて、try-catchして、閉じるみたいな
よくやると思うんですけれど
finallyとか使おうとすると“`長い.java
// try
// ファイルを開く// catch
// 例外処理// finally
// ファイルを閉じるpublic static void main(String[] args) {
String filePath = “C:\\Windows\\System32”;
BufferedReader bufferedReader = null;try {
// ファイルを開く
File file = new File(filePath);// 読み込み
FileReader fileReader = new FileReader(file);
bufferedReader = new BufferedReader(fileReader);// 出力
String data;
whil
Google Cloud Firestore で IllegalStateException: Firestore client has already been closed が発生する
## 概要
– Google Cloud Firestore API Client Library for Java で IllegalStateException: Firestore client has already been closed が発生する
– Firestore オブジェクトの close メソッドを呼び出した後で、 FirestoreOptions の getService メソッドで取得した Firestore オブジェクトを使用すると発生する
– 今回の環境: Java 11 + Google Cloud Firestore API Client Library for Java 1.31.0## エラーメッセージ例
“`
java.lang.IllegalStateException: Firestore client has already been closed
at com.google.common.base.Preconditions.checkState(Preconditions.java:511)
at com.goog
JavaでRocksDBを使用してみる
# RockDBとは
Key-Valueのデータ形式(バイト配列)を保持するデータベース。
C++で作られており、JavaからもJNIで使用できる。
ただし、JavaのAPIはC++のAPIに追いついていないとのこと。Wiki
https://ja.wikipedia.org/wiki/RocksDB# 使い方
以下に簡単な使用方法を記載します。
詳細は公式のドキュメントを参照してください。https://github.com/facebook/rocksdb/wiki/RocksJava-Basics
## Maven
以下のライブラリを使用します。
RocksDbのみを使用する場合、rocksdbjniのみでOK。
シリアライズ、デシリアライズのためにkryoを追加しています。“`xml
org.rocksdb
rocksdbjni
6.0.1
Mavenで導入したKotlinのInterfaceに実装した関数を、Java8からデフォルト実装として利用する方法
# 概要
KotlinのI/Fにはデフォルト実装を定義できますが、Java側からそのデフォルト実装を利用するにはあらかじめ設定が必要です。
今回はその設定方法を書き記します。# 前提
– Maven
– Kotlin 1.35
– Java 1.8# 設定方法
### ①Kotlinのプラグインの設定
pom.xmlのkotlinをcompileさせることを定義している箇所の引数に、`-Xjvm-default=compatibility` を追加
例:“`xml:pom.xml
org.jetbrains.kotlin
kotlin-maven-plugin
${kotlin.version}
compile
compile
【Java】条件文の個人的まとめ(基礎)
# 【Java】条件文の個人的まとめ(基礎)
エンジニアの t-77 です。
個人的にJavaの勉強で大事だなと思ったことをまとめました。
今回は、条件文についてです。## ① if文
– if文は、条件がtrueだった場合に、そのブロック内の文を処理する。
– elseを使うことで、設定した条件以外がtrueとして判定され、そのブロック内の文を処理する。
– else ifを使うことで、複数の条件を設定可能。“`sample.java
// numberの値によって、出力される言葉が異なる。
// number == 10 の場合、処理が実行される。
if (number == 10) {
System.out.println(“Wayne”);
// number == 11 の場合、処理が実行される。
} else if (number == 11) {
System.out.println(“Ryan”);
// numberが上記以外の場合、処理が実行される。
} else {
System.out.println(“other”);
}
“`
上記
Spring フラッシュスコープを利用したリダイレクトと単体テスト
あるエンドポイントから別のエンドポイントにリダイレクトさせる際に、フラッシュスコープを利用するとリダイレクト先へパラメータを引き継がせることができる。
# コントローラ
以下のコントローラで`/from`にGETでアクセスした際に、`/to`へリダイレクトさせる。
リダイレクト元の処理で、`bookName`と`buyerList`をフラッシュスコープに突っ込んで、リダイレクト先へ引き継がせる。“`java
package com.example.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;import java.util.Arrays;
import jav
Androidで文字を点滅するメソッドができてうれしい
こんにちはヨースケです。文字列の一致に”==”を使っていました(笑)。equalsですね!
### 初めて作ったアプリで実装
この文字を点滅させるメソッドは、初めてアプリを公開した時に実装したものになります。[計算問題付き電卓](https://play.google.com/store/apps/details?id=first.myapp.mycalc)←このアプリは名前の通り電卓に計算問題を出す機能を付けたアプリとなっています。計算問題がスタートするとタイマーをスタートさせ、全10問クリアするとタイマーがストップしそのタイムで点滅するようにしました。また、答え終わると過去のクリアタイムを表示するようにしています。### ソースコード
あんまり長ったらしくなってもよくないので稚拙なコードではありますが自分自身の備忘録として貼っておきます。“`java:Quest.java
public class Quest extends AppCompatActivity {
private final Handler handler = new Handler();
//タ
Cloud Firestore を Java から使う際のドキュメントまとめ
## Firestore 全般
– [Cloud Firestore \| Google Cloud](https://cloud.google.com/firestore/)
– [Cloud Firestore documentation \| Cloud Firestore \| Google Cloud](https://cloud.google.com/firestore/docs/)
– [Cloud Firestore \| Firebase](https://firebase.google.com/docs/firestore/)## 料金
– [料金 \| Cloud Firestore \| Google Cloud](https://cloud.google.com/firestore/pricing?hl=ja)
– [Firebase Pricing \| Firebase](https://firebase.google.com/pricing/?hl=ja)
– [使用量と制限 \| Firebase](https:
再帰下降構文解析法による数式の構文解析器の実装(Java)
職場のネット寸断が激しかったので久しぶりのネット活動です
タイトルは今のQiitaではあまり受けが良くなさそうな硬そうな命名にしてみました要件で求められるパフォーマンスの関係で、再帰下降構文解析法で四則計算する解析器を作成しました
誰かの参考になるかもしれないので置いておきます# 要件
バッチアプリで数式が文字列で取得されるので、それを計算して結果を返却したかったらしいのですが、その数が膨大でした
元々は、JavaからJavaScriptを呼び出して数式をそのまま渡して計算してもらうつもりだったそうなのですが、対象の式の数が何万何十万単位のため1日で終了しなかったようですしかもこれからもどんどん増えるそうなのです!
当然次のジョブもあるので、その開始時間までに処理が終わるようにしなければなりません
そこで僕に何とかしてほしいと話がまわってきました
最初に話を聞いたときは、外部プログラム呼び出しでしかもJavaScriptで高速な計算処理ができるわけないがな、と思いましたがようは、高速な四則計算が可能な解析器を作成すればよいわけです
除算時の丸め誤差も制御したいらし
Java11インストール後にEclipseが起動しなくなる現象
# はじめに
職場でJava11をインストールしたところ、Eclipseが起動しなくなりました。
当初は原因が全く分からずに苦戦したので、記録として記事を書くことにしました。# 状況
## 当初の状態
以下のように古いJavaであったため、空いた時間でJavaのバージョンを上げることにしました。
なお、Eclipseは[Pleiades](https://mergedoc.osdn.jp/)の日本語化版を使っています。* OS:Windows 10 Pro
* Java:Oracle Java 8
* Eclipse:Eclipse 4.6(Neon)## Javaのバージョンアップ後の状態
無償で使えて簡単にインストールできる「Amazon Corretto」をインストールしました。
* OS:Windows 10 Pro
* Java:[Amazon Corretto 11](https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-11-ug/downloads-list.html)
* Eclip
Javaプログラミング (クラスとインスタンス、メインメソッド)
#メインメソッド
Javaは必ずクラスで構成されます。クラスのなかで処理はメソッドに書かれます。メソッドのなかで、おおもとの操作や処理はメインメソッドというメソッドに書かれます。
##メインメソッドの書き方
メインメソッドは次のように書きます。クラス名は命名ルール通りにTestクラスとしましょう。“`java
public class Test(){
public void main(String[] args){
/*
*メインメソッドの処理の中身
*おおもとの操作はここに書かれる。
*/
}
}
“`ここで
“`java
public static void main(String[] args)
“`
という書き方は覚えてください。
ちなみに、publicとstaticの間のstaticはstatic句といい、メソッドや変数に付けられます。詳しい意味はここでは触れません。意味があってこのようなルールになったらしいのですが、そこまで追求しなくてもいいと思います。
ただ、普通のメソッドの書き方になっていることは理解してください。##クラスを使う
では、