- 1. サンプル
- 2. 構文解析のやつ
- 3. Spring Boot学習②~ログイン成功時・失敗時の処理~
- 4. Spring Boot on Embedded Tomcatでリダイレクト時のLocationヘッダーの値を相対パスに変更する
- 5. JdbcTemplateからJdbcClientに移行して嬉しかったこと2つ
- 6. ポリモーフィズムが理解できてなかったのでまとめ
- 7. 【Java】ConcurrentModificationExceptionから学ぶListと拡張for文の仕組み
- 8. SpringBootでプロジェクト名変更
- 9. 【Java】プロパティの値が画面に表示されない(JSF)
- 10. Java log ログ ライブラリ
- 11. Java 簡単なまとめ
- 12. ProcessingでChatGPTを動かす
- 13. ABC334の解答[Java]
- 14. OpenTelemetry 調査
- 15. javaのコンパイルと実行方法
- 16. Job Interview Questions Java 3
- 17. Job Interview Questions Java 2
- 18. Job Interview Questions Java 1
- 19. Spring Boot学習①~ログイン画面の入力値を受け取る~
- 20. PlantUMLを用いた簡単なシーケンス図の作成方法
サンプル
# やることリスト
1. 挨拶
1. ほほおほ
1. 穂はおフォアhフォアhf
1. hふぁおwf### コードブロック
“`java
//void method
public class Sample {
private String value;
public void setValue(String value) {
this.value = value;
}
}
“`
構文解析のやつ
みなさまお久しぶりでございます。
アドオンシリーズは更新していません()
また機会があれば更新しようかと思います(投げやり)とりあえず自分用メモ
“`java:Lexer.java
public class Lexer {
private static final ArrayListlist = new ArrayList<>(); // 結果
// 検知する文字とか
private static final Listbrackets = Arrays.asList(‘(‘,’)’,'{‘,’}’,'[‘,’]’);
private static final Listoperators = Arrays.asList(‘=’,’+’,’-‘,’*’,’/’);
private static final Liststrings = Arrays.asList(‘\”,'”‘);
private static final List
Spring Boot学習②~ログイン成功時・失敗時の処理~
前→https://qiita.com/19960417akiho/items/3fa636e6a26c371bcaa8
以下の動画を参考に、ハンズオン形式でSpring BootでWebアプリを制作していきます。
今回はPart6。
正しいペアのIDとパスワードを入力した際にはトップメニュー画面に遷移し、
誤ったペアのIDとパスワードを入力した際は、ログイン画面にその旨をテキストで表示します。まずはトップメニュー画面のhtmlとコントローラーを用意します。
# menu.html&MenuControler.java
“`menu.html
トップメニュー
トップメニューだよ
“`“`
Spring Boot on Embedded Tomcatでリダイレクト時のLocationヘッダーの値を相対パスに変更する
# バージョン
– Spring Boot 3.2
– Embedded Tomcat 10.1> – 3.2以前のバージョンでもできる可能性があります。
> – JettyやUndertowでのやり方は検証していません。# やりたいこと
デフォルトの状態では、リダイレクト時のLocationヘッダーは絶対パスになります(例: `https://a.example.com/dest`)。これは[Jakarta Servletの仕様](https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0#convenience-methods)らしいです。
しかし、クライアントとSpring Bootサーバーの間に複数ロードバランサーがあった場合、この挙動だとクライアントがうまくリダイレクトできない可能性があります。
なので、Locationヘッダーを相対パスにしたいです。# 結論
“`application.properties
server.tomcat.use-relative-redirects
JdbcTemplateからJdbcClientに移行して嬉しかったこと2つ
# バージョン
– Spring Framework 6.1
– Spring Boot 3.2# JdbcClientって?
Spring Framework 6.1(対応するSpring Bootは3.2)から`JdbcClient`インタフェースが導入されました。
内部的には`JdbcTemplate`および`NamedParameterJdbcTemplate`のラッパーです。
流れるようなインタフェース(Fluent API)が特徴です。# Optionalが使いやすい
`JdbcTemplate`で主キー検索してその結果を何かのクラスの`Optional`にしたい場合、👇のようにちょっと面倒でした。“`java:JdbcTemplateでOptionalを返す例
public OptionalselectById(Integer id) {
try {
Hoge hoge = jdbcTemplate.queryForObject(“””
SELECT id, name
ポリモーフィズムが理解できてなかったのでまとめ
ポリモーフィズムは、異なるクラス(サブクラス)が共通のインターフェース(スーパークラスで定義されたメソッド)を持ちながら、それぞれ異なる振る舞いを実装することを指す。
例として、図形というスーパークラスがあり、四角形、円といったサブクラスがある場合を考える。これらのサブクラスは、図形クラスから継承され、面積を計算するという共通のメソッドを持つが、その計算方法はクラスによって異なる。
“`java
class 図形 {
double 面積を計算する() {
return 0;
}
}class 四角形 extends 図形 {
double 幅;
double 高さ;四角形(double 幅, double 高さ) {
this.幅 = 幅;
this.高さ = 高さ;
}@Override
double 面積を計算する() {
return 幅 * 高さ;
}
}class 円 extends 図形 {
double 半径
【Java】ConcurrentModificationExceptionから学ぶListと拡張for文の仕組み
## 始めに
業務中にConcurrentModificationExceptionが発生するケースに出会い、エラーについて調べていく中で勉強になったことがあったのでまとめてみました。### この記事の対象者
・Javaの勉強をしている方
・ConcurrentModificationExceptionって何?と思っている方## ConcurrentModificationExceptionとは
Java SE 11 & JDK11 Documentには以下のように定義されています。
>この例外は、オブジェクトの並行変更を検出したメソッドによって、そのような変更が許可されていない場合にスローされます。
たとえば、あるスレッドがCollectionで反復処理を行っている間に、別のスレッドがそのCollectionを変更することは一般に許可されません。 通常、そのような環境では、反復処理の結果は保証されません。
この例外は、オブジェクトが別のスレッドによって並行して更新されていないことを必ずしも示しているわけではありません。 単一のスレッドが、オブジェクトの規約に違反する一連のメソ
SpringBootでプロジェクト名変更
# この記事はこれの続き
https://qiita.com/waokitsune/items/83febc4a0518d7d346aa
# リファクタリング機能でリネーム
プロジェクト上で右クリック → 『Refactor』 → 『Rename』。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/893a52a3-845f-1997-6818-751e140a37f8.png)demo → nekoに変えます。
『Update references』にチェック入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/7dbf009b-2a71-9c8a-a7a4-8e21b1f91088.png)# ビルドエラーへの対応
リファクタリング機能でリネームしても下記のようなエラーになります。
> Project neko cannot be ren
【Java】プロパティの値が画面に表示されない(JSF)
# はじめに
JSFで初歩的な動きを確認しようとしたところ、`Managed Bean`のプロパティをバインドして表示してくれない事象が発生。解決方法をメモ。:arrow_down: 要は`#{}`を使って画面に「Hello!」と表示したいのに、表示されない。
“`index.xhtml
FirstPage
Java log ログ ライブラリ
java.util.loggin
Log4j
Log4j2
https://logging.apache.org/log4j/2.x/Logback (SLF4Jと組み合わせた利用を前提)
https://logback.qos.ch/利用法
https://sukkiri.jp/loggers?via=devnote
Java 簡単なまとめ
Java
ProcessingでChatGPTを動かす
# はじめに
本記事は、[Processing Advent Calendar 2023](https://adventar.org/calendars/8532)参加記事です。
この記事では、Processing(Java)でChatGPT(GPTのAPI)を使ったコードを紹介します!
![sketch.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/929801/fdb20234-bf61-742f-1466-4199525e71da.gif)# 必要な準備
## OpenAI APIキーの取得
GPT(ChatGPT)のAPIを利用するためには、APIキーを作る必要があります。
作り方は↓のサイトを参考にしてください。参照:
https://notai.jp/openai-get-api-key/
> APIの使用は従量課金制です。利用料金等をよく確認してから使用しましょう。また、2023年12月現在は、最初の3ヶ月間にのみ使える無料利用枠が存在します。
## ライブラリのインポート
ABC334の解答[Java]
## はじめに
今回はコンテスト中にEまで、コンテスト後にFを解いたのでFまで載せようと思います。なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc334/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)をご確認ください。
では、見ていきましょう。## A – Christmas Present
問題文は[こちら](https://atcoder.jp/contests/abc334/tasks/abc334_a)単に比較して答えを出力しました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out = new SimpleWrit
OpenTelemetry 調査
# OpenTelemetryについて
## 目次
1. [概要](#概要)
2. [機能/詳細](#機能詳細)
3. [なぜ必要か](#なぜ必要か)
4. [サンプルコード](#サンプルコード)
5. [まとめ](#まとめ)## 概要
OpenTelemetryは分散トレーシングとメトリクスの観測性データを収集し、分析・監視・トラブルシューティングを行うためのオープンソースのツールキットです。分散システムのコンテキストをキャプチャし、リクエストの経路やパフォーマンスの問題を追跡するための一貫した手法を提供します。## 機能/詳細
OpenTelemetryには以下の主な機能があります:### トレーシング
分散トレーシングを使用して、リクエストの経路やリクエスト間のタイミング情報を収集します。これにより、アプリケーションのコンポーネント間の相互作用の可視化とトラブルシューティングが容易になります。### メトリクス
アプリケーションのパフォーマンスやリソース利用率を測定し、カスタムメトリクスを作
javaのコンパイルと実行方法
# Javaのコンパイルと実行
これから、Javaのソースコードを作成~実行までの流れを紹介します。
(JDKインストール済みでコンソールでJavaが使えるようになっている
こと前提で話します。)①ソースファイルの作成
・以下のソースコードをメモ帳(サクラエディタなどのテキストエディタ)を開いて、
記述する。
~~~
public class Test {
public static void main (String[] args){
System.out.print(“Hello”);
}
}
~~~
②ファイルを保存する
・ソースコードが書けたら、ファイルを保存しますが、
この時に拡張子は(.java)にすること!また、今回はわかりやすいように
デスクトップに保存しよう。:::note info
(保存する時、「ファイル名」と「ファイルの種類」を決められるので、
ここで「ファイル名」は「Test.java」として「ファイルの種類」は
「すべてのファイル」を選択して保存する。)
:::
③ソースコードをコンパイルする
Job Interview Questions Java 3
How do you reverse a string in Java?
How do you swap two numbers without using a third variable in Java?
Write a Java program to check if a vowel is present in a string.
Write a Java program to check if the given number is a prime number.
Write a Java program to print a Fibonacci sequence using recursion.
How do you check if a list of integers contains only odd numbers in Java?
How do you check whether a string is a palindrome in Java?
How do you remove spaces from a string in Java?
Ho
Job Interview Questions Java 2
1. What is the difference between JDK, JRE, and JVM?
2. What is the difference between an abstract class and an interface?
3. What are the different access modifiers in Java?
4. What is the difference between a checked and an unchecked exception?
5. What is the difference between a HashMap and a TreeMap?
6. What is the difference between a static and non-static method?
7. What is the difference between a stack and a queue?
8. What is the difference between overloading and overriding?
9. What is
Job Interview Questions Java 1
How do you handle exceptions in Java?
What is the difference between an interface and an abstract class in Java?
How do you implement polymorphism in Java?
How do you implement a linked list in Java?
How do you implement a stack in Java using an array?
How do you implement a binary search tree in Java?
How do you implement a bubble sort algorithm in Java?
How do you implement a merge sort algorithm in Java?
What is the Java Virtual Machine (JVM)?
What is the difference between static a
Spring Boot学習①~ログイン画面の入力値を受け取る~
以下の動画を参考に、ハンズオン形式でSpring BootでWebアプリを制作していきます。
今回はPart5、ログイン画面に入力された値(ユーザー名とパスワード)をコンソールに出力するところまでを実装します。
分からない部分はChatGPTに聞きながら進めていきます。
あくまで、躓いた部分等を個人的な備忘録として記録するための記事です。# login.html
ログイン画面のhtml部分は以下です。
本記事に必要な部分だけを抜粋しています。“`login.html
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた