- 0.0.1. No.14 演算子(足し算)
- 0.0.2. Javaで「固定引数と可変引数の組み合わせ」の動作を確認してみた
- 0.0.3. [備忘録 その8] Java Silver ~制御文~
- 0.0.4. O型のJava記載方法まとめ
- 0.0.5. Stream基礎
- 0.0.6. @ConfigurationPropertiesを使用した内部クラスの問題記録
- 0.0.7. 競技プログラミング練習 ビット全探索(Java)
- 0.0.8. Java リフレクション
- 0.0.9. Java プロパティファイル
- 0.0.10. Javaで「可変引数」の動作を確認してみた
- 0.0.11. 変数・値・参照・代入
- 0.0.12. AOP思想、動的プロキシ、Spring AOPの三者の関係
- 0.0.13. Javaで「メソッドのオーバーロード」の動作を確認してみた
- 0.0.14. Sliding Window アルゴリズムを利用した問題解決
- 0.0.15. No.13 定数
- 0.0.16. [備忘録 その7] Java Silver ~基本データ型の型変換~
- 0.0.17. [備忘録 その6] Java Silver ~文字列の取り扱いとデータの比較~
- 0.0.18. これから始める Semantic Kernel【2024年7月版】
- 0.0.19. Java ローカライズ
- 0.0.20. [備忘録 その5] Java Silver ~演算子~
- 1. 演算子の優先度と結合規則
No.14 演算子(足し算)
# 演算子(足し算)
+(足し算)
<出力結果>
30yen(まず10+20が行われてからyenが連結される)-(引き算)
*(掛け算)
/(割り算)# 演算子(余り)&練習問題
[備忘録 その8] Java Silver ~制御文~
# 制御文
制御文とは、プログラムの実行フローを制御するための文法です。代表的な制御文には以下のものがあります### 1 \. 条件分岐(if文)
### 2 \. switch文
### 3 \. 繰り返し文(for文)
### 4 \. 繰り返し文(while文)## 1 \. 条件分岐(if文)
### if文
if文は条件が真か偽かを評価し、真の場合にのみ特定のコードを実行します。されに、’else if’や’else’を使うことで、複数の条件に応じた分岐を作ることができます。#### 基本構文(if-else)
“`java
if (条件式) {
// 条件式が真の場合に実行する処理
} else {
// 条件式が偽の場合に実行する処理
}
“`
#### 例
“`java
int number = 10;if (number > 0) {
System.out.println(“numberは正の数です。”);
} else if (number < 0) { System.out.println("numberは負の
O型のJava記載方法まとめ
## はじめに
【Java】を記載する上で、最低限必要そうなことを、まとめました。
————————————————
## 変数
#### プリミティブ型(メモリのスタック領域に値が入っている)
““int ・・・ 32ビット整数(4バイト) 例:10 -2,147,483,648 ~ 2,147,483,647
long ・・・ 64ビット整数(8バイト) 例:33293304432234523L int 型の範囲を超える数値を代入する場合は末尾に「L」を記述 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
char ・・・ 16ビット(2バイト) 例’あ’ または ‘1’ Unicodeという文字コード規格での数字を表す(数字
Stream基礎
## Stream APIって?
StreamはListなどに対する操作ができるクラスだよ。
for文の処理をよりスッキリかけるようなものだと思ってもらうといいと思うよ。
現場ではfor文を使わず、streamを使うことが多いので簡単に紹介するよ。streamは中間処理といって絞り込みや要素の変換などを行う操作と、終端操作といって結果の取得や表示をする処理があるよ。
百聞は一見にしかず、実際に使ってみるよ。## 具体例
### ①map
mapはstreamの各要素に対して指定の操作を行って返すよ。
今回はString型の数字をInteger型に変換して2倍にする操作を行うよ。
まずはfor文で書くよ。
“`java
import java.util.ArrayList;
import java.util.List;public class Main {
public static void main(String[] args) {
final var sampleList = List.of(“1”, “2”, “3”, “4”, “5”);
@ConfigurationPropertiesを使用した内部クラスの問題記録
私たちはよく@ConfigurationPropertiesを使ってカスタム設定を注入しますが、設定ルールが複雑な場合、複数のクラスを定義して設定をマッピングする必要があることがあります。このとき、これらのクラスを単独で定義するか、内部クラスとして定義するかという問題に直面します。
私は内部クラスを使用することを選びました。**理由は、管理とメンテナンスが容易だからです。**
内部クラスの方法を使用しているときに、設定が注入できないという問題が発生しました。ネットで色々と調べましたが、うまくいきませんでした。その後、Datasourceの設定が比較的複雑な設定であることを思い出し、どのように実装されているかを確認しました。**すると、このような方法で定義する場合、内部クラスをpublic staticとして定義する必要があることが分かりました。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3809422/4bded3de-dcc9-cc11-5f5e-831054986f99
競技プログラミング練習 ビット全探索(Java)
競技プログラミングで必要になったので、ビット全探索のシンプルな演習をしてみた。
“`java:ビット全探索練習
class Main {
public static void main(String[] args) {
// 集合{a,b,c}の部分集合を列挙する
String[] s= {“a”,”b”,”c”};
//要素数
int n=3;//2^nパターンを探索
for(int i=0 ;i< (1<>j)==1) sub += s[j]; }
System.out.println(“{“+sub+”}”);
Java リフレクション
Java 11 Gold 取得に向けた学習記録
# リフレクション
**リフレクション**は、クラス、メソッド、フィールドなどの**実行時**の情報を動的に取得したり操作したりする機能のことを指す。
リフレクションを使用することで、プログラムの実行時にクラスやオブジェクトのメタデータを取得し、メソッドの呼び出し、フィールドへのアクセス、インスタンスの生成などを行うことができる。
また、リフレクションを利用することでアノテーション情報を取得することができる。
実際にリフレクションを利用するには`java.lang.reflect`パッケージを使用する。
https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/lang/reflect/package-summary.html
## `Class
` `java.lang.Class
`クラスは、クラスが持つメタデータを表す。 リフレクションを利用して`Class
`オブジェクト取得する方法にはいくつかのバリエーションがあり、取得した`Class
Java プロパティファイル
Java 11 Gold 取得に向けた学習記録
# プロパティファイル
アプリケーションの設定情報を、外部ファイルとしてアプリケーションと分離させることでコードのコンパイルやアプリケーションのビルドをせずに挙動を変える手法がある。このときの外部ファイルを**プロパティファイル**と言う。
プロパティファイルの実体は、キーバリュー形式で値を保持する単なる**テキストファイル**である。このファイルの拡張子は通常 `.properties` とする。`settings.properties`や`config.properties`というファイル名が多く使用される。
キーとバリューは以下のように記述する。`=`と`:`を利用することができる。
“`text:config.properties
password=hello
database.password=world
database.username:suzuki
“`プロパティファイルを扱うためには[`Properties`](#properties)クラスか[`ResourceBundle`](#resourcebu
Javaで「可変引数」の動作を確認してみた
# 概要
Javaで「可変引数」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/method/index9.html
# 実装
以下のファイルを作成しました。
“`JSample9_1.java
class JSample9_1{
public static void main(String args[]){
System.out.println(sum(4, 10));
System.out.println(sum(7, 2, 8));
System.out.println(sum());
}private static int sum(int… nums){
int sum = 0;for (int i = 0; i < nums.length; i++){ sum += nums[i]; } return sum; } } ``` 以下のコマンドを実行しました。 ``` $ javac JSampl
変数・値・参照・代入
# これは何?
変数ってなに? という話。
値なのか、参照なのか、代入したらどうなるのか、とか。そのあたり。# いくつかの言語の事例
いくつかの言語の事例を書いてみる。
## C言語の場合
C 言語の変数は(概念としては)型が付与された一連のメモリである。この文脈ではオブジェクトと言ってもいい。
変数の型が決まれば、バイト数が決まる。オブジェクトの正体は、構造体かもしれないし、ポインタかもしれない。
「概念としては」と書いたのは、コンパイルの結果その変数自体が消滅したり、いろいろあり得るから。
C言語では、同じ「一連のメモリ」を別の変数が直接指すということはできない。そうしたければポインタを使う。
あるいは `union` を使えば異なるメンバが同じ「一連のメモリ」を指すことが出来る。Pascal なんかも同じだと思う。
“`C:C
a=b;
“`という代入文は、暗黙の型変換が入らない場合「b が指す一連のメモリを a が指す一連のメモリにコピーする」という意味になる。
つまり、代入が行われても依然として a は b と別のもの(アドレスが異なる)であ
AOP思想、動的プロキシ、Spring AOPの三者の関係
**基本的な概念については繰り返し説明しません。疑問がある方は、以下のリンクをご参照ください**:https://yo1000.gitbooks.io/self-study-spring/content/chapter7.html
## 1.AOP思想、動的プロキシ、Spring AOPの三者の関係
![未命名文件 (8).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3809422/6c9e2a0b-4d32-7139-8f4d-df56c23189a9.jpeg):::note info
Spring AOP の実装は、主に動的プロキシを使用してアスペクト指向プログラミングを実現します。インターフェースに基づく場合、Spring AOP は JDK の動的プロキシを使用してプロキシオブジェクトを作成します。一方、クラスに基づく場合には、CGLIB 動的プロキシ(コード生成ライブラリ)を使用してプロキシオブジェクトを作成します。具体的には:
JDK 動的プロキシ:対象オブジェクトが1つ以上
Javaで「メソッドのオーバーロード」の動作を確認してみた
# 概要
Javaで「メソッドのオーバーロード」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/method/index8.html
# 実装
以下のファイルを作成しました。
“`JSample8_1.java
class JSample8_1{
public static void main(String args[]){
System.out.println(plus(10, 7));
System.out.println(plus(3.2, 4));
System.out.println(plus(7, 1.223));
System.out.println(plus(5.08, 2.4));
}private static int plus(int n1, int n2){
System.out.println(“int + int”);
return n1 + n2;
}private static double pl
Sliding Window アルゴリズムを利用した問題解決
## LeetCode
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3824062/2916d7f2-414e-ad35-e982-f90b651560e0.png)https://leetcode.com/problems/longest-substring-without-repeating-characters/
#### 目的
与えられた文字列において、重複する文字がない最長部分文字列の長さを求めるアルゴリズムを改善します。このためにスライディングウィンドウ手法を使用します。#### 初期コードの問題点
初期コードでは、重複する文字が見つかるたびに`left`ポインタを重複する文字が位置するインデックスの次の位置に移動させる方式で最長部分文字列を計算しています。しかし、この過程で`left`ポインタが非効率的に移動する可能性があります。#### 改善されたアルゴリズム
改善されたアルゴリズムは、重複する文字が見つかった場合、`left`ポインタを一度にジャンプさ
No.13 定数
◆上書きできない変数のこと◆finalをつける
◆慣例として以下がある
・すべて大文字
・複合文字の場合は区切りをアンダースコア “_” で結合<使用例>
![](https://storage.googleapis.com/zenn-user-upload/9c231c32f9da-20231009.png)—
まとめ
[備忘録 その7] Java Silver ~基本データ型の型変換~
# 基本データ型の型変換(キャスト)
基本データ型の型変換は、プログラム内でのデータ型を変更するための操作です。Javaでは、データ型の変換には2つの主要な方法があります。
1 \. 暗黙的型変換(自動型変換)
2 \. 明示的型変換(キャスト)## 1 \. 暗黙的型変換(自動型変換)
暗黙的型変換は、コンパイラが自動的に行う変換で、変換先の型が変換元の偏りも広い(より大きな範囲を持つ)場合に適用されます。例えば’int’型の値を’long’型の変数に代入する場合などです。“`java
public class Main {
public static void main(String[] args) {
int intValue = 100;
long longValue = intValue; // intからlongへの自動型変換
System.out.println(“Long value: ” + longValue); // Long value: 100
}
}
“`
この例では、intか
[備忘録 その6] Java Silver ~文字列の取り扱いとデータの比較~
# 文字列の取り扱い
## Stringクラス
‘String’クラスは、変化不可(イミュータブル)な文字列を表します。一度作成された’String’オブジェクトの内容は変更できません。文字列操作を行うと、新しい’String’オブジェクトが生成されます。### 特徴
* イミュータブル(不変)
* スレッドセーフ
* 文字列リテラル’String’オブジェクトとして作成される“`java
public class Main {
public static void main(String[] args) {
// 文字列の作成
String str1 = “Hello”;
String str2 = “World”;// 文字列の連結
String str3 = str1 + ” ” + str2;
System.out.println(str3); // Hello World// 文字列の長さ
これから始める Semantic Kernel【2024年7月版】
# はじめに
Semantic Kernel は GPT などの AI モデルの呼び出しと C# や Java, Python のコードを統合して使用することができる Microsoft 製のオープンソース SDK です。2023年4月にプレビューを開始し、12月には Version 1.0.1 として正式リリースされました。そして7ヶ月が経過した2024年7月の現時点で Version 1.15.x がリリースされていることからもわかる通り、非常に早いペースで機能追加・改善が進んでいます。
Semantic Kernel が目指す方向性は当初から何も変わっていませんが、正式リリースからまだ1年も経っていないにも関わらず2024年2,3月頃から概念が大きく変わってしまいました。MS Learn もその新しい概念に合わせるように少しずつ更新されていましたが、2024年6月末頃、ようやく完全に対応したバージョンとなりました。そのため、「Semantic Kernel」で Web 検索して表示されるブログなどの情報と、 MS Learn で説明している内容が異なってしまっており混乱の元と
Java ローカライズ
Java 11 Gold 取得に向けた学習記録
# ローカライズとは
localizeアプリケーションを異なる国、地域に対応させるプロセスを**ローカライズ**、または **i18n** と言う。
i18n は、internationalization の **i** と **n** の間の文字数が **18** 文字であることに由来する用語。
ローカライズの対象には以下のものが含まれる。
– 言語
– 日付の表示形式
– 時刻の表示形式
– 暦の表示形式
– 通貨の表示形式# `Locale`
locale = (物語の)舞台、現場、場所
locale ≠ localソフトウェアにおける言語、国、地域などの設定のことを**ロケール**(locale)と呼ぶ。(最初 local だと思っていた。。。)
ロケールは単に「国」のことではなく、例えば英語とフランス語が公用語とされているカナダのようにおいては、「カナダで英語を使用する地域」と「カナダでフランス語を使用する地域」などがロケールに相当する。
Javaでは`java.util.Local`クラスがロケール
[備忘録 その5] Java Silver ~演算子~
# 演算子
演算子は、プログラミングにおいて変数や値に対して操作を行うため記号やキーワードです。javaでは、多くの種類の演算子が提供されている。演算子の優先度と結合規則
優先度 演算子 結合規則 説明 1 [] () . 左から右 配列アクセス、メソッド呼び出し、フィールドアクセス 2 ++ — 関連する記事
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関連のことを調べてみた