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

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

[Google Photos Library API] JavaでGoogleフォトのアルバムを共有・共有解除する

Google Photos Library APIを使用して、
Googleフォトのアルバムを共有・共有解除する方法
についてご紹介します。

共有や共有解除できるアルバムはPhotos Library APIで作成したアルバムのみになります。
アルバムの作成方法は
[⧉[Google Photos Library API] JavaでGoogleフォトのアルバムを作成・更新する](https://qiita.com/doran/items/b5ecc7005f19fbf0a35a)
を参照ください。

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

|No||目次|
|—|—|—|
|1||[共有する](#1-共有する)|
||1|[スコープ](#11-スコープ)|
||2|

元記事を表示

動的型付言語(Python)と静的型付言語 (Java)の簡単な比較

動的型付言語と静的型付言語の違いを、Pythonを動的型付言語の例に、Javaを静的型付言語の例にしてコードで比較。

## 動的型付言語 (Python)

“`python
# 変数の宣言時に型を指定する必要がない
x = 10
print(type(x)) #

x = “Hello”
print(type(x)) #

# 関数の引数や戻り値に型を指定する必要がない
def add(a, b):
return a + b

print(add(1, 2)) # 3
print(add(“Hello”, “World”)) # HelloWorld
“`

## 静的型付言語 (Java)

“`java
public class Main {
public static void main(String[] args) {
// 変数の宣言時に型を指定する必要がある
int x = 10;
System.out.println(x); // 1

元記事を表示

[Google Photos Library API] JavaでGoogleフォトのアルバムを作成・更新する

Google Photos Library API(Java)を使用して、
Googleフォトのアルバムを作成・更新・削除する方法
についてご紹介します。

アルバムはGoogleフォトアプリのアルバムタブから確認することができます。

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

|No||目次|
|—|—|—|
|1||[アルバムを作成](#1-アルバムを作成)|
||1|[スコープ](#11-スコープ)|
||

元記事を表示

java複数のスレッドの同期処理

## java Thread
スレッドとは、プログラム内での実行スレッドのことです。Java仮想マシンでは、アプリケーションは並列に実行される複数のスレッドを使用することができます。
## synchronized
synchronizedブロックの開始時にsynchronized文で指定したオブジェクトのロックを取得し、終了時にそのロックを開放します。
## wait
ほかのスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すまで、現在のスレッドを待機させます。
## notify
このオブジェクトのモニターで待機中のスレッドを 1 つ再開します。
## notifyAll
このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
## 実装確認
2つのスレッドで1~100の数字を交替で順番に出力します。
“`java
package com.example.thread;

class PrintNumber implements Runnable {
private int number = 1;
@Ove

元記事を表示

JVM – ガベージコレクション(GC)の概要

ガベージコレクション(GC)は、JVMがメモリ管理を効率よく行うための重要な機能です。このブログでは、GCの基本的な概念とその動作の仕組みについて解説します。

## ガベージとは

ガベージとは、プログラムが確保したメモリのうち、もはやプログラムによって参照されないメモリ領域のことを指します。

これはオブジェクトやデータ構造が不要になった、つまりそのデータに対するすべての参照がプログラム内から失われた状態を意味します。

ガベージが発生する主な原因は以下の通りです:

* **オブジェクトのスコープ外移動**: オブジェクトが定義されたスコープを外れたとき、例えばローカル変数が関数の実行終了とともにスコープ外となる場合。
* **参照の上書き**: あるオブジェクトへの参照が新しいオブジェクトへと変更された場合、古いオブジェクトはもはや参照されなくなります。
* **明示的な参照削除**: プログラムが意図的にオブジェクトへの参照を削除することで、ガベージとしてマークされる場合。

ガベージがメモリ内に蓄積すると、複数の問題が発生する可能性があります:

* **メモリリーク**:

元記事を表示

JavaSilverに合格した話

# 受験背景
現在はC#をメインに仕事をしていて、Javaに触れる機会がなくなった
新卒から約5~6年Javaでの開発をしていて、
せっかくのJavaの知識を廃れさせたくないと思い受験を決意
JavaSilverはそこまで難易度も高くはない

# 勉強法
以下のみ黒本のみ

大体1日、2時間程度を土日以外の時間で勉強(基本的に土日は家族との時間に充てている)
約3ヶ月間続けた

触っていくうちにだんだん思い出してきて、他の参考書とかには手をつけず、黒本のみで対応できた
ただ問題を解いていくとJavaの構文も分かってくると思うので、個人的には他の参考書は不要に感じた

# 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3516005

元記事を表示

[Google Photos Library API] JavaでGoogleフォトの共有アルバムを取得する

Google Photos Library APIを使用して、
Googleフォトの共有アルバムを取得する方法
についてご紹介します。

共有アルバムはGoogleフォトアプリの共有タブから確認することができます。

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

|No||目次|
|—|—|—|
|1||[共有アルバム一覧を取得](#1-共有アルバム一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|

元記事を表示

VSCode + SpringBoot(Gradle)でWebアプリの開発環境を構築する

# 動機
– 社内勉強会でSpringBootを使ってWebアプリを作りたい
– 通常業務のJava開発は古いバージョンのEclipseを利用
– そのEclipseではSpringBootが動かない!
– GitHub CopilotのライセンスをもらったがJavaではEclipseで動かず試せていない
– せっかくなんでJava22触りたい(だったんですがGradleがうまく動かず21で妥協)

ということでVSCode + SpringBootでの環境を作ってみようと思いやってみました。
勉強会の手順書を兼ねて手順を記録していきます。

# 手順

## 想定環境
– WindowsOS
– Javaとか何も入っていない状態
– プロジェクトはGradleプロジェクトにしたい

## JDK21のインストール
ダウンロードサイト

https://www.oracle.com/jp/java/technologies/downloads/

JDK21 -> Windows -> x64 Installerを選択してインストーラーをダウンロードします。

元記事を表示

RestTemplate で Apache HttpClient を使用時に、Cookie rejected が出てしまう問題

## 私が直面したもの
JavaでWebアプリケーションを開発している際、RestTemplateを使用して外部のAPIへリクエストを送信するコードがありました。そのプロセス中、次のような警告メッセージがログに表示されました。
“`
WARN 100 — o.a.h.c.protocol.ResponseProcessCookies
Cookie rejected Illegal ‘domain’ attribute “〇〇.co.jp”. Domain of origin: “xx.co.jp”
“`
このメッセージは、レスポンスで返されたクッキーのdomain属性が、リクエストを送信したオリジンのドメインと異なるために拒否されたことを示しています。
この問題に対処しようと、RestTemplate および背後にある Apache HttpClient に関する公式ドキュメントやオンラインリソースを探しましたが、この特定の警告メッセージや、それに伴うクッキーの扱いについて明確に解説している資料は見つかりませんでした。

唯一見つかった参考資料は、[こちらのQiitaの記事](

元記事を表示

[Google Photos Library API] JavaでGoogleフォトのメディアアイテム(写真や動画)を取得する

Google Photos Library APIを使用して、
Googleフォトのメディアアイテム(写真や動画)を取得する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[メディアアイテム一覧を取得](#1-メディアアイテム一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[メディアアイテムを取得](#2-メディアアイテムを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|
|3||[複数のメデ

元記事を表示

JavaからKotlinの引数なしの関数を呼んだら引数が足りないと怒られた(suspend fun, Continuation, coroutine)

## はじめに

こういうエラーのことです。
“`
‘関数名(kotlin.coroutines.Continuation? super 戻り値の型>)’ in ‘ファイル名’ cannot be applied to ‘()’
“`

具体例というとこうです。
“`
‘getNumber(kotlin.coroutines.Continuation? super java.lang.Integer>)’ in ‘com.example.myapplication.KotlinLibrary’ cannot be applied to ‘()’
“`

分かる人はもしかしたらタイトルの括弧のキーワードで既に察したかもしれませんが、
なにせKotlinに関する知識が0で、キーワードに辿り着くまで時間がかかったもので、この記事が誰かの手引きになるといいと思います。
また、キーワードが分かってからもつまずきました。最終的に選んだ解決策を共有できればと思います。

## 環境
Android Studio Hedgehog | 2023.1.1 Patch 2

JDK: 11
com

元記事を表示

[Google Photos Library API] JavaでGoogleフォトのアルバムを取得する

Google Photos Library API(Java)を使用して、
Googleフォトのアルバムを取得する方法
についてご紹介します。

アルバムはGoogleフォトアプリのアルバムタブから確認することができます。

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

|No||目次|
|—|—|—|
|1||[アルバム一覧を取得](#1-アルバム一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|

元記事を表示

String.formatでjson文字列作成

“`java
public class Main {
public static void main(String[] args) throws Exception {
// Sample data
String name = “John”;
int age = 30;
String city = “New York”;

// Format JSON string using String.format
String jsonString = String.format(“{\”name\”:\”%s\”, \”age\”:%d, \”city\”:\”%s\”}”, name, age, city);

// Print formatted JSON string
System.out.println(jsonString);
}
}
“`

元記事を表示

指定されたURLパターン の正規表現

“`java
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
public static void main(String[] args) {
String urlString = “/api/v1/2022.2/xxx”;

// 正規表現パターン
String regexPattern = “^/api/v1/\\d{4}\\.\\d{1}/\\w+$”;

Pattern pattern = Pattern.compile(regexPattern);
Matcher matcher = pattern.matcher(urlString);

if (matcher.matches()) {
System.out.println(“URLパターンが一致しました。”);

元記事を表示

java。urlからドメインとドメイン以降の別に取り出す

“`java
import java.net.MalformedURLException;
import java.net.URL;

public class Main {
public static void main(String[] args) {
String urlString = “https://www.example.com/path/to/resource”;

try {
URL url = new URL(urlString);

// ドメインを取得する
String domain = url.getHost();
System.out.println(“ドメイン: ” + domain);

// ドメイン以降の部分を取得する
String path = url.getPath();
Sy

元記事を表示

[Google Photos Library API(V1)] JavaでPhotos Library APIを使う

Googleが提供しているPhotos Library APIをJavaで使ってみました。

***Photos Library APIとは***
Googleが提供しているAPIで、Googleフォトに関する操作ができます。

Google Photos Library APIの利用料金は無料です。
ただし、1日あたりのリクエスト数の上限があります。
|対象|制限|
|—|—|
|通常のリクエスト|10,000 リクエスト/日|
|メディアバイトにアクセスするリクエスト|75,000 リクエスト/日|

詳細は[公式ドキュメント](https://developers.google.com/photos/library/guides/api-limits-quotas?hl=ja)を参照ください。

**APIを使う上で気をつけて欲しい**のですが、
基本的に「Photos Library API」を使っての設定や更新の処理は、
同じGCP認証のAPIで実行して作成したアルバムやメディアアイテム(写真や動画)
に対してのみにな

元記事を表示

[Google Slides API(V1)] Javaでプレゼンテーション内のページのサムネイル画像を取得する

Google Slides API V1(Java)を使用して、
プレゼンテーション内のページのサムネイル画像を取得する方法
についてご紹介します。

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

|No|||目次|
|—|—|—|—|
|1|||[サムネイル画像を取得](#1-サムネイル画像を取得)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|

## 1. サムネイル画像を取得
プレゼンテーション内のページのサムネイル画像を取得します。

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

元記事を表示

[Google Slides API(V1)] Javaでプレゼンテーションを作成・更新・削除する

Google Slides API V1(Java)を使用して、
プレゼンテーションを作成・更新・削除する方法
についてご紹介します。

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

|No|||目次|
|—|—|—|—|
|1|||[プレゼンテーションを作成](#1-プレゼンテーションを作成)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[プレゼンテーションを更新](#2-プレゼンテーションを更新)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#22-実行)|
||3||[レスポンスの内容](#23-レスポンスの内容)|
|3|||[プレゼンテーションを削除](#3

元記事を表示

【Java基本編】条件文(if文・switch文)、繰り返し処理(while文・for文・continue)

こんばんは!
この1週間でJavaの条件文と繰り返し処理を学んだので簡単にまとめてみたいと思います!

# if文
基本形は以下のようになっており、ifのあとの()に条件式などを入れ、それがtrueであれば出力、そうでなければelse ifの条件式をみてtrueであれば出力、そうでなければelse以下を出力するというようになっています。else ifは条件がある限り増やせます。

“`java
if(条件1){
System.out.println(条件1がtrueのときの出力内容);
}else if(条件2){
System.out.println(条件1がfalseかつ条件2がtrueのときの出力内容);
}else{
System.out.println(条件1・2のどちらもfalseのときの出力内容);
}
“`

例えば、テストの点数で評価を分けたいときはこのようになります。
この場合の出力内容は『優』です。
“`java
int score = 81;
if(score >= 90){
System.out.println(“秀”);

元記事を表示

[Google Slides API(V1)] Javaでプレゼンテーションの情報を取得する

Google Slides API V1(Java)を使用して、
プレゼンテーションの情報を取得する方法
についてご紹介します。

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

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

## 1. プレゼンテーションを取得
プレゼンテーションの情報を取得します。

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

元記事を表示

OTHERカテゴリの最新記事