JAVA関連のことを調べてみた

JAVA関連のことを調べてみた

Java変数型

変数宣言の文
 型 変数名;

☆整数を格納☆
byte   ±約128
short  ±約3.2万
int   ±約21億
long   ±約900京//世界の人口など

基本的にはintで大丈夫!
(byteやshortよりintの方が高速に処理できるコンピューターも多い)

☆少数を格納☆
float 少しあいまいでもよい少数
double 普通の少数

少数を扱うときは特別な事情がない限りdouble型を使用する
少数部のことをコンピュータでは浮動小数点型という。真に厳密な計算ができないという弱点があるので誤差が許されない計算、金額の計算にはfoatやdoubleを使わない。

☆真偽値☆
boolean trueかfalse

☆文字☆
chat
例 chat = ‘苺’;
ソースコードに文字を記述する場合は引用符(‘)で囲む

☆文字列☆
String
例 String = “苺を食べる”;
ソースコードに文字列を記述する場合は二重引用符(“)で囲む

引用符、二重引用符は全角にしないように気を付ける

元記事を表示

[Custom Search API(V1)] JavaでGoogle検索する

Custom Search API V1(Java)を使用して、
Googleが提供するカスタム検索エンジンで検索する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Custom Search API(V1)] JavaでGoogle検索する(準備編)](https://qiita.com/doran/items/3fda453a80a53e26498f)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[検索する](#1-検索する)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. 検索する
カスタム検索エンジンで検索します。

### 1.1. スコープ
このAPIを実行するには、以下のスコープを指定してください。
“`
https://www.googleapis.com/auth/cse
“`

### 1.2. 実行

コード中の「CXキー」は
2.

元記事を表示

[Custom Search API(V1)] JavaでGoogle検索する(準備編)

Custom Search API(V1)をJavaで使ってみました。
今回の記事はAPIを利用開始するのに行うことを記事にしました。

***Custom Search APIとは***
Googleが提供するカスタム検索エンジンで検索することができるAPIです。

カスタム検索エンジンでは、Google検索の様にWeb全体を検索できます。
ただし、Google検索とカスタム検索エンジンは下記の点が異なります。

・ウェブ上の他の検索結果よりも自分のウェブサイトの検索結果が強調される
・アカウントに基づく情報など、一部のGoogle検索の機能が含まれない
・検索結果が10件を超える場合、サブセットの検索結果が表示されることがある

:::note info
実際のCustom Search APIの実行コードは
[⧉[Custom Search API(V1)] JavaでGoogle検索する](https://qiita.com/doran/items/5e05d10d6259971f37ba)
を参照ください。
:::

|No|||目次|
|—|—|—|—|
|

元記事を表示

SpringBootでMicrosoftAccessのデータベースへの接続は諦めました

# 概要

SpringBoot ⇒ MicrosoftAccessへ接続して、データの取得や更新の処理を作ることを諦めました。
今後似たようなことを検討する時の材料として記事を残します。

# やりたかったこと

MicrosoftAccess(accdbファイル)で作られた古いシステムがありました。
SpringBootでそのシステムが持っているテーブルのデータが必要でした。

また、ちょっとめんどくさい点として、そのaccdbファイルはパスワードでロックされているものでした。

# UCanAccessの存在

まず、『UCanAccess』というjarがあり、それを使うとJAVAからAccessへの接続ができると分かりました。

# build.gradleでjarの用意

build.gradleのdependenciesに下記を追加しました。

“`
implementation (‘net.sf.ucanaccess:ucanaccess:5.0.1’){
exclude module: ‘commons-logging’
}

implementation (‘co

元記事を表示

#13【勉強メモ】エヴァンス本からざっくり理解するDDD

## 目標
・ふわっとした理解のDDDについて[エヴァンス本](https://www.amazon.co.jp/%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88-Architects%E2%80%99Archive-%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E3%81%AE%E5%AE%9F%E8%B7%B5-%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9/dp/4798121967/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%B

元記事を表示

#12【勉強メモ】エヴァンス本からざっくり理解するDDD

## 目標
・ふわっとした理解のDDDについて[エヴァンス本](https://www.amazon.co.jp/%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88-Architects%E2%80%99Archive-%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E3%81%AE%E5%AE%9F%E8%B7%B5-%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9/dp/4798121967/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%B

元記事を表示

MapのnullチェックにはMapUtils.isEmpty()を使おう!

# はじめに
こんにちは!なっしーです!

前回に引き続き、Java(Apache、Spring環境)のtipsを紹介しようと思います!

前回はこちら↓

https://qiita.com/nashi-nashi/items/1d66e5d8dc5ffd8142a8

# 想定読者層
前回と同じく若手向けの記事です。
Javaでの業務ロジックや個人開発などでコードを書き始めた人を想定しています。

# 忙しい人向け結論
– MapのnullチェックにはMapUtilsのメソッド(isEmpty())を使おう!
– MapUtilsはApache版とSpring版があるけど機能は一緒だよ!

# 本編
今回紹介するMapUtils.isEmpty()はApache版とSpring版がありますが、どちらも一緒の機能なので解説だけします!

皆さんはMap型のnullチェックはどう書いてますか?
私はこのメソッドを知るまで、Mapのnullチェックはこんな感じで書いてました。
“`Java
Map hoge = new HashMap<>();

if

元記事を表示

[Google Calendar API(V3)] Javaでメインカレンダーのイベントを全て削除する

Google Calendar API V3(Java)を使用して、
Googleカレンダーでメインカレンダーのイベントを全て削除する
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Calendar API(V3)] JavaでCalendar APIを使う](https://qiita.com/doran/items/c735c7b05c0a2ed4bfdb)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[メインカレンダーのイベントを全て削除](#1-メインカレンダーのイベントを全て削除)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. メインカレンダーのイベントを全て削除
Googleカレンダーのメインカレンダーのイベントを全て削除します。
メインカレンダー以外は削除できません。

### 1.1. スコープ
このAPIを実行するには、以下のスコ

元記事を表示

[Google Calendar API(V3)] Javaでカレンダーを作成・更新・削除する

Google Calendar API V3(Java)を使用して、
Googleカレンダーを作成・更新・削除する方法
についてご紹介します。

Googleカレンダーの左下にあるマイカレンダー、他のカレンダーの情報が設定できます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Calendar API(V3)] JavaでCalendar APIを使う](https://qiita.com/doran/items/c735c7b05c0a2ed4bfdb)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[カレンダーを作成](#1-カレンダーを作成)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行

元記事を表示

Javaのprivateメソッドをテストする方法

Claude3と会話しながら記事の原案を作ってもらいました。

## 問題:

Javaのprivateメソッドは外部から直接実行できないため、ユニットテストが困難である。

## 解決策:

1. クラスに備わっているpublic/デフォルトアクセス修飾子のメソッドを使ってテストする
2. 対象のprivateメソッドの可視性をデフォルトアクセス(通称パッケージプライベート)に変更する
3. Reflectionを使ってprivateメソッドを実行する

## 上記の解決策の妥当性:

1. が最も望ましい方法である。privateメソッドは通常、そのクラスのコンテキスト(インスタンス変数の状態)に依存するため、単独で呼び出して正しくテストできない場合が多い。そのため、publicメソッドから間接的に実行させることが適切である。

2.と3. はprivateメソッドを直接テストするため、コンテキストを無視してしまう可能性がある。
2.はカプセル化を損なう懸念があり、3.はパフォーマンス上の懸念がある。そのため、1.が難しい場合に限り、2.か3.を検討する。

## 備考
priv

元記事を表示

[Google Calendar API(V3)] Javaでカレンダーを挿入・更新・削除する

Google Calendar API V3(Java)を使用して、
Googleカレンダーをカレンダーを挿入・更新・削除する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Calendar API(V3)] JavaでCalendar APIを使う](https://qiita.com/doran/items/c735c7b05c0a2ed4bfdb)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[カレンダーを挿入](#1-カレンダーを挿入)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[カレンダーを上書き](#2-カレンダーを上書き)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|
|3||[カレンダーを更新](#3-カレンダーを更新)|
||1|[ス

元記事を表示

#11(工事中)【勉強メモ】エヴァンス本からざっくり理解するDDD

## 目標
・ふわっとした理解のDDDについて[エヴァンス本](https://www.amazon.co.jp/%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88-Architects%E2%80%99Archive-%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E3%81%AE%E5%AE%9F%E8%B7%B5-%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9/dp/4798121967/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%B

元記事を表示

Java

本日からJavaの勉強を開始します!

Rubyは勉強したことがあり、まだまだ始まったばかりなのにRubyって簡潔( ´∀` )
みんなが言っていたの納得….笑

ソースコートの外側部分をとりあえず覚えるのを目標に!!(英語苦手)
https://gyazo.com/518addad6664d20c3f419cd3f3dad0e8
この形を覚えるぞ!
省略できるものもあるみたいだけど初心者は入力するのみだ

class名とファイル名が同じこと。
勉強すると日付とか入れたくなるけど気を付けるぞ
これはどの言語でも同じなんだろうけどわかりやすく!意識するぞ( `ー´)ノ

コンパイルをしてエラーがでるけど、まだまだ最初だからかなRubyよりはわかりやすいと感じた!
(調子のりすぎかな…笑)

次は変数宣言!

元記事を表示

Go言語 暗黙的なinterfaceのメリット

Go言語の何がいいかって、色々な部分で実践的な感じがする(唐突)
その代表例として今回はGo言語の暗黙的なインターフェースの何がいいかコードを例に説明したい

まず初めにGoのインターフェースの例を示します

“`go
type Writer interface {
Write(data string) error
}

type File struct {
Name string
}

func (f *File) Write(data string) error {
file, _ := os.OpenFile(f.Name, os.O_WRONLY|os.O_CREATE, 0644)
defer file.Close()
file.WriteString(data)
return nil
}
“`

これで`File`構造体(クラスみたいなイメージ)は`Writer`インターフェースを実装していることになります
JavaやTypeScriptと違って明示的にimplementsする必要はないんですね
これの何がいいんかって話です
## Javaでの実装
今回は`

元記事を表示

[Google Calendar API(V3)] Javaでカレンダーのメタデータを取得する

Google Calendar API V3(Java)を使用して、
Googleカレンダーのメタデータを取得する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Calendar API(V3)] JavaでCalendar APIを使う](https://qiita.com/doran/items/c735c7b05c0a2ed4bfdb)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[メタデータを取得](#1-メタデータを取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. メタデータを取得
Googleカレンダーメタデータを取得します。

### 1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
“`
CalendarScopes.CALENDAR
CalendarScopes.CALENDAR

元記事を表示

Kotlinでの文字列ゼロ埋めやスペース埋め

## はじめに

Kotlinでゼロ埋めをする話です。初めてやろうとしたときに意外と手間取ったので、昔のブログで記事にしました。

何人かの方に読んで頂けているようだったので、アップデートした版を改めてこちらでも書いてみます。

ちなみに今回実行してるKotlinの環境は`1.9.23`です。

## Javaだとこう

`number`の値を4桁までゼロ埋めする

“`java
String.format(“%04d”, number);
“`

## Kotlinだとこう

### java.lang.String

ググって最初に見つけたのはこれ。
要はKotlinではなくJavaの`String`を使えば、当然Javaの書き方でいけるよというものです。が、流石に毎回完全修飾名を書くのは微妙すぎます。

“`kotlin
java.lang.String.format(“%04d”, number)
“`

### padStart

ちゃんと英語で`kotlin z

元記事を表示

依存性注入のメモ

# 依存性注入とは何かChatGPTに聞いてみた
依存性注入(Dependency Injection)は、ソフトウェアエンジニアリングにおける設計原則の一つであり、特定のコンポーネントが他のコンポーネントに依存しないようにするための手法。具体的には、あるオブジェクトが他のオブジェクトを直接生成せずに、外部から提供されることでそのオブジェクトの依存関係を明示的にすること。

### 目的
1\. 結合度の低減
クラス間の依存関係を減らし、各クラスを独立して変更やテストができるようにする。
2\. 柔軟性の向上
依存性注入を使用することで、異なる実装のオブジェクトを簡単に交換することができ、システム全体の柔軟性が向上する。
3\. テスト容易性の向上
外部から依存オブジェクトを注入することで、ユニットテストやモックテストが容易になる。

# ChatGPTの回答を見て
結局コードで書くとどうなるのかが分からなく、言葉の意味も理解することが難しい
主に保守やテストで作りやすくなるといった目的はなんとなく把握することはできた

# 実装してみよう
CarクラスとEngineクラスを用意
車は

元記事を表示

Java Silver向け 例題 staticイニシャライザとインスタンス初期化子の問題

次のコードの出力結果を答えてください。

“`java
public class AbcdExample {
static {
System.out.println(“ABCD”);
}

public static void main(String[] args) {
System.out.println(“EFGH”);
AB member = new AB();
AB number = new AB();
}
}

class AB {
AB() {
System.out.println(“AB”);
}
{
System.out.println(“CD”);
}
static {
System.out.println(“EF”);
}
}
“`
正解







“`
ABCD
EFGH
EF
CD
AB
CD
AB
“`

1. abcdExample クラ

元記事を表示

Lambda ってなんですか〜SkillBuildersってのがある話

## はじめに

ちょっと執筆中です LTなどで使ったパワポを記事にしていこうと思います。
アプリケーション(まわりにJava アプリケーションエンジニアがおおかったのもあり、JAVA+Tomcatあたりのアプリケーション書いてる人を前提に進めます)エンジニア向けに書いていきます。

## 経緯

後輩や同僚から、「AWS始めたい」「アプリケーションエンジニアもそろそろサーバレスをしたい」「ラムだって何?」と、いろんなレベル感のメンバから聞かれるので書いたLT資料です。
行間が読めなくなるのでちょこちょこ説明を追記していこうと思います。

目標は「AWS Lambda を使い始める皆様へ」の第一歩目を作る。

## はじまり,はじまり〜

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8216/d0d8ddee-d8bf-2c83-db94-aef4f40fc978.png)

![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

[Google Calendar API(V3)] Javaでアクセス制御ルール(ACL)を作成・更新・削除する

Google Calendar API V3(Java)を使用して、
Googleカレンダーのアクセス制御ルール(ACL)を取得する方法
についてご紹介します。

**カレンダーのアクセス制御ルール(ACL)とは**
指定したユーザー、またはグループと予定の共有ができます。
UIでは、カレンダーの設定 -> [特定のユーザーまたはグループと共有する]
から設定できる内容です。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Calendar API(V3)] JavaでCalendar APIを使う](https://qiita.com/doran/items/c735c7b05c0a2ed4bfdb)
を参照ください。
:::

|No||目次|
|—|–

元記事を表示

OTHERカテゴリの最新記事