- 1. Javaのequalsメソッドについて
- 2. MediatorLiveDataでNullPointerExceptionが出たときの対処法
- 3. Python,Ruby,PHP,Java,JavaScript,Perlの四則演算の比較
- 4. インクリメント演算子の前置と後置について
- 5. 半日404エラー解消に悩みまくった(Tomcat・サーブレット)
- 6. めちゃくちゃ簡易のビンゴゲームを作る #3
- 7. doma-templateでJdbcTemplateを2-way SQL化したサンプルをApache License 2.0で公開しました
- 8. ABC244A~Dの解答[Java]
- 9. [Java]staticを初心者向けに解説
- 10. JavaのSerializableに対する自分の理解
- 11. Python,Ruby,PHP,Java,JavaScript,Perlのデバッガ(デバッグ)の比較
- 12. switch文利用の注意点について(忘れないように)
- 13. 【Java基礎】インターフェース
- 14. Android StudioでWebViewアプリを作成してみる
- 15. 【Java基礎】継承
- 16. 【Java/Kotlin/JPA】entityをnullセーフにしたい
- 17. 初めてのSpringBootでのアプリケーション作成(実装編)
- 18. 初めてのSpringBootでのアプリケーション作成(環境構築編)
- 19. Python,Ruby,PHP,Java,JavaScript,Perlのコマンドライン引数の比較
- 20. 【JDK】インストールと環境変数の設定(Windows)
Javaのequalsメソッドについて
今日の実務で、実装レビューにて指摘があった箇所を備忘録として残す。
Javaの経験が浅い方や、古いバージョン(8以前)を中心に実装していた方が8以降のバージョンを扱い始めた方にもためになるかと思います。
## Stringクラスのequalsメソッド
Java歴が浅い方や最近学習を始めたという方は、文字列比較のために、Stringクラスのequalsメソッドを基本として学ぶと思います。
(僕も研修や独学時代はこれしか学びませんでしたし、今も癖で使ってしまいます。)Stringクラスのequalsメソッドは、比較する文字列が同値であるかどうかを判定してくれます。
なので、参照先が異なっていたとしてもtrueを返却してくれます。
“`java
String a = “あいう”;
String b = “あいう”;
String c = new String(“あいう”);System.out.print(a.equals(b));//true
System.out.print(a.equals(c));//true
“`(余談:実はObjec
MediatorLiveDataでNullPointerExceptionが出たときの対処法
### はじめに
以下のエラーが出た。> at androidx.databinding.ViewDataBinding.updateRegistration(ViewDataBinding.java:653)
“`java:ActivityMainBindingImpl.java
if (vModel != null) {
// read vModel.isNetworkError
vModelIsNetworkError = vModel.isNetworkError();
}
pdateLiveDataRegistration(0, vModelIsNetworkError); //この行で上記のエラー
“`>Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘void androidx.lifecycle.LiveData.observeForever(androidx.lifecycle.Observer)’ on a null object
Python,Ruby,PHP,Java,JavaScript,Perlの四則演算の比較
Python,Ruby,PHP,Java,JavaScript,Perlの四則演算の比較
# Python
https://qiita.com/hiroyuki_mrp/items/d7e4c2d75e947ab99caf
# Ruby
https://qiita.com/mat827/items/ee569f6549b83bb954e2
# PHP
https://qiita.com/koala_56/items/7ed631f62cf0f225f5a6
# Java
https://qiita.com/takahirocook/items/748990882f2de7a630a1
# JavaScript
https://qiita.com/_haya_/items/dbe80010a0a8ac9d70b1
# Perl
https://perlzemi.com/blog/
インクリメント演算子の前置と後置について
# インクリメント演算子の前置と後置の違い
javaシルバーの資格勉強をしていた際、インクリメント演算子が前と後ろに置かれているものがあり、「どっちだったかな〜」とど忘れしたので、その備忘録として。
# 前置のインクリメント
“`
++i
“`
このようなもの。# 後置のインクリメント
“`
i++
“`
このようなもの# どう違うのか
簡単にいってしまうと、評価されるタイミングが違う。
前置インクリメントの例
“`
int num=0;System.out.println(++num);
//1が表示される
“`
先にnum=0にプラス1してから(評価してから)表示させている。続いて後置インクリメントの例
“`
int num=0;System.out.println(num++); //0が表示
System.out.println(num); //1が表示
“`
1回目のSysoutでは後置インクリメントなので、一旦変数numの値を表示してから、プラス1をしている。
2回目のSysoutでは、1回目でプラス1した値(
半日404エラー解消に悩みまくった(Tomcat・サーブレット)
# 試したことメモ。
①サーバー上に追加し直し。(eclipse上)
これのことね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287651/f06e1853-2e40-47b9-4895-07d9e3d2f9ce.png)②(html or jspの)form action=”●●●”と(サーブレット側の)@WebServlet(“/●●●”)の一致を行った。
③buildフォルダにclassファイルができていない。
→プロジェクトのビルドが必要。取り急ぎ~
めちゃくちゃ簡易のビンゴゲームを作る #3
# はじめに
[前回までの記事](https://qiita.com/snow_saboten/items/cb3fd3af99575f12eeee)で見た目的にはビンゴゲームになってきたので、次の段階として、ビンゴゲームのリーチやビンゴの判定機能を作りたい。検索すれば答えがヒットするんだろうけど、自分で考え抜きたい意地が発現してしまったので、記事を書きながら頭を整理しつつ、作っていきたいと思う。# ふわっと作戦を考える
今ふわっと考えていることとしては、現状はカードに縦5マス並べたものを5列横に並べているのだが、これを二次元配列を使っての配置に変更すること。これで、縦横の判定はしやすくなるだろうと予想している。斜めに関しては、2パターンしかないし、個別に書き連ねるのが良いのかな?# まず二次元配列での配置で現状までの機能をつくる
## コード
“`Java
public class BingoGame extends JFrame implements ActionListener{
JButton mkCardBtn;
JPanel BingoCardPanel;
doma-templateでJdbcTemplateを2-way SQL化したサンプルをApache License 2.0で公開しました
# doma-templateの紹介
## doma-templateとは?
常々、SpringのJdbcTemplateでDomaの2-way SQLを使えたらいいのになあ・・・と思っていました。で、?のようなことをつぶやいたら、Doma作者のnakamura_toさんからこんなリプライをいただきました!
例えばですが、doma-coreライブラリに依存する形で新しいライブラリを提供するとかなら比較的簡単に実現できる気がします。ライブラリのgroup idがorg.seasar.domaでも構わないですよね?
— toshihiro nakamura (@nakamura_to) August 31, 2022
ABC244A~Dの解答[Java]
## はじめに
初めて4完したコンテストですね。懐かしい。
なお、コードは当時提出したものと簡単に書き直したものの二つを載せます。では、見ていきましょう。
## A - Last Letter
問題文は[こちら](https://atcoder.jp/contests/abc244/tasks/abc244_a)そのままですね。
0-indexedであることに注意しましょう。
```A.java
import java.io.*;
class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//Nは使わない
String decoy = br.readLine();//Sの受け取り
String str = br.readLine();//末尾だけ切り出して出力
System.out.println(str.su
[Java]staticを初心者向けに解説
# Java初学者に向けて
Java初学者がだいたいよくわからなくて詰まりがちなstaticをなるべくわかりやすくなると思って解説していきます。# クラスとインスタンス
まずはここの違いを認識しましょう。クラスとは設計図です。
```java
// ロボットの設計図
public class Robot{
private String name;public Robot(){
}public Robot(String name){
this.name = name;
}public String getName(){
return this.name;
}
}
```インスタンスとは、設計図を基につくったオブジェクトです。
```java
public static void main(String args[]){
Robot dora = new Robot("ドラえもん");
Robot koro = new Ro
JavaのSerializableに対する自分の理解
# そもそもSerializableとは
javadoc↓
https://docs.oracle.com/javase/jp/8/docs/api/java/io/Serializable.html`java.io.Serializable`がimplementされたクラスは、serialize(=直列化)できる。
serializeとは、具体的にはバイト配列化させるということ。バイト化させることで、クラスのデータをストリーム(ファイル)やディスクに読み書きできるようになるため、低レイヤでのデータやりとりが可能になる。
おもにdtoやformクラスにimplementすることが多い。
# Serializableをimplementしないことによって起きる害
sessionにdtoを詰める際は、dtoが直列化可能である必要がある。
(=Serializableをimplementしている必要がある)https://teratail.com/questions/78928
> HttpSessionオブジェクトは、コンテナへ特に設定しない場合はメモリに格納されたまま
Python,Ruby,PHP,Java,JavaScript,Perlのデバッガ(デバッグ)の比較
Python,Ruby,PHP,Java,JavaScript,Perlのデバッガ(デバッグ)の比較
# Python
https://qiita.com/kaitolucifer/items/dc58efebd72d72a8feb2
# Ruby
https://qiita.com/port-development/items/5ea6448eb2b45c70ef65
https://qiita.com/suketa/items/52c60d79332c9a24f973
# PHP
https://qiita.com/ryouya3948/items/0055c1935b7bd62ba3b9
# Java
https://qiita.com/gatchan03/items/3c43b674e2b7c4b5c5cb
# JavaScript
https://qiita.com/a_
switch文利用の注意点について(忘れないように)
本日実務で久しぶりにswitch文を実装する機会があったので、
Java silverにて学んだことをもう1度おさらいで備忘録として残そうかと思います。## Switch文利用の注意点
注意点は3つです。
基本的には、統合開発環境(eclipseなど)が赤線で教えてくれますが、
最初から知っていれば無駄な修正時間も省けます。### ①:case文の処理後は、break or returnを忘れない
```java
String status = "open";
int i = 0;
switch (status) {
case "open":
i++;
case "close":
i++;
break;//ここまで処理が実行されてしまう
}
```これは統合環境(eclipseなど)でも赤線を引っ張られないので、記載漏れがあった場合、
テスト時に気づく必要があります。case文に該当すれば、その中の処理が実施されますが、breakもしくはreturnをしないと次のcase文まで実行してしまいます。
### ②:case文で指定す
【Java基礎】インターフェース
# はじめに
最近Java基礎の研修を受けました。学生時代にJavaを授業で習って基礎は身につけていたのですが、忘れていた内容もあったので備忘録として書き残してみます。この記事では、**Javaの基礎的な内容に関してまとめていきます**。
今回は**インターフェース**です。# インターフェースとは
**インターフェース**とは、原則として、**publicな抽象メソッドだけを宣言できるクラスのようなもの**です。コンストラクタも宣言することができません。また、**インスタンス化できない**のも特徴です。# インターフェースの宣言
インターフェースは以下のように宣言します。
```java:インターフェースの形式
修飾子 interface インターフェース名 {
インターフェースのメンバ
}
```## メソッド
インターフェースには、publicな抽象メソッドが宣言できます。
```java:抽象メソッドの宣言例
interface Booking {
public abstract String getTitle();
List
Android StudioでWebViewアプリを作成してみる
## はじめに
転職による有休消化期間で何かしたいと思い、Androidで欲しかった機能を作ろうと思い立ちました。
期間は半月程度です。
ほしかった機能はここでは重要ではないので割愛しますが、Androidのローカルファイルへのアクセスが必要な他は特に必須機能がないのでアプリ画面はWebViewなどで簡易に作成することにしました。
Kotlinは未経験でしたが、Javaは経験済みだったため、Kotolinを一から学習するのではなく、JavaでのAndroidアプリをモック的に作成し、Kotlinにリファクタリングする形で差分学習をし、学習効率をあげようと計画しました。いつもの自分だったら、Kotlinの本などで一通り学習して、アプリの基本設計もして、準備万端な状態で開発に入るのですが、半月という期間でそれでは間に合いません。
また、こちらの本を読んだばかりで、まずモックを作ってしまうというアプローチや学習効率を模索したかったのもあります。(Kindle Unlimitedに入っています)
【Java基礎】継承# はじめに
最近Java基礎の研修を受けました。学生時代にJavaを授業で習って基礎は身につけていたのですが、忘れていた内容もあったので備忘録として書き残してみます。この記事では、**Javaの基礎的な内容に関してまとめていきます**。
今回は**継承**です。# 継承とは
**継承**とは、クラスの機能を受け継いで機能を拡張した新しいクラスを作成する方法です。
このとき、継承元となるクラスを**親クラス(スーパークラス)**、継承して新たに作成したクラスを**子クラス(サブクラス)** と呼びます。次の関係を見てみましょう。
+ 商品
+ 本
+ 食材このとき、「商品」という親クラスから、「本」「食材」という子クラスが作成されています。
## 継承の方法
継承は以下のように行います。
```java:継承の形式
class 子クラス extends 親クラス名 {
}
```継承の例を見てみましょう。
```java:「商品」クラス
class Item {
// 「商品」クラス
}
``````java:「本」クラス
clas
【Java/Kotlin/JPA】entityをnullセーフにしたい
こんにちは。こまつです。
概要
---
Java8からJavaにもnullセーフが入りました。optionalを使えばヌルポがなくなります。
とか言いながら、Java+SpringDataJPAではoptionalをマッピングできません。カスですね。
Kotlinならどうなるんでしょうか。前提
---
nullセーフとはヌルポになりうるコードをコンパイルエラーにしてくれるやつです。
Entityは特にnullセーフにする重要度が高いです。```nulセーフサンプル.java
String randomStr = new Random().nextBoolean() ? "わーい" : null; // nullかも知れない文字列
Integer length1 = randomStr.length(); // 1/2でヌルポ
Optionalstr = Optional.ofNullable(randomStr); // null知 文字列型定義
Integer length2 = str.length(); // コンパイルエラー
Integer leng
初めてのSpringBootでのアプリケーション作成(実装編)
# 概要
本記事では、プログラミング初学者が初めてWebアプリを作成してみて詰まったことや困ったことなどをまとめました。今回は実装編です。
[環境構築編](https://qiita.com/a-yama/items/8dd1e3fa61233f0fe50c)もありますので、是非そちらも併せて読んでいただければと思います。基本的には以下の記事で作成しているポモドーロタイマーと同じものを作成しています。
設計やコードなどはほぼほぼ一緒ですので詳細はそちらをご参照ください。https://qiita.com/Shiho_anyplus/items/59a93b1fcb09b6ef8e81
## 作成したアプリ画面
参考元の記事と少し違いますがcssの変更によるものだけで機能は同じです。
![スクリーンショット (520).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629104/020fed79-26af-7958-ffef-6b7040c5701a.png)### 環境
- Win
初めてのSpringBootでのアプリケーション作成(環境構築編)
# 概要
本記事では、プログラミング初学者が初めてWebアプリを作成してみて詰まったことや困ったことなどをまとめました。今回は環境構築編です。基本的には以下の記事で作成しているポモドーロタイマーと同じものを作成しています。
設計やコードなどはほぼほぼ一緒ですので詳細はそちらをご参照ください。https://qiita.com/Shiho_anyplus/items/59a93b1fcb09b6ef8e81
## 作成したアプリ画面
参考元の記事と少し違いますがcssの変更によるものだけで機能は同じです。
![スクリーンショット (520).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629104/020fed79-26af-7958-ffef-6b7040c5701a.png)### 環境
- Windows10
- Eclipse 2021
- Java 11
- PostgreSQL14# 作業してみて詰まったこと・困ったこと
Eclipseは使える!記事も読んだ!けどど
Python,Ruby,PHP,Java,JavaScript,Perlのコマンドライン引数の比較
Python,Ruby,PHP,Java,JavaScript,Perlのコマンドライン引数の比較
# Python
https://qiita.com/taashi/items/07bf75201a074e208ae5
# Ruby
https://qiita.com/shiGira/items/44586bdc48c06e00d99f
# PHP
https://qiita.com/aic0o/items/91ca1ddc1fc6e025286f
# Java
https://qiita.com/takahirocook/items/ece64146015f702d0a83
# JavaScript
https://qiita.com/furusin_oriver/items/f030d1eaa9e7b54233c3
# Perl
https://perlzemi.com/
【JDK】インストールと環境変数の設定(Windows)
## 環境
+ Microsoft Windows 10.0.22000.856
+ Windows Terminal 1.14.2282.0## はじめに
この記事ではJDKのインストールと環境変数の設定の手順を説明する。【用語解説】Java SE, JVM, JRE, JDK
### Java SE (Java Platform, Standard Edition)
**Java APIの集合体**。ここでいうAPIはJavaの機能やデータなどを利用するための呼び出し方を定義したもの。### JVM (Java Virtual Machine)
**Java仮想マシン**。Javaで作成されたアプリケーションをOSで動かすために必要となるアプリケーション。クラスファイル内のバイトコードをCPUが解釈できるマシンコードに変換するとともに、CPUに送って処理を実行する。### JRE (Java Runtime Environment)
**Java実行環境**。Javaのプログラムを実行するためのJVMや対応する