- 0.0.1. Java,kotlinの実装で共通で使えるモノ
- 0.0.2. Androidアプリ開発環境のメモ
- 0.0.3. privateで修飾されたフィールド、メソッドへのアクセス
- 0.0.4. Java学習 条件分岐
- 0.0.5. javaとpythonの違い
- 0.0.6. Java 配列
- 0.0.7. Java Silver Switch文
- 0.0.8. Java Silver めも
- 0.0.9. JavaはまだChromeやEdgeで使えるのか?解決策としてのCheerpJの紹介
- 0.0.10. Eclipse と IntelliJ IDEA で Java コンパイラの仕様に差異がある
- 0.0.11. ListのnullチェックにはCollectionUtils.isEmpty()を使おう!
- 0.0.12. Java勉強メモ7_標準ライブラリ
- 0.0.13. Java勉強メモ6_例外処理
- 0.0.14. Java勉強メモ5_クラスとオブジェクト
- 0.0.15. SpringBootのWarパッケージをDockerコンテナ化してみる
- 1. 目的
Java,kotlinの実装で共通で使えるモノ
# Java,kotlinの実装で共通で使えるモノ
↓実装の際に参考にさせて頂いたサイト
「Java8」LocalDateTimeクラスのtruncatedToメソッドで時間を切り捨てるサンプル
https://arkgame.com/2020/11/05/post-160269/### その他参考サイト
Java8の日時APIはとりあえずこれだけ覚えとけ
https://qiita.com/tag1216/items/91a471b33f383981bfaa
Androidアプリ開発環境のメモ
# 目的
Android開発環境で詰まらないための備忘メモ書き# android開発環境について
> まず公式からインストールですが、以下の場合は注意が必要です。> AndroidStudioではなく、Eclipseで環境整えたい場合は、Javaのバージョンを合わせないと「sdkmanager –list」sdkmanager(以下略SDK)コマンド後にJVMエラーが出る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57249/7c9fa98f-5e90-e864-72bc-a6b661b66e0a.png)## 補足
> もし、環境構築で縛りが特になかったり、訳あって、Javaバージョンをいくつかローカルに落としていて、使いたいSDKとJavaのバージョンが合わせられない場合は、AndroidSudioをインストールして、開発を進めるのもよいかもしれません。### sdkmanagerって?
> Android SDK のパッケージを表示、インストール、更新、ア
privateで修飾されたフィールド、メソッドへのアクセス
アクセス方法
publicで修飾されたメソッド経由でアクセス“` Test.java
package test;public class Test {
private int num;
public int getNum() {
return num;
}public void setNum(int num) {
this.num = num;
}private int calc(int x,int y) {
int f = getNum();
int result = x * y + f;return result;
}
public int calc2(int w,int z) { //calcメソッドアクセス用
calc(w,z);
//privateには同じクラス内からのみアクセスできる
//引数w,zに入れられた値はcalcメソッドのx,yに入るreturn calc(w,z);
}}
“`
“`Main.java
Test test =
Java学習 条件分岐
# if文
Javaでのif文
“`java
class Main {
public static void main(String[] args) {
int value = 10;if (value > 0){
System.out.println(“値は正です。”);
}
}
}
“`
実行結果
“`
値は正です。
“`## if文の使い方
“`java
if ( 条件式 ) {
条件式を満たす場合に実行する処理
}
“`
### Rubyの記述方法との違い・条件式を()で囲む必要があること
・行いたい処理を{}で囲む必要があること## そのほかの条件分岐
Rubyでのelse, elsifはJavaでは以下のように記述する。“`java
class Main {
public static void main(String[] args) {
int value = 10;if (value > 0){
System.out.println(“値は正です”);
javaとpythonの違い
今回の記事はJavaとPythonの違いをコードを示しながら備忘録として残します。
## 問題
https://atcoder.jp/contests/abc336/tasks/abc336_a
### Python
pythonで解いた場合は以下になる
“`python
N = int(input()) # 文字列を読み込み整数に変換する
ans = ‘L’
for i in range(N):
ans += ‘o’
print(f'{ans}ng’)
“`
### Java
Javaで解いた場合は以下になる
“`java
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num = input.nextInt(); // 整数を読み込む
String ans = “L”;
for
Java 配列
配列にnullを入れるとNullPointerExceptionが投げられる
**2つ目の要素がどこも参照していないため**
“`java
String [][]array = {{“A”,”B”},null,{“C”,”B”,”D”}};
int total = 0;
for(String[]temp:array) {
total += temp.length;
}System.out.println(total);
“`
これはok
要素の値として入れているため
“`java
String [][]array = {{“A”,”B”},{“C”,”B”,”D”}};
array[0][0] = null;
int total = 0;
for(String[]temp:array) {
total += temp.length;
}System.out.println(total);
“`
これもok
[1][0]の値として入っているため
“`java
String [][]ar
Java Silver Switch文
## Switch文 NullPointerExceptionがスローされる時
・finalで修飾するとcase式で使える
・変数case式では使えない
・引数にnullを渡すとnullpointerexceptionが発生
“`java
final int Num = 0;
int num = 0;
String str=null;try {
switch(str) {//条件はString型
case “10” : System.out.println(“a”);
break;
case “Num”:System.out.println(“b”);
break;
default:System.out.println(“default”);
}
}
catch(NullPointerException n){
System.out.println(“nullです”); //nullを入れているため
}
Java Silver めも
# var の使い方
**ローカル変数** の宣言でしか使えない:::note alert
フィールドの宣言や、引数宣言で使うとコンパイルエラーになる
:::# ==とequals
#### ==は同一性
同一性は同じ参照かどうかを判定
“`java
Sample s1 = new Sample(10);
Sample s2 = s1;
System.out.println(s1==s2);
//true
“`“`java
Sample s1 = new Sample(10);
Sample s2 = s1;
s1 = new Sample(10)
System.out.println(s1==s2);
//false
“`“`java
Sample s1 = new Sample(20);
Sample s2 = new Sample(20);
System.out.println(s1==s2);
//false
“`
#### equalsは同値性“`java
Sample s1 = new Sample(20);
Sample s2 =
JavaはまだChromeやEdgeで使えるのか?解決策としてのCheerpJの紹介
![rectangle_large_type_2_305e069cc554723270842d3aefc91891.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486144/62d4afb4-b6be-2b7f-a43a-c2ccbe77df07.jpeg)
広く使われているプログラミング言語であるJavaは、何十年もの間、ソフトウェア開発業界の基本技術となってきた。Webブラウザを含むさまざまなプラットフォームで数多くのアプリケーションを動かしてきた。しかし、テクノロジーが進化し続けるにつれ、[Javaとモダンブラウザの互換性](https://leaningtech.com/cheerpj/)が議論されるようになりました。
このブログは、その疑問を解決することを目的としている: Javaは今でもChromeやEdgeで使えるのか?
__Javaアプレットとその衰退__
Javaアプレットは、かつてWebブラウザでインタラクティブなコンテンツを配信するための一般的な手段でした。アプレットに
Eclipse と IntelliJ IDEA で Java コンパイラの仕様に差異がある
# 概要
Eclipse から IntelliJ IDEA に乗り換えた時に、
Java コンパイラの仕様の差異で、落とし穴にハマったのでメモ程度にまとめます。# 詳細
– Eclipse では **Eclipse Compiler for Java** (略してECJ)を使用している
– IntelliJ IDEA では **javac** を使用している基本的には ECJ の方が制約が緩い傾向にあるため、
ECJ では通っていたソースコードが javac では通らないということが発生しうる**Eclipse どっぷり Java エンジニア**の場合、知らず知らずのうちにECJでしか通らない構文でコーディングしている事があるので、
同じソースコードを IntelliJ IDEA に持っていた時にビルドエラーが発生して困ることがあります。。(悲しい)# 解決策
IntelliJ IDEA において Eclipse と同様のコンパイルにしたい場合は、
Java コンパイラの設定を開き、使用するコンパイラを **javac** → **Eclipse** に変更する![
ListのnullチェックにはCollectionUtils.isEmpty()を使おう!
はじめに(読み飛ばし推奨なので折り畳み)
こんにちは。なっしーです!
しばらくQiitaを放置しつつ、業務や資格試験に挑戦などをしていたらあっという間に開発経験1年半強?くらいになってました。
大学やPa〇zaで書いていた独りよがりなコードとは違い、きちんとした制約や原則に基づいた美しいコードにずっと触れる毎日でとても楽しいです。今回は業務で得た豆知識を紹介したいと思います!
(おそらく多くの人が知っているものかもしれませんが、私と同じ若手向けの記事なのでユルシテ…ユルシテ…)
# 想定読者層
この記事は私と同じ若手向けのものです。
Javaがほんの少しだけわかり、Javaでの業務ロジックや個人開発などでコードを書き始めた人を想定しています。# 忙しい人向け結論
– ListのnullチェックにはCollectionUtils.isEmpty()を使おう!
– CollectionUtils.isEmpty()はListだけでなく、Collectionで
Java勉強メモ7_標準ライブラリ
# 標準ライブラリ
### Stringクラス
**String**クラスは、文字列を操作するためのメソッドを提供します。
#### 主要な特徴
文字列は不変であり、一度作成すると変更できません。
新しい文字列を作成すると、実際には新しい**String**オブジェクトが生成されます。
#### 主要なメソッド
1. length()
**説明**: 文字列の長さ(文字数)を返します。
**例:** str.length()
2. charAt(int index)
**説明:** 指定されたインデックス位置にある文字を返します。
**例:** str.charAt(0)
3. substring(int beginIndex, int endIndex)
**説明:** 文字列の指定された範囲のサブストリングを返します。
**例:** str.substring(1, 4)
4. equals(Object anotherString)
**説明:** 文字列が指定されたオブジェクトと等しいかどうかを比較します。
**例:** str.equals(“test”)
5. equals
Java勉強メモ6_例外処理
# 例外処理
### Try-Catch ブロック
**概要:** **try**ブロック内でコードを実行し、例外が発生した場合は**catch**ブロックでそれを捕捉して処理します。
“` java
try {
// 例外が発生する可能性のあるコード
} catch (ExceptionType name) {
// 例外を処理するコード
}
“`
例:
“` java
try {
int division = 10 / 0;
} catch (ArithmeticException e) {
System.out.println(“算術例外が発生しました: ” + e.getMessage());
}
“`
### 例外の種類
Javaの例外には大きく分けて以下の三種類があります。1. チェック例外(Checked Exceptions)
コンパイル時にチェックされる例外。
プログラマがこれらの例外に対処することが期待されます(例: IOException、SQLException)。2. 実行時例外(Runtime Exceptio
Java勉強メモ5_クラスとオブジェクト
# クラスとオブジェクト
### クラスの定義
クラスはオブジェクトの設計図です。クラスを定義することで、オブジェクトの属性(フィールド)と振る舞い(メソッド)を指定します。#### 1.構造
**フィールド(Fields):** オブジェクトの特性を表します。例えば、車のクラスには色や速度などが含まれます。
**メソッド(Methods):** オブジェクトが実行できるアクションを定義します。例えば、車が加速する動作など。
**コンストラクタ(Constructors):** クラスからオブジェクトを作成するための特別なメソッドです。オブジェクトの初期化に使われます。
“` java
public class Car {
String color; // フィールド
int speed; // フィールド// コンストラクタ
Car(String c, int s) {
color = c;
speed = s;
}// メソッド
void accelerate(int
SpringBootのWarパッケージをDockerコンテナ化してみる
目的
Springbootアプリケーションをコンテナ化したことがなく、SpringbootのDockerコンテナ化の記事は見るが、Warパッケージのコンテナ化の記事は見た記憶がないのでWarでも問題なくコンテナ化できるか確認と練習のため。自分用メモ
プロジェクトの用意
コンテナ化の確認のためだけなので依存関係は最小限(画像はGradleになっているがMaven選択)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673518/edf0280f-b3a0-eb98-3fef-af7bbed5dc1c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/673518/b0f3b083-d6f8-071c-e448-2b8bdf6128ba.png)
“`pom.xml
可変長引数【Java】
### 可変長引数とは
Java言語における可変長引数は、メソッドに任意の数の引数を渡すことができる機能です。
メソッドの定義側では配列と同じように扱います。
また、呼び出し側で直接配列を指定することも可能です。### 書き方
::: note
メソッド定義側
型と引数名の間に「…」を入れて書く。
“`
例)static void Sample(String… name) {}
“`異なる型を引数に指定する場合は、以下のように**最後**に可変長引数を定義します。
“`
例)static void Test(int num, byte b, String… name) {}
“`
:::::: note
メソッド呼び出し側
引数を通常通りカンマ区切りで定義します。
“`
例)Sample(“111”, “abc”, “aiueo”);
“`
:::
FlinkとDroolsでストリーム処理
## はじめに
本記事ではApache FlinkとDroolsとを組み合わせ、ストリーム処理を行う方法について書いていきます。
ストリーム処理とは、システムにおいて継続的に発生するデータを、リアルタイムで収集・変換・解析することで、ビジネスにとって有用な結果を導きだすことを指します。金融商品の価格データをもとにした自動売買の仕組みや、工場のセンサーデータをモニタリングすることによる異常検知など、様々なシーンで応用されています。
## Flink(Apache Flink)について
Javaで利用できるOSSで、ストリーム処理を実装するための豊富なAPIが提供されています。
データを受け取り、特定の操作をしたうえで後続の処理に流す事が可能です。
Flinkでは、下図のようにData Source・DataStream Transformation(Operator)・Data Sinkという3段階の手続きを記述することでストリーム処理を実装することができます。“`mermaid
graph1_[Data Source]
2_[Operator]
3_[Data S
Spring Boot学習⑤~エラーメッセージをプロパティファイルで一元管理する~
前→https://qiita.com/19960417akiho/items/4f89cf51b69125c4cdc9
以下の動画を参考に、ハンズオン形式でSpring BootでWebアプリを制作していきます。
今回はPart11。
エラーメッセージをプロパティファイルで一元管理できるようにします。
まずは、src/main/resorces下に、エラーメッセージを管理するファイルを作ります。
ファイル名は必ず`messages.properties`でないといけません。
このファイルに、キーと値という形式でメッセージを管理していきます。
以下の通りです。
# messages.properties
“`
login.wrongInput = ログインIDとパスワードの組み合わせが間違っています。
“`今回は、ログイン失敗時のメッセージをこのファイルから引っ張ってきて表示するような実装を行います。
ファイル作成の次は、`messages.properties`からロ
Windows版 Cursorのターミナルで日本語の文字化けを解消する方法
WindowsのCursorでターミナルに出力する日本語がどうしても文字化けするときの解消方法。
最適解ではないかもしれないが、これも1つの方法という事で。# ターミナルはPowerShell
設定を変更していなければターミナルはWindowsPowerShellが動作しているのでPowerShellに対して文字コードを指定してあげればよい。
要は文字コードをUTF-8にしてあげれば文字化けは解消する。ちなみにWindowwsPowerShellではなくコマンドプロンプトに変更することもできる。
### PowerShellでの文字コード変更方法
ターミナルで以下のコマンドを入力する。
>“`
>$OutputEncoding = [System.Text.Encoding]::UTF8
>[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
>“`まぁ毎回上記2行を入力するのは面倒なので「changeUTF8.ps1」といったテキストファイルを作成し上記コマンドを記載しておく。
(拡張子ps1はPowerS
【初めてのJava】まずはコーディングしてみた(スレッド / その1)
## はじめに
スレッドの実装練習として、カウントダウンするタイマー機能を作ってみました。
タイマーは標準のものは使わず、自作します。## 機能
指定した数値からスタートして、1秒ごとにカウントダウンするだけの機能です。## ソースコード
“`java:App.java
/*
*/
import java.util.Scanner;
public class App{
public static void main(String[] args){
try(Scanner scanner = new Scanner(System.in)){System.out.print(“カウントダウン値入力 “);
int num = scanner.nextInt();CountDownThread countDownThread = new CountDownThread();
countDownThread.start();