JAVA関連のことを調べてみた2023年07月15日

JAVA関連のことを調べてみた2023年07月15日

[Java] ArrayList

# ArryaListとは
* リスト構造でデータを格納できる入れ物クラス
* 大きさが決まっていない(配列と違い可変)

# ArryaListの使い方
### 初期化
“`java : 初期化
ArrayList<型> 変数名 = new ArrayList<>();
“`
* 右辺の<>の型名は省略可能

### 要素の格納
* add()メソッドを使う
“`java:格納
List samplelist = new ArrayList<>();
samplelist.add(“リンゴ”);
samplelist.add(“ゴリラ”);
samplelist.add(“ラーメン”);
“`

### 要素の取得
* get()メソッドを使う
“`java:取得
System.out.println(samplelist.get(0)); // “リンゴ”
System.out.println(samplelist.get(1)); // “ゴリラ”
System.out.println(samplelist.get(2)); // “ラーメン”

元記事を表示

【JavaGold】newScheduledThreadPoolメソッド

## 概要
指定された数のスレッドを持つスケジュール可能なスレッドプールを作成するための静的メソッド。

##### 例

“`java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ScheduledThreadPoolExample {

public static void main(String[] args) {
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(3);

// タスクをスケジュール
executorService.schedule(() -> {
System.out.println(“Task 1 executed after 2 se

元記事を表示

【JavaGold】newSingleThreadScheduledExecutorメソッド

## 概要
単一のスレッドを持つスケジュール可能なスレッドプールを作成するためのメソッド。

##### 例

“`java
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class SingleThreadScheduledExecutorExample {

public static void main(String[] args) {
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();

// タスクをスケジュール
executorService.schedule(() -> {
System.out.println(“Task executed

元記事を表示

@Autowiredは何がうれしいのか?

spring boot で、@Autowired アノテーションは何がうれしいのか?
都度、new する書き方だと何が不便なのか?がよくわからなかったため、調べたことをメモします。
DIコンテナがどうこう、という難しいことは一旦触れないで、直感的にわかりやすい部分だけ説明します。

## @Autowiredを使わない場合と、使う場合を比較

例えば、下記のような依存関係にある 3つのクラス Application, BusinessService, DatabaseService を比較します。ここでいう「依存」とは、クラスの引数に別のクラスのインスタンスをとっている、という意味です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1605263/30a70ee5-a942-13c5-8c23-0a6280d3215b.png)

“`java:@Autowiredを使わない場合
public class DatabaseService {
public void sav

元記事を表示

Redisのクラスターモードで、mgetコマンドを使用してキーの一括値を取得する際の問題の解決策について説明します

Redisのクラスターモードにおいて、mgetコマンドを使用して複数のキーに対応する値のセットを一括で取得する必要がありましたが、値の取得時に次のエラーが発生しました:”ERR CROSSSLOT Keys in request don’t hash to the same slot”。これを日本語に翻訳すると、「リクエスト内のこれらのキーは同じスロットにハッシュされていません」という意味です。つまり、Redisのクラスターモードでは、ハッシュ分割が行われるため、データを挿入するたびにRedisは自動的に各データが属するスロットを計算します。また、各スロットが異なるノードに存在する可能性もあるため、mgetを使用する際には、このバッチのキーが異なるノードに存在する場合に値を取得できなくなります。

Redisがデータのスロット位置を計算するアルゴリズムに基づいて考えると([原文はこちら](https://juejin.cn/post/7045122646958161950))、次のようなコードが使われます。

“`java
unsigned int HASH_SLOT(char *k

元記事を表示

Easy ExcelでWrite操作を行う際のセルの結合方法は以下の通りです。

`@ExcelMerge`(自分で追加した):
“`java
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface ExcelMerge {

}
“`

`MergeHandler`:
“`java
public class CustomAbstractMergeStrategy implements WorkbookWriteHandler {

/**
* 結合する行数
*/
private List mergeRowCountList;

/**
* 結合が必要な列のインデックス
*/
private List mergeColumnIndexList;

/**
* オブジェクト
*/
private Class clazz;

/**
* セルの結合ルール:

元記事を表示

Javaを学んでみたPart2【随時更新】

前回[Javaを学んでみた【随時更新】](https://qiita.com/Neko-wo-kau/items/fb5864d17046c1be8583 “Javaを学んでみた【随時更新】”)が長くなりすぎて、書きにくい&重くなってきたので、わけることにしました。やること、書いていくことは以前と変わりません。頑張るぞー:muscle::fire:

## 5章・メソッド
**〜7/17までに更新予定**

## 6章・複数クラスを用いた開発
**〜7/20までに更新予定**
## 7章・オブジェクト指向をはじめよう
**〜7/23までに更新予定**
## 8章・インスタンスとクラス
**〜7/26までに更新予定**
## 9章・さまざまなクラス機構
**〜7/29までに更新予定**
##

元記事を表示

【C#VB.NET】PDF文書に表を作成

表は、通常のテキストよりも視覚的にデータを提示することができます。 PDF文書に表を挿入することで、読者はデータ間の関係を理解しやすくなり、その結果、データに基づいて文書を深く理解することができます。 さらに、表は視覚的にも魅力的です。 表の書式を設定することで、読者に深い印象を残すことができるのです。 この記事では、[Free Spire.PDF for .NET](https://jp.e-iceblue.com/introduce/free-spire-pdf-for-net.html)を使って**PDF文書に表を作成する方法**を紹介します。
– **[PdfTableクラスでPDF文書に表を作成する](#pdftableクラスでpdf文書に表を作成する)**
– **[PdfGridクラスでPDF文書内に表を作成する](#pdfgridクラスでpdf文書内に表を作成する)**

Free Spire.PDF for .NETは、PDF文書で表を扱うために**PdfTable**と**PdfGrid**という2つのクラスを提供しています。 それぞれの違いは以下の通りです。

|

元記事を表示

[Java] Object型

# はじめに
## Object型とは
* Javaの全てのクラスのスーパークラスとなる特殊な型(創造主)
* Object型変数はどんな型のオブジェクトでも参照できる

# 使い方

“`java:代入
Object obj1 = “Hello”; // 文字列を代入
Object obj2 = 10; // 整数を代入
“`

“`java:取得
Object obj = “Hello”;
String str = (String) obj; // 動的な型キャストを行い、オブジェクトを元の型に戻す
“`

# おわり
* こういうのがあるんだ程度だから使ったり調べたりして覚える

元記事を表示

[GCP] Cloud Run 機能調査x実装

[Cloud Run](https://cloud.google.com/run)は、Google Cloud Platform(GCP)のサーバーレスコンピューティングプラットフォームであり、コンテナ化されたアプリケーションを実行するための環境を提供している。以下にCloud Runの概要と主な機能について説明する。

## Cloud Runの概要
Cloud Runは、ステートレスなコンテナによって構成されるアプリケーションの実行を可能にします。Cloud Runでは、コンテナイメージを提供してアプリケーションをデプロイするだけでなく、自動スケーリング、リクエストトリガー、イベントの統合などの機能を利用することができる。また、Cloud RunはKnativeの上に構築されており、ノードレスなアプリケーション実行環境として機能する。

## Cloud Runの機能
### 1. ステートレスな実行環境
Cloud Runはステートレスなコンテナ実行環境であり、ステートフルなコンポーネントを含むアプリケーションを実行することはできない。ステートレスな実行環境のため、インスタンスの

元記事を表示

【JavaGold】scheduleWithFixedDelayメソッド

## 概要
指定された初期遅延時間(最初の実行までの遅延時間)の後にタスクを実行し、前のタスクの終了から指定された遅延時間が経過するごとにタスクを繰り返し実行するためのメソッドである。

つまり、前のタスクの終了から次の処理の実行までの遅延時間を指定することで、次の処理との間隔を一定にすることができる。 

“`java
ScheduledFuture scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
“`
##### 引数について
このメソッドは、`Runnable`オブジェクト(または`Callable`オブジェクト)を受け取る。

– `initialDelay`:初期遅延時間(最初の実行までの遅延時間)
– `delay`:前のタスクの終了から次のタスクの実行までの遅延時間
– `unit`:遅延時間の単位を表す`TimeUnit`列挙型

##### 例

“`java
import java.util.concurrent.Executor

元記事を表示

【JavaGold】scheduleAtFixedRateメソッド

## 概要
指定された初期遅延時間(最初の実行までの遅延時間)の後にタスクを実行し、その後一定の間隔でタスクを繰り返し実行するためのメソッド。

“`java
ScheduledFuture scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
“`
##### 引数について
このメソッドは、`Runnable`オブジェクト(または`Callable`オブジェクト)を受け取る。
– `initialDelay`:初期遅延時間
– `period`:インターバル時間(タスクの繰り返し実行の間隔)
– `unit`:遅延時間と間隔の単位を表す`TimeUnit`列挙型

##### 例
“`java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

p

元記事を表示

使用率表示

~~~Java
import org.springframework.boot.actuate.system.DiskSpaceHealthIndicator;
import org.springframework.boot.actuate.system.DiskSpaceHealthIndicatorProperties;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DiskUsageController {

private final DiskSpaceHealthIndicator diskSpaceHealthIndicator;
private final DiskSpaceHealthIndicatorProperties properties;

public DiskUsageContro

元記事を表示

ドメイン駆動設計を参考にしながらJava×SpringBootで家計管理アプリを自作

# 1. はじめに
### 1-1. 簡単な自己紹介
事務系の仕事をしておりましたが、プログラミングに興味を持ち、在職中から独学でJavaを学習していました。
現在は退職し、IT業界への就職を目指して活動中です。
退職後の期間にSpringBootを使ってアプリケーションを作成したので、アプリの概要や作成しながら考えたことなどについてまとめました。

# 2. アプリの概要
簿記の考え方を取り入れた家計管理アプリです。
一般的な家計簿というよりは、個人向けのちょっとした会計アプリといったほうが適切な表現かもしれません。
日々のお金のやり取りを「仕訳」という形で記録し、それを元に月の収支や資産・負債の残高を把握します。

GitHubリポジトリ:https://github.com/wtbyt298/myaccountbook

![スクリーンショット 2023-07-13 165747](https://github.com/wtbyt298/myaccountbook/assets/126745395/6568919c-6b47-49de-a7d5-6fb5b544acf4)
![ス

元記事を表示

【JavaGold】Executnorsクラス②

①は[こちら](https://qiita.com/knmbpc/items/0d5214efa61df942b4fc)

## ScheduledExecutorServiceインタフェース
`ExecutorService`を拡張しており、メソッドを定期的に実行するためのインタフェースである。

#### 主なメソッド

– `schedule(Runnable task, long delay, TimeUnit unit)`:
指定された遅延時間の後にタスクを実行する。

– `schedule(Callable task, long delay, TimeUnit unit)`:
指定された遅延時間の後にタスクを実行し、結果を返す。

– [`scheduleAtFixedRate(Runnable task, long initialDelay, long period, TimeUnit unit)`](https://qiita.com/knmbpc/items/4845cd4320aa703f342f):
指定された初期遅延時間の後にタスクを実行し、一定の間隔で

元記事を表示

バージョン切り替えのコマンド絶対いつも忘れるので一覧化しとく

https://github.com/anyenv/anyenv
最近存在を知ったanyenvであれこれxxenv化したいなぁと思いつつも、すでに汚れてしまった私の環境を整理していくのは腰が重いので、最近よく使う言語のバージョン切り替えをコマンド一覧化しとく

# goenv
“`bash
# バージョン確認
go version
# インストールできる一覧
goenv install -l
# インストール
goenv install {バージョン}
# 設定
goenv global {バージョン}
# 指定のディレクトリにのみ設定する場合はこちら
goenv local {バージョン}
# .zshrcは読み直そう
source ~/.zshrc
“`

# nodebrew
インストールしてあれば `ls-remote` やら `install-binary` のくだりはいらない
“`bash
# インストールした一覧
nodebrew ls
# インストールできる一覧
nodebrew ls-remote
# インストール
nodebrew install-bina

元記事を表示

Spigot の NamespacedKey と PersistentDataContainer を解剖する

# NamespacedKey とは何か
NamespacedKey は以後 NK 、PersistentDataContainer は以後 PDC と表記する。
Spigot の JavaDoc から引用
> Represents a String based key which consists of two components – a namespace and a key. Namespaces may only contain lowercase alphanumeric characters, periods, underscores, and hyphens.
> Keys may only contain lowercase alphanumeric characters, periods, underscores, hyphens, and forward slashes.
> 意訳:文字列をキーとして紐づけられた情報を名前空間(namespace)に保存します。
> 名前空間には小文字のアルファベット、ピリオド、アンダースコア、とハイフンを使用することが出来ます。

元記事を表示

[Java] private package

# private package
> * アクセス修飾子をつけずにクラスやメソッド、変数を定義したときに動作する
> * 同じパッケージに属するクラスのみアクセスを許可する
> * 異なるパッケージからはアクセスできない
> “`java:private package
> class Main{
>
> }
> “`

# publicクラスと非publicクラスを同じファイル内に定義
> * 同時に定義できる
> * ソースファイル名は同じじゃないとだめ
> “`java:publicクラスと非publicクラス
> public class Main{
> }
>
> class Sub{
> }
> “`

# 複数のpublicクラスを同じファイル内に定義
> * 同じソースファイル内に複数のpublicクラスを定義することはできない
> “`java:複数のpublicクラス
> public class Main{
>
> }
>
> public class Sub{
>
> }
> “`

# 複数の非publicクラスを同じファイル内に定義
> *

元記事を表示

HackTheBox LogForge WriteUp

今回は、HackTheBoxのMediumマシン「LogForge」のWriteUpです!
名前がすでに、ある脆弱性を思い浮かべさせますが、どのようなマシンなのでしょうか。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1664764/5c3f8ce6-9f11-ab1d-7da6-c9413000c04b.png)
グラフは、The Mediumといった感じのグラフですね。。
ルート目指して、攻略頑張ります!

HackTheBoxってなに?という方はこちらの記事を見てみてください!一緒にハッキングしましょう~。

https://qiita.com/WhizOwl/items/165783694cb4791cff34

また、HackTheBoxで学習する上で役にたつサイトやツールをまとめている記事もあるので、合わせてみてみてください!

https://qiita.com/Perplex/items/30f949fe261f56af7476

## LogForge

### 侵

元記事を表示

【JavaGold】Executorsクラス①

## 概要
`ExecutorService`インタフェースを実現したインスタンスへの参照を戻すファクトリメソッドを用途別に提供するクラスである。

## 主なメソッド
– `newSingleThreadExecutor()`メソッド
– `newFixedThreadPool()`メソッド
– `newCachedThreadPool()`メソッド

#### newSingleThreadExecutorメソッド
**単一**のスレッドプールを作成する。

##### 例

“`java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class SingleThreadExecutorExample {

public static void main(String[] args) {
ExecutorService executorService = Executors.newSingleThreadExecutor

元記事を表示

OTHERカテゴリの最新記事