- 1. 解いてみた。「Aランク:じゃんけんの手の出し方」
- 2. Java APIについて、まとめてみました
- 3. Javaで「MULTILINEフラグ(複数行モードを有効にする)」の動作を確認してみた
- 4. Eclipseインストールマニュアル
- 5. Android Studioでハマった話
- 6. 解いてみた。「Aランク:ハノイの塔」
- 7. MVCモデルについて
- 8. MyBatisで値オブジェクトとかを使う際の構文とかメモとか
- 9. 解いてみた。「Aランク:山折り谷折り」
- 10. 解いてみた。「Aランク:本の整理」
- 11. Javaでオセロを実装してみた
- 12. Javaのプリミティブ型とオブジェクト型の違い
- 13. Java Goldを3週間で取得した勉強法
- 14. 継承よりインターフェース・委譲を使ったほうがいい話
- 15. Javaで「CASE_INSENSITIVEフラグ(大文字と小文字を区別しない)」の動作を確認してみた
- 16. 【Java】recordでCustom Constructorを実装する際に「Non-canonical record constructor must delegate to another constructor」のエラーが発生
- 17. 【Spring Security】認証トークンって何?
- 18. Paiza×Qiitaキャンペーン 全問Javaで解説してみた【D 足し算 編】
- 19. Paiza×Qiitaキャンペーン 全問Javaで解説してみた【D 一番小さい値編】
- 20. [備忘録 その17] Java Silver ~モジュールシステム~
解いてみた。「Aランク:じゃんけんの手の出し方」
# 問題
[「Aランク:じゃんけんの手の出し方」]()# コード
Javaで解いてみました。“` Java
import java.util.*;public class Main {
public static void main(String[] args) {Scanner sc = new Scanner(System.in);
int nN = sc.nextInt();
int nM = sc.nextInt();String sS = sc.next();
// 相手の出す手の種類の集計
int nGu = 0;
int nChoki = 0;
int nPa = 0;for (int i = 0; i < nN; i++) { switch(sS.charAt(i)) { case 'G':
Java APIについて、まとめてみました
## はじめに
Java API(Application Programming Interface)は、Javaプログラミング言語で開発されたアプリケーションが他のソフトウェアやサービスとやり取りするための一連の定義やプロトコルです。Java APIは、Javaプラットフォームの一部として提供される標準ライブラリや、サードパーティのライブラリを含む広範な機能を提供します。今回は、このJava APIについて、まとめてみました。## Java APIの基本概念
1. **パッケージ**
Java APIは、関連するクラスやインターフェースをまとめたパッケージとして提供されます。例えば、`java.util`パッケージには、コレクションフレームワークや日付・時間の操作に関するクラスが含まれています。2. **クラスとインターフェース**
APIは、クラスやインターフェースの形で提供されます。クラスはオブジェクトの設計図であり、インターフェースはクラスが実装すべきメソッドのセットを定義します。3. **メソッド**
クラスやインターフェースには、特定の機能を実行するためのメソ
Javaで「MULTILINEフラグ(複数行モードを有効にする)」の動作を確認してみた
# 概要
Javaで「MULTILINEフラグ(複数行モードを有効にする)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/regex/index18.html
# 実装
以下のファイルを作成しました。
“`JSample18_1.java
import java.util.regex.*;class JSample18_1{
public static void main(String[] args){
String target1 = “apple is red\nlemon is yellow”;
String target2 = “lemon is yellow\napple is red”;String regex = “^apple”;
Pattern p1 = Pattern.compile(regex);Matcher m1_1 = p1.matcher(target1);
System.out.println(target
Eclipseインストールマニュアル
:::note
エクスプローラーの設定で,「拡張子の表示」と「隠しファイルの表示」をオンにしておくことをおすすめします.
:::# はじめに
Eclipseのインストール手順を解説します.Eclipse2021まではzipファイルのダウンロードの後,7-zipを用いて解凍する必要がありましたが,Eclipse2022以降は自己解凍機能が含まれたzipファイルをダウンロードするため7-zipを用いる必要がありません.
ではインストールに移りましょう.
# 参考資料
– 授業資料
– [Pleiades All in One ダウンロード](https://willbrains.jp/)
– [Eclipseのインストールから使い方まで~EclipseでJavaプログラムを実行してみよう!](https://proengineer.internous.co.jp/content/columnfeature/7853)# インストール
## zipファイルのダウンロード
まずは[https://willbrains.jp/](https://willbrains.jp/
Android Studioでハマった話
# はじめに
弊学の`Java`の講義では後半で`Android Studio`を用いたAndroidアプリの演習を行います.その際,計算機室のパソコンに入っている`Android Studio`バージョンと最新版(2023年現在)をインストールしたときの挙動が違いハマったので備忘録としてまとめます.# ハマったこと
計算機室の`Android Studio`では,演習で使うテンプレートとして画像の`Empty Activity`を選択すればいいです.しかし,最新版では`Empty Activity`を選択するとこのあとの画面で`Java`を選択できなくて詰みます.(`Kotlin`しか使えない)![スクリーンショット 2024-08-17 16.44.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806676/d484ed1b-4cfd-20a9-075c-755ca8d95789.png)
# で,どうすればいいのか
ちょっと下にある`Empty Views Activity`を
解いてみた。「Aランク:ハノイの塔」
# 問題
[「Aランク:ハノイの塔」](https://paiza.jp/works/mondai/real_event/hanoi)# コード
Javaで解いてみました。“` Java
import java.util.*;public class Main {
private static ArrayList
> alst;
private static int nT;public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int nN = sc.nextInt();
nT = sc.nextInt();// 初期設定
alst = new ArrayList>();
for (int i = 0; i < 3; i++) { a
MVCモデルについて
# MVCモデルについて
WEBアプリについて独学や講義を受けるとMVCモデルについて学ぶと思います。
MVCモデルについてはそれぞれの役割についてまとめます。
* M(Model):アプリケーションのビジネスロジックを担当。データの更新等を行う
* V(View):ユーザに表示するビュー。モデルで取得したデータを利用してレンダリングする
* C(Controller):ユーザの入力を処理し、入力データに基づきモデルを操作し、結果をビューに返却するMVCモデルについては以下のようなイメージになるかと思います。
**MVCモデルイメージ**
“`plantuml
(View) <-> (Controller)
(Controller) <-> (Model)
“`# MVCモデルの動作について
ユーザにはViewを返却することになりますが、コーディングとしていると、コントローラーで返却することになるため、モデルイメージと若干のギャップがあるかと感じると思いますので、具体的にどのような動作になるのか説明したいと思います。“`plantuml
autonumber
acto
MyBatisで値オブジェクトとかを使う際の構文とかメモとか
値オブジェクトとMyBatisの組み合わせでハマったポイントをメインに構文とかメモとかを書いておく。~~ハマったと言いつつどうハマったのかは書いてません。~~
## 雛型
上2行はおまじない。
`namespace`に、xmlに対応するMapper.javaの絶対パスを記入する。
~~~xml:雛型xml
~~~ ~~~Java:例:Mapper.java
package com.example.demo.infrastructure@Mapper
public interface Mapper{}
~~~~~~xml:例:Mapper.xml
解いてみた。「Aランク:山折り谷折り」
# 問題
[「Aランク:山折り谷折り」](https://paiza.jp/works/mondai/real_event/origami)# コード
Javaで解いてみました。“` Java
import java.util.*;public class Main {
public static final boolean TANI = false;
public static final boolean YAMA = true;public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int nN = sc.nextInt();// 初期設定
int nSize = 0;
boolean[] abFolds = new boolean[(int)(Math.pow(2, nN))];// 谷折りをi 回開く
解いてみた。「Aランク:本の整理」
# 問題
[「Aランク:本の整理」](https://paiza.jp/works/mondai/real_event/book_sort)# コード
Javaで解いてみました。“` Java
import java.util.*;public class Main {
public static void main(String[] args) {Scanner sc = new Scanner(System.in);
int nN = sc.nextInt();
int[] anBooks = new int[nN+1];// 本の並び順を格納
for (int i = 1; i <= nN; i++) { anBooks[i] = sc.nextInt(); } // 交換回数 int nChange = 0; // 左からi冊目の本について for (int i
Javaでオセロを実装してみた
## 概要
今回はjavaでオセロゲームのコードを書いてみました。
練習用で記述していますのでご承知ください。### 参考元
以下の記事を参考元しています。
@nogitsune413様
大変勉強になりました。ご投稿感謝申し上げます。https://qiita.com/nogitsune413/items/d252a879480480a0697a
### ソースコード
“`Osero.java
import java.util.Scanner;
public class Osero{
private static final int L = 10,
WALL = 9,
EMPTY = 0,
BLACK = 1,
WHITE = 2,
PASS = 1,
Javaのプリミティブ型とオブジェクト型の違い
Javaにおけるプリミティブ型とオブジェクト型(ラッパークラス)の違いについてメモ。
検証では Java の REPL ツールである [JShell](https://docs.oracle.com/javase/jp/11/tools/jshell.html#GUID-C337353B-074A-431C-993F-60C226163F00) を使用する。“`
$ jshelljshell> System.out.println(“Hello”);
Hello
“`そのため、変数の型を確認できる `/v` という JShell 特有の記法も使用しているので注意。
“`
jshell> /v 3
| Integer nullableInteger = null
“`※ 以後コードを書く際は `jshell>` の表記を省略する
### 1. 値の比較
正直このメモを残すために記事を書いてる。
オブジェクト型の比較では `equals()` メソッドを使用する必要がある。“`java
int a = 5;
int b = 5;
Sys
Java Goldを3週間で取得した勉強法
## まえおき
Java Silver SE11の資格取得から2カ月経過後に勉強をスタートしました。
基本的なJavaの文法は理解してるくらいな状態でした。
(Silverは83%で合格でした。)### 自己紹介
+ エンジニア歴 2年目
+ 受験時にはJavaの開発経験なし
+ フロントエンドの開発経験あり## 学習時間と正答率
+ Java Silver:39時間、正答率:83%
+ Java Gold:72時間、正答率:79%## Java Goldについて
Silverと比較して難易度はかなり上がります。
覚える量がSilverの倍くらいある印象でした。
ただ参考書などは充実しているので、勉強時間を確保できたら取得できる資格です。コード読解の練習にもなるので、個人的には学習してよかったです。
Javaを使わなくても、資格の知名度や他の言語学習にも流用できる点を考えるとおすすめです!### 要点
https://qiita.com/Anest_Doi/items/eebc8d19743330a612edとてもまとまっていたので、参考にさせていただきまし
継承よりインターフェース・委譲を使ったほうがいい話
## はじめに
この記事は僕が技術本や記事で得た知見の理解を深める目的で作成しました。
間違っている箇所や、感想等ありましたらコメントいただけると嬉しいです。## 対象読者層
– 抽象クラス・インターフェースは知っているけど、使い分けがわからない
– 委譲の仕組みは何となく知っているけど、具体的にどう使えばいいかわからない## 結論
可能な限り、抽象クラスの継承は避ける。
インターフェース・委譲を積極的に使おう。
どうしても継承を使うなら、**慎重に**設計しよう。## 継承のNGパターン
はじめに、継承を用いたNGパターンを見てみましょう。### 実装例
以下のサンプルコードは決済処理を表現したコードになります。#### クラス図
“`plantuml
@startuml
package Payment {
class PaymentProcessor {
+payment(amount: int): void
#addPoints(points: int): void
+processPayment(am
Javaで「CASE_INSENSITIVEフラグ(大文字と小文字を区別しない)」の動作を確認してみた
# 概要
Javaで「CASE_INSENSITIVEフラグ(大文字と小文字を区別しない)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/regex/index17.html
# 実装
以下のファイルを作成しました。
“`JSample17_1.java
import java.util.regex.*;class JSample17_1{
public static void main(String[] args){
String[] target = {“apple”, “Apple”, “APPLE”};String regex = “apple”;
Pattern p1 = Pattern.compile(regex);for (int i = 0; i < target.length ; i++){ Matcher m = p1.matcher(target[i]); System.out.println(target[
【Java】recordでCustom Constructorを実装する際に「Non-canonical record constructor must delegate to another constructor」のエラーが発生
## 概要
JavaのrecordでCustom Constructorを実装する際、[【Java】コンストラクタ](https://zenn.dev/miya_akari/articles/bdcf90b497ee69)の記事にあるように、classと同様の形式で以下のように実装したとします。“`java
public record LatLonResponse(double lat, double lon) {
// Custom Constructorの実装
public LatLonResponse(Double[] lonLat) {
this.lat = lonLat[1];
this.lon = lonLat[0];
}
}
“`ただ、この実装だと`Non-canonical record constructor must delegate to another constructor`というエラーになります。ではどう実装すればよいかのメモ書きです。
## 前提
* 今回使用したJDKは`Corret
【Spring Security】認証トークンって何?
## はじめに
SpringSecurityの認証トークンについて、トークンってなに?何ができるの?みたいなところ解決していければと思い記事を書いていきます。
間違いなどございましたらご指摘いただけますと幸いです!## (まずSpring Securityとは)
認証や認可、およびその他多くのセキュリティ対策を簡易に実装できるSpringのフレームワークです。
認証:ユーザーが誰であるかを確認する(ログインのこと)
認可:認証された(ログインした)ユーザーが特定のページにアクセスできるかを決定する方法(権限があるかないか)## よく聞くトークンってなんなの?
トークンは、認証や認可のプロセスにおいてユーザーの認証情報を安全にやりとりするための文字列です。
このトークンはユーザーは見れないものになっています。
ちなみに、今回は認証トークンについての説明ですがトークンにはさまざまな種類があります。
下記にどんなトークンがあるのか書いておきます。
“`
1. 認証トークン
– JWT(JSON Web Token)
ユーザー認証に使用されるトークンの一種で、セッションの代わりに使用
Paiza×Qiitaキャンペーン 全問Javaで解説してみた【D 足し算 編】
# はじめに
学習する為に使用したJavaの教科書によっては難易度が変わるかもしれません。# 問題へのリンク
https://paiza.jp/works/mondai/d_rank_skillcheck_sample/addition
# 解答コード
~~~
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);final int A = scanner.nextInt();
final int B = scanner.nextInt();System.out.println(A + B);
scanner.close();
}
}~~~
# 解説
1行空白区切りで入力値を受け取るので、scanner.nextLine()しか知らない場合には少し難易度が上がります。
Paiza×Qiitaキャンペーン 全問Javaで解説してみた【D 一番小さい値編】
# はじめに
D Rankの問題をただ解くだけだと初心者専用記事になってしまうので、通常の解法とは別に、Stream APIも使って解いてみました。# 問題へのリンク
https://paiza.jp/works/mondai/d_rank_skillcheck_sample/min_num# 解答コード
通常
~~~
import java.util.Scanner;public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
final int NUMBER_OF_INPUTS = 5;
int min = Integer.MAX_VALUE;for (int i = 0; i < NUMBER_OF_INPUTS; i++) { int input = scanner.nextInt(); min = Math.min(min, in
[備忘録 その17] Java Silver ~モジュールシステム~
# モジュールシステム
コードをモジュールという単位で構成し、管理するための仕組みです。モジュールシステムは、大規模なアプリケーションの開発やライブラリの再利用を容易にし、依存関係の管理を強化することを目的としています。
## 1\.モジュールシステムの基本概念
#### モジュール
モジュールは、クラスやパッケージをグループ化し、明確に定義された境界を持つ単位です。各モジュールは、他のモジュールに対して何を公開するか(エクスポートするか)を指定できるため、アクセス制御が可能です。
__module-info.java__
モジュールシステムの中心にあるのが、__module-info.java__ というモジュール定義ファイルです。このファイルは、モジュールの名前、依存関係、およびエクスポートされるパッケージを定義します。__module-info.java__ はモジュールのルートに配置されます。
## 2\.module-info.javaの構造
module-info.javaの基本構造は次の通りです。
“`java
module com.example.module {