- 1. Windows11,Eclipse,Tomcat10 で古いJavaservletを動かす環境設定
- 2. JacksonのJsonNodeの使い方
- 3. JPAの Persistence Cascade
- 4. Java基礎文法Part9
- 5. Java基礎文法Part8
- 6. Java基礎文法Part7
- 7. Java基礎文法Part6
- 8. 【Java Silver】Oracle Java Silver SE11 試験
- 9. Web APIとは?REST APIの基礎と実装例
- 10. 例外処理
- 11. Java基礎文法Part5
- 12. Java基礎文法Part4
- 13. 自社プロダクトの開発でJava(spring boot)を使用した際のCI/CD周りについて
- 14. arctanのBigDecimal計算
- 15. 競技プログラミング(Java)をまとめてみた
- 16. IPv6アドレスからプレフィックス長とIPv6アドレス部分を分けて2進数にする方法
- 17. クソコードを読む上でのコールスタックの重要性
- 18. 今更きけないpleiades-all-in-oneを使わないEclipseのインストールに役立つリンク集
- 19. java。URLエンコード。標準ライブラリ。spring frameworkのライブラリの例
- 20. java。base64エンコード。標準ライブラリ。spring frameworkのライブラリの例
Windows11,Eclipse,Tomcat10 で古いJavaservletを動かす環境設定
# 業務忘備録
## インストール
eclipse C:\pleiades
tomcat10 C:\tomcat10
Java 21 C:\Program Files\Eclipse Adoptium\jdk-21.0.3.9-hotspot
Java 11 C:\Program Files\Eclipse Adoptium\jdk-11.0.23.9-hotspot## 開発環境(本番環境)
Java 11
Tomcat 10## Eclipse 設定
3. 新規立ち上げ
3. 新規フォルダ作成 C:\pleiades\workspace_
3. C:\pleiades\workspace_ 選択
3. パッケージ ⇒「動的 Web プロジェクトを作成します」選択
3. 任意のプロジェクト名入力「n00a」
3. ターゲット・ランタイム、新規ランタイム、Apache、Apache Tomcat v10.1、新規ローカル・サーバーの作成(選択)、次へ、Tomcat インストール・ディレクトリー⇒参照、C:\tomcat10(選択)、JRE⇒インストール済みのJRE⇒追加⇒標準
JacksonのJsonNodeの使い方
# はじめに
たまに使おうとすると忘れるのでメモ
インストール方法や基本的な説明はしないのでそれが目的の人は他をあたって欲しい。# 静的なクラス定義を使わない
Jackson を使う際、静的なクラス定義を使う場合と使わない場合で使い方が大きく異なる。
JSON表記に慣れると、Java のクラスなんていちいち書いていられない。
ここでは、**使わない方法だけ**を説明する。
アノテーション(@)も使わない。# サンプルプログラム
要点は、**ObjectMapper** と **JsonNode** を使う。
例示したほうが、理解が早い“`java
import java.util.Iterator;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fas
JPAの Persistence Cascade
### JPAにおける永続性の伝播(Cascade)
JPAでは、親エンティティ(`Order`)と子エンティティ(`OrderProduct`)、および関連するエンティティ(`Product`)の関係において、**永続性の伝播(Cascade)** は、親エンティティと一緒に子エンティティが自動的に保存、更新、削除されるようにするために使用されます。もし永続性の伝播が設定されていないと、関連するエンティティを手動でそれぞれ保存する必要があり、問題が発生することがあります。
### 永続性の伝播(Cascade)に関する主な原則
1. **Cascade設定**:親エンティティと子エンティティ間の関係で永続性の伝播(Cascade)を設定し、親エンティティが保存される際に子エンティティも自動的に保存されるようにします。`CascadeType.PERSIST` や `CascadeType.ALL` を使用することで、親エンティティが保存される際に子エンティティも自動的に保存されます。
2. **リレーションの設定**:適切に一方向または双方向の関連関係を設定し、関連するエンテ
Java基礎文法Part9
今回はスコープについて記事にしたいと思います。
スコープとは、プログラミングにおいて、変数やオブジェクトがどの範囲で有効(アクセス可能)かを示す概念のことです。スコープを理解することで、プログラムの中でどこで変数が使えるのか、またどこで使えないのかがわかり、効率的にコードを書くことができます。特にWeb開発やJSPのようなサーバーサイド開発では、スコープの管理が重要です。
1. スコープの基本的な考え方
スコープは、どこで変数やオブジェクトが生きているか(有効か)を指します。スコープの範囲外では、その変数やオブジェクトは使えなくなります。これにより、プログラムの中で変数の寿命やアクセスの範囲を制御できます。2. JSPにおけるスコープの種類
JSP(Java Server Pages)やサーブレットでは、スコープの概念が非常に重要で、データをどの範囲で使うかを決める4つのスコープが存在します。それぞれ、データをどれくらいの期間、どこで使用できるかを決定します。3. JSPのスコープの種類
ページスコープ(Page Scope)有効範囲: JSPページ内だけで有効です。
Java基礎文法Part8
今回は暗黙オブジェクトについて記事にしたいと思います。
暗黙オブジェクトとは?
**暗黙オブジェクト(Implicit Objects)**は、JSPで自動的に生成され、プログラマが特に宣言をしなくても使えるオブジェクトです。これらは、JSPページやサーブレットでよく使われるデータのやり取りや情報の処理を簡単に行うためのものです。なぜ「暗黙」なのか?
「暗黙」というのは、「開発者が特別に用意しなくても、最初から用意されている」という意味です。通常、Javaではオブジェクトを使うときにnewキーワードでインスタンスを作成しますが、暗黙オブジェクトはJSPが自動的に作成してくれるので、自分でインスタンスを作らなくても使うことができます。代表的な暗黙オブジェクトの一覧と使い方
request説明: クライアント(ユーザーのブラウザなど)からサーバーに送信されたリクエスト情報を扱います。フォームデータやURLのパラメータを取得するために使います。
使い方:“`jsp
String name = request.getParameter(“name”); // フォームの”
Java基礎文法Part7
今回は画面遷移について記事にしたいと思います。
リンクによる画面遷移
ウェブサイトにはよくリンクがありますよね。リンクをクリックすると、別のページに移動することができます。このようにして、あるページから別のページに簡単に移動することができます。例:
“`html
このリンクをクリックして「About」のページに行く
“`
タグ: これはリンクを作るためのタグです。
href=”about.html”: ここに移動したいページのURLを指定します。この例では、「about.html」というページに移動します。フォームによる画面遷移
リンクだけでなく、フォームを使って情報を送信し、それに応じて画面を切り替えることもできます。例えば、ログイン画面では、名前やパスワードを入力して送信ボタンを押すと、ログインの結果に応じて別の画面に移動することができます。例:
“`html
Java基礎文法Part6
本日はif文につい記事にしたいと思います。
基本構文
“`java
if (条件式){
処理
}
“`
条件式には結果boolean型となるものを書きます。
if文の条件式になると{中カッコ}の処理が実行され,
逆に条件式がfalseになると、{中カッコ}の処理は行われず、if文から抜けます。
条件式には比較演算子がよく使われます。比較演算子は、値を比べて「大きいか」「小さいか」「等しいか」などを判断するための記号です。if文の条件に使われることが多いです。よく使う比較演算子は以下の通りです:
“`java
> : 大きい(例:a > b → aがbより大きい)
< : 小さい(例:a < b → aがbより小さい) == : 等しい(例:a == b → aがbと等しい) != : 等しくない(例:a != b → aがbと等しくない) ``` if ~ else文 if ~ else文は、「もし○○ならば△△をする。そうでなければ□□をする」という形で、2つの選択肢を与える場合に使います。たとえば、晴れなら外で遊ぶ、雨なら家でゲームをする、という感じです
【Java Silver】Oracle Java Silver SE11 試験
## 使用した書籍やサイト
・progate(有料会員:3か月)
・せかチャン(YouTube動画)
・Javaの黒本
・黒本著者が教えるやさしくない!?java(youtube動画)## 受験までの期間
・6か月(1日:約1~2時間勉強のペース)## 試験までの流れ
1.プログラミングに興味がわき、”progate”の有料会員でレッスン通りに進めていく。
(何週したか覚えてませんが、ヒントや解説を見なくても、コーディングできるレベルまでやり込む。)2.1と同時並行で”せかチャン”動画を参考にコーディングしている内容の理解を深める。
3.試験意欲がわいたので、”Javaの黒本”を購入し、問題を一通り解いてみる。(この時は、全然できないと思う。)
4.黒本の解説を読みながら、それでも理解できないことが必ず起きるので、”黒本著者が教えるやさしくない!?java”動画を参考にして、黒本内の疑問を払拭する。
5.黒本を繰り返し解いてみて、9割程度理解できれば、試験を予約
6.試験
## 受験してみての感想
私自身、インフラの経験しかなかったため、プログラミングでどこまで
Web APIとは?REST APIの基礎と実装例
## ■ はじめに
Web APIは、異なるシステム間でデータをやり取りするためのインターフェースです。
特にREST API(Representational State Transfer API)は、拡張性の高さから幅広く利用されています。
この記事ではAPIのとはなにかやREST APIの仕組み、実際に簡単なAPIの作成と利用方法を解説します。## ■ 目次
1. [APIとは?](#1-apiとは)
2. [REST APIの基本](#2-rest-apiの基本)
3. [REST APIのHTTPメソッド](#3-rest-apiのhttpメソッド)
4. [Spring Bootを使用したREST APIの作成例](#4-spring-bootを使用したrest-apiの作成例)
5. [まとめ](#5-まとめ)# 1. APIとは
#### APIの定義
APIは **Application Programming Interface** の略で、ソフトウェア同士がやり取りをするためのインターフェースを意味します。
このAPIを利用することで、異
例外処理
今回はJavaの例外処理について記事にしたいと思います。
例外とは、プログラムが予想外の問題に遭遇したときに発生するエラーのことです。たとえば、次のような状況が考えられます:
数字を入力する場面で、文字を入力してしまった。
ファイルを読み込もうとしたけど、そのファイルが存在しなかった。
0で割ろうとした(これは数学的に禁止されています)。
こうした状況が起きたとき、プログラムは通常止まってしまいますが、例外処理を使うことで、エラーに対処しながらプログラムを続けることができます。3. 例外処理(try ~ catch)
Javaでは、エラーが発生する可能性がある部分に対して、tryブロックと**catchブロック**を使って、エラーが起きたときにどう対処するかを指定します。tryブロックには、エラーが起こるかもしれない処理を書きます。
catchブロックには、エラーが起きたときにどうするかを書きます。
“`Java
コードをコピーする
try {
int result = 10 / 0; // ここでエラーが発生
} catch (ArithmeticExcept
Java基礎文法Part5
今回はJavaのfor文について記事にまとめました。
構文
“`Java
for(初期化;条件式;後処理){
繰り返す処理}
“`
. 反復処理の制御構文
反復処理(はんぷくしょり)とは、同じことを何度も繰り返して実行することです。たとえば、10回ジャンプするとか、毎朝同じ時間に起きるのも反復処理です。プログラミングでは、同じ動作を何度も繰り返すために、ループと呼ばれる仕組みを使います。制御構文は、プログラムがどう動くかを決めるルールです。例えば、for文やwhile文というものを使って、何度も繰り返すことができます。
例:
“`Java
for (int i = 0; i < 5; i++) { System.out.println("こんにちは"); } ``` このプログラムは、「こんにちは」を5回表示します。 2. インクリメント インクリメントは、数を1ずつ増やすことです。たとえば、「1, 2, 3, 4」と数を増やすときに使います。 例: ```Java int x = 0; x++; // xは1になる x++; // xは2になる
Java基礎文法Part4
今回はメソッドについて記事にしたいと思います。
メソッドは、プログラミングの中でよく使われる言葉です。簡単に言うと、**メソッドは「動作」や「行動」**を表すものです。現実世界で例えると、「何かをするための命令」だと思ってください。
メソッドって何?
例えば、人間で考えてみましょう。**人は「歩く」「話す」「食べる」といった色々な行動をしますよね。これをプログラミングの世界で表現すると、「歩く」「話す」「食べる」**という動作が「メソッド」にあたります。メソッドは、「何をするか?」という行動の部分をプログラムに書いておくことで、必要なときにその行動を呼び出して実行することができます。
メソッドの例
例えば、犬が「吠える」という動作をするためのメソッドを考えてみましょう。“`Java
class Dog {
// 犬が吠えるメソッド
void bark() {
System.out.println(“ワンワン!”);
}
}
“`
bark()というメソッドを使って、犬が「ワンワン!」と吠える動作を表しています。
System.o
自社プロダクトの開発でJava(spring boot)を使用した際のCI/CD周りについて
自社プロダクトの開発でJava(spring boot)を使用した際のCI/CD周りについて
– ローカル開発
– ビルドツールはmavenを使用
– Nexusリポジトリも使用(VPNを繋がないとアクセスできない)
– mavenで依存関係(ライブラリDLやNexusリポジトリの取得)を解決
– 開発の際は以下の順番
– ソースコード修正
– ビルド(コンパイル)
– アプリケーション実行の順序で開発する
– ローカル開発の際に出た疑問
– Intellijでは「ビルド」と「RUN」が分かれた項目としてあるが、違いは何?
– ビルド(全てのファイルのソースコードを機械語に)
– ビルドだけを行う
– RUN(主にアプリケーションの実行を行う)
– IntellijのRUNは同時にビルドも行ってくれる
– なのでソースコードの変更後RUNするだけでローカルテストができる
– Nexusリ
arctanのBigDecimal計算
前回のπの記事で、
@zacky1972 様にコメントを頂きました。https://xn--w6q13e505b.jp/formula/arctan.html
上記の、arctan系公式 を教えてもらいました。
## ストマーの公式
44 * arctan( 1/57) + 7 * arctan( 1/239 ) – 12 * arctan( 1/682 ) + 24 * arctan( 1/12943 )
前回の記事では、ストマーの公式の一番左の項を気にしていましたが、
上記の「arctan系公式」ので、解決策が見えたので、第2項の
arctan( 1/239 )で、桁数を増やした時の性能を測ってみました。## 計測に使ったプログラム
“`Java
package calcpi;import java.math.BigDecimal;
import java.math.MathContext;public class Arctan1 {
static MathContext mi = new MathContext(40000); //
競技プログラミング(Java)をまとめてみた
競技プログラミングをjavaでよく使うものなどをアウトプットもかねて記事にしてみました。
1. Scannerでの入力処理
基本的な使用方法
“`java
import java.util.Scanner;public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println(a + b);
}
}
“`このプログラムは、2つの数字を足し算する簡単なJavaのプログラムです。基本的に、ユーザーから2つの数字を入力してもらい、その合計を表示する仕組みになっています。
それぞれの部分を説明します
import java.util.Scanner;ここでは、**Scannerというクラスを使うために、そのクラスをインポートしています。Scanne
IPv6アドレスからプレフィックス長とIPv6アドレス部分を分けて2進数にする方法
“`java:Main.java
import java.net.InetAddress;
import java.net.UnknownHostException;public class Main {
public static void main(String[] args) throws Exception {
String ipv6WithCIDR = “2001:1111:2222:abcd::/64”; // 任意のIPv6アドレス// プレフィックスを分離
String[] parts = ipv6WithCIDR.split(“/”);
String ipv6Address = parts[0]; // IPv6アドレス部分
int prefixLength = Integer.parseInt(parts[1]); // プレフィックス長try {
InetAddress inetAddress = InetAddress.
クソコードを読む上でのコールスタックの重要性
## はじめに
プログラミングをしていると、どうしても「クソコード」に出会うことがあります。メンテナンス性が低く、可読性が悪いコードを静的に読んで理解しようとすると、多くのエンジニアが頭を抱えます。そんなときに役立つのが「コールスタック」です。これをうまく活用すれば、クソコードのバグや問題箇所を効率的に見つけ出し、解決に導くことができます。この記事では、コールスタックの基本的な説明と、それがクソコードの理解にどのように役立つかを解説します。
## コールスタックとは
コールスタックは、プログラムが実行される中で関数やメソッドの呼び出し順序を管理するメモリ領域です。各関数が呼び出されるたびに、その関数の情報がスタックに積まれ、関数の処理が完了するとスタックから取り除かれます。特に深いネストや大規模なコード、難読化されたコードでは、コールスタックを正しく理解することが非常に重要です。コードの流れが追いづらいクソコードでは、コールスタックを確認することで、どの関数がどの順序で実行されているかを把握しやすくなります。
## コールスタックを使ったデバッグの具体例
ここでは、Java
今更きけないpleiades-all-in-oneを使わないEclipseのインストールに役立つリンク集
## こちらがリンク集です!Eclipseを今日から始めましょう!
やり方としてはEclipseの日本語化の記事を読みながら①Eclipseをインストール、②Pleiadesのプラグインのダウンロードと展開をしてください。
[Eclipseのダウンロード](https://www.eclipse.org/downloads/)
[Pleiadesのプラグイン](https://willbrains.jp/)
[Eclipseの日本語化(Pleiadesプラグインの導入方法)](https://qiita.com/mizu4my/items/b63095c89464ac3b054c)
## JavaでHelloWorldを表示(Eclipseを使わず手動でやる場合)
Javaで「Hello, World!」プログラムを作成し、javacでコンパイルする手順を説明します。
## 1. ソースコードの作成
まず、テキストエディタを開き、以下のコードを入力します:
“`java
public class Hello {
public static void main
java。URLエンコード。標準ライブラリ。spring frameworkのライブラリの例
## Java標準ライブラリを使用したURLエンコード
“`java
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;public class URLEncodeExample {
public static void main(String[] args) {
try {
String original = “こんにちは 世界!”;
String encoded = URLEncoder.encode(original, “UTF-8”);
System.out.println(“Original: ” + original);
System.out.println(“Encoded: ” + encoded);
} catch (UnsupportedEncodingException e) {
e.printStack
java。base64エンコード。標準ライブラリ。spring frameworkのライブラリの例
## 標準ライブラリでのBase64エンコード
“`java
import java.util.Base64;public class Base64Example {
public static void main(String[] args) {
String originalInput = “Hello, World!”;// Base64エンコード
String encodedString = Base64.getEncoder().encodeToString(originalInput.getBytes());
System.out.println(“Encoded String: ” + encodedString);// Base64デコード
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedStri