- 1. ファイルの入力と出力のテストコード
- 2. JetpackComposeでJavaクラスを引数にとるとスマートコンポジションが効かない(1.1.0-rc03時点)
- 3. 並行処理時のFileAlreadyExistsException
- 4. 【Android】アプリのローカライズ(海外言語対応)する方法について
- 5. JavaFXでWindowsアプリを作るまでに学んだこと
- 6. 【AndroidStudio】 便利なAuto Import機能でimportの手間をなくす
- 7. SpringSecurityでログイン画面からログイン成功までの画面遷移の実装
- 8. JupyterにPython以外のカーネルを導入する
- 9. Javaで絶対値を求める
- 10. Error: the kotlin language client server crashed 5 times in the last 3 minutes
- 11. コンピュータとオセロ対戦39 ~ライブラリ、ノード作成~
- 12. Lombokのよく使うアノテーション一覧(サンプルコードあります)
- 13. moodle CodeRunner question – java_class
- 14. /*Java入門*/ intとIntegerの違いから
- 15. 【Java文法】スレッド
- 16. SpringSecurity5.xでShaPasswordEncoderが無くなっていた
- 17. Java6しか使ってこなかった人がJava8のStreamAPIに感動した話
- 18. @initBinderでString型のリクエストパラメータを空文字からNullにしました
- 19. IntelliJ IDEAにLombokを設定する
- 20. JAVA入門 〜PHPとの相違点だけを抜粋〜
ファイルの入力と出力のテストコード
最近、ファイルを取り込み加工して出力する単純なプログラムを作成しましたが。作業期間が限られていたこともあり、必要最低限のテストコードしか整備できませんでした。。
**実装**
“`Java:App.java
public class App {
public static void main(String[] args) throws IOException {
String input_str = file_read();
input_str += “\n追記!”;
file_output(input_str);
}public static String file_read() throws IOException {
Path file = Paths.get(“src/main/resources/input/test.txt”);
return Files.readString(file, Charset.forName(“UTF-8”));
}
JetpackComposeでJavaクラスを引数にとるとスマートコンポジションが効かない(1.1.0-rc03時点)
# TDTR
## どういう現象が発生し得るか?
* Composable関数の入力値にJavaで書かれたクラスがある場合、スマートコンポジションが効かなくなってしまう場合があるようです。
つまり、__入力値が前回と今回で全く同じであったとしても、毎回再コンポジションが発生してしまうということ__です。## 回避するには
クラスに@Stable or @Immutableアノテーションを付与しましょう。* 公開プロパティが全て不変である場合は、@Immutalbeを付与しましょう。
* 公開プロパティの変更をComposable関数に通知したい場合(再コンポジションを発生させたい場合)は、@Stableを付与しましょう。__ただし、闇雲に上記アノテーションを付与すると、再コンポジションの仕組みがうまく行かない場合があるため、アノテーションを付与できる細かい条件は下記公式ドキュメントを参照して下さい!!__
https://developer.android.com/jetpack/compose/lifecycle?hl=ja#skipping# 詳細
## 前提
並行処理時のFileAlreadyExistsException
テスト中、起こらないはずが時たまエラーになって確認したもの
参照したサイト:
– how to resolve : https://stackoverflow.com/questions/16179102/files-createdirectory-filealreadyexistsexception
– java doc https://docs.oracle.com/javase/jp/7/api/java/nio/file/Files.html#createDirectory(java.nio.file.Path,%20java.nio.file.attribute.FileAttribute…)## 問題になるコード
“`java
if(!directory.exsits()){
Files.createDirectory(dir);
}
“`
## FileAlreadyExistsException原因→並行処理による
パスの存否によってパスを作成するように対応したはずなのに。。。!あ。。並行処理を見逃した。
たとえば、処理A、Bがあれば
A:check
【Android】アプリのローカライズ(海外言語対応)する方法について
# 海外言語の対応について
よく越境とかインバウンドとか聞きますが、ようするに海外言語に対応して表示する文字列を英語とかフランス語とかに対応させようって話で
Androidではどうやるのっていうのを記載します。# ユーザによる言語変更のイメージ
私のOPPO端末でのイメージ画像ですが、このように言語設定変えることを指しています。
![Screenshot_2022-01-30-17-45-56-94_png_と_Screenshot_2022-01-30-17-45-52-56_png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574173/3796c948-39c3-a2a6-dc0e-a44cf8ca6491.png)
# 開発側でどこを変更するのか
※公式を参考に説明しています。~~知っている風に書いててごめんなs~~
https://developer.android.com/guide/topics/resources/localization?hl=ja## Androi
JavaFXでWindowsアプリを作るまでに学んだこと
# GitHubリポジトリ
[customizable-clock](https://github.com/b150005/customizable-clock)
# JavaFXとは
Javaの**GUI開発フレームワーク**の1つで、`AWT`・`Swing`に比べ比較的新しく、`.fxml`ファイルで**GUIコンポーネントの配置を記述**できるという特徴がある。
環境構築や大まかな基本知識は[【超初心者向け】JavaFX超入門](https://qiita.com/tarosa0001/items/05ac653a091b7d1290f9)を参照。# GUIアプリケーションの実行スレッド
[JavaFX 1.2 非同期処理の概要](https://shuji-w6e.hatenadiary.org/entry/20090801/1249125921)
[JavaFXにおけるスレッドの扱い](http://krr.blog.shinobi.jp/javafx/javafx%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%B9%E3%
【AndroidStudio】 便利なAuto Import機能でimportの手間をなくす
# Unresolved reference: ○○
このようなエラーはAndroidStudioで開発しているとよく起きますね。
使いたいクラスや機能などをimportしてないことから起きています。解決方法としてはOption + Enterキーを押すかImportをの箇所をクリックするとimportコードが記載されて突破できます。
今回はその手間をなくす方法の紹介です。![スクリーンショット 2022-01-30 11.09.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574173/f2be6021-c83f-3d55-89ba-6b0011e7bcd6.png)
# Auto Import機能の追加方法
## Android Studio > Preferencesを開く
ここではAndroidStudioの環境設定をしています。
変えたいことのない設定は多くありますが、設定の変更はここで可能です。![スクリーンショット 2022-01-30 11.13.38.png](
SpringSecurityでログイン画面からログイン成功までの画面遷移の実装
#したいこと概要
1、「http://localhost:8080/myLogin」で、ログイン画面に行きます。
2、ログイン画面でユーザ名とパスワードを入力します。
3、ログインに成功したら、test.htmlに遷移します(test.htmlはやる気ないテキトーな画面なのでソース載せていません)
# 環境
Eclipse(Version: 2018-09 (4.9.0))
Spring Boot(バージョン2.5.2)
Java1.8#Spring Securityを使うための設定
ビルドツールがmavenの場合は、pom.xmlに下記を追加します。
“`xml:pom.xml
org.springframework.boot
spring-boot-starter-security
“`gradleの場合はbuild.gradleに下記を追記します。
“`g
JupyterにPython以外のカーネルを導入する
## この記事の前提条件
誰でも無料で利用できる、カスタマイズ可能な[Jupyter](https://jupyter.org/)であれば、自分が推している言語でカーネルを導入しない手は無いと思い、色々チャレンジしてみました。
ここでは以前投稿した下記の環境で話を進めていきます。https://qiita.com/Q-Lazy/items/bd7dacf1d8e865d57a94
## すでに利用可能な処理系のカーネルを導入
まずは、言語本体はすでに利用可能な状態で、カーネルさえインストールすればよいパターンから着手してみたいと思います。
####【Bashカーネル編】
手始めに容易に導入出来るBashから行います。こちらカーネルはPython3で実装されているので、pipコマンドでモジュールをインストール出来ます。
Jupyterへのカーネルのインストールも、Pythonモジュールの関数を実行するだけです。“`bash
$ pip3 install –user bash_kernel$ python3 -m bash_kernel.install
“`
後
Javaで絶対値を求める
## 1. 絶対値を求める
Math.absメソッドを使用します。“`java:
System.out.println(Math.abs(10));
System.out.println(Math.abs(-20));
System.out.println(Math.abs(-30.3));
System.out.println(Math.abs(0));
“`## 2. 実行結果
“`java:
10
20
30.3
0
“`## 3. 参考文献
– Java入門 absメソッド
Error: the kotlin language client server crashed 5 times in the last 3 minutes
VSCodeの[Kotlin](https://marketplace.visualstudio.com/items?itemName=fwcd.kotlin)というextentionを入れて、remote debugをしようとしたところ発生したエラー。
“`
the kotlin language client server crashed 5 times in the last 3 minutes
“`同様のエラーは[Java extension pack](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack)を入れた際に一緒に入る、Java Serverも発生するようです。
今回はKotlinですが、解決方法はほぼ一緒ではないかと思います。# 原因(and 解決策)
1. extensionsの競合
1. extensions自体が何かで不具合
1. Javaのパスが通っていない
1. Javaのパスは通っているが、優先順位が下になっている
1. Javaのパスを変
コンピュータとオセロ対戦39 ~ライブラリ、ノード作成~
https://qiita.com/tt_and_tk/items/068f2afde6db637e189f
[前回](https://qiita.com/tt_and_tk/items/6f7147039e71c0553ed2)
# 今回の目標
Javaで深層学習ライブラリを作ります。
# ここから本編
前回は、「相手の手数を少なくする」考え方と「予測される最終結果がより良い位置に置く」考え方を総合的に用いるAIを考えました。
そして、それらにつける重みについて局所探索法を用いて探しましたがうまくいきませんでした。ここで、少し話は変わりますが今まで深層学習や学習済みモデルの使用は全てPythonを使って行っていました。理由は単純にライブラリや情報が豊富だからです。これまでの深層学習ではデータ量はせいぜい20試合ぶん程度でしたので実行速度の遅いPythonでも問題なく行えていました。
しかし局所探索法となると話は別で、膨大な試合数が必要となります。前回は最大で8000試合行いましたが、Pythonで実行したため非常に時間がかかりました。そこで、JavaのライブラリTribu
Lombokのよく使うアノテーション一覧(サンプルコードあります)
# 記事はこちらに移管しましたmm
moodle CodeRunner question – java_class
# moodle CodeRunner question – java_class
java_classの問題の作り方を確認してみる
## 入力項目
### CodeRunner question type
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236501/64a56966-637d-4dc0-4ebf-de49f805e195.png)|設定項目|デフォルト値|説明|
|—|—|—|
|Question type||javaのクラスに対するクイズを作成できる|
|Customisation|[ ]Customise
[ ]Template debugging||
|Answer box|Rows 18|回答を入力するボックスの行数|
|Submit buttons|Precheck Disabled
[ ]Hide check||
|Stop button|Never available||
|Feedback|Force show||
|M
/*Java入門*/ intとIntegerの違いから
# intとIntegerの違い
簡単に言えば:* intはプリミティブ型(primitive type)、Integerは参照型(reference type)
* Integerはintのラッパークラス(wrapper class)# プリミティブ型とは
Javaには8種類の組込み型(built-in data types)があり、プリミティブ型(primitive type)と呼ばれます。
また、各プリミティブ型には対応しているラッパークラスがあります:|型| 説明| 範囲 |例 | ラッパークラス |
|:-|:-|:-|:-|:-|
| boolean | 真偽値 | true / false | true | java.lang.Boolean |
| byte | 8bit整数値 | -128 ~ 127 | 123 | java.lang.Byte |
| short | 16bit整数値 | -32768 ~ 32767 | 123 | java.lang.Short |
| int | 32bit整数値 | -2147483648 ~ 2
【Java文法】スレッド
こんにちは、コイキングです。
本記事では’スレッド’について、まとめてみます。
******
# 1. プロセスとスレッド
プロセス : 実行中のプログラム。
スレッド : プロセス内で実行されるフローの単位。
マルチスレッド : プロセス内に複数のスレッドが存在すること。# 2. Javaでスレッドを使う方法
## 1) マルチスレッドを使わない。“`java:ThreadMain01.java
package thread.ex01;public class ThreadMain01 {
public static void main(String[] args) {
Calculator calculator = new Calculator(0L, 1000000000L);
execute(calculator);}
public static void execute(Calculator calculator) {
long startTime = System.currentTimeMillis();
Syst
SpringSecurity5.xでShaPasswordEncoderが無くなっていた
4.xから5.xにバージョンアップしたらコンパイルエラーになりました。
親クラスのMessageDigestPasswordEncoderにメッセージダイジェスト名を渡してインスタンス化すれば同じことはできますが、こちらも非推奨クラスになっています。幸いなことに
– アプリ上、このクラスで実現していることが単なるSHA-256へのハッシュ化
– このクラスの`encodePassword`でやっていることは、UTF-8のバイト配列にした文字列に対して一回SHA-256でハッ
シュ化し、16進数の文字列で返すだけなので、`commons-codec`の`DigestUtils.sha256Hex`メソッドで事足りました。
本来は`PasswordEncoderFactories`から取得するっぽいのですが詳細わからず……。今度調べます。
Java6しか使ってこなかった人がJava8のStreamAPIに感動した話
# 記事はこちらに移管しましたmm
@initBinderでString型のリクエストパラメータを空文字からNullにしました
# 記事はこちらに移管しましたmm
IntelliJ IDEAにLombokを設定する
# 記事はこちらに移管しました:bow_tone1:
JAVA入門 〜PHPとの相違点だけを抜粋〜
#変数と型
:::note info
・変数を使用する場合は型を宣言しないといけない
・型には基本データ型と参照型がある
:::###データ型の種類
#####1、基本データ型
**boolean** true or false
**char** 16ビットUnicode文字 \u0000~\uFFFF
**byte** 8ビット整数 -128~127
**short** 16ビット整数 -32,768~32,767
**int** 32ビット整数 -2,147,483,648~2,147,483,647
**long** 64ビット整数 -9,223,372,036,854,775,808~9,223,372,036,854,775,807
**float** 32ビット単精度浮動小数点数
**double** 64ビット倍精度浮動小数点数#####2、参照型
※参照型は基本データ型とは異なる特殊なデータ型
**String** 文字列[参照型について詳しくはこちら](https://qiita.com/shunsuke227ono/items/07c08cf5640