- 1. [Java] ArrayList
- 2. 【JavaGold】newScheduledThreadPoolメソッド
- 3. 【JavaGold】newSingleThreadScheduledExecutorメソッド
- 4. @Autowiredは何がうれしいのか?
- 5. Redisのクラスターモードで、mgetコマンドを使用してキーの一括値を取得する際の問題の解決策について説明します
- 6. Easy ExcelでWrite操作を行う際のセルの結合方法は以下の通りです。
- 7. Javaを学んでみたPart2【随時更新】
- 8. 【C#VB.NET】PDF文書に表を作成
- 9. [Java] Object型
- 10. [GCP] Cloud Run 機能調査x実装
- 11. 【JavaGold】scheduleWithFixedDelayメソッド
- 12. 【JavaGold】scheduleAtFixedRateメソッド
- 13. 使用率表示
- 14. ドメイン駆動設計を参考にしながらJava×SpringBootで家計管理アプリを自作
- 15. 【JavaGold】Executnorsクラス②
- 16. バージョン切り替えのコマンド絶対いつも忘れるので一覧化しとく
- 17. Spigot の NamespacedKey と PersistentDataContainer を解剖する
- 18. [Java] private package
- 19. HackTheBox LogForge WriteUp
- 20. 【JavaGold】Executorsクラス①
[Java] ArrayList
# ArryaListとは
* リスト構造でデータを格納できる入れ物クラス
* 大きさが決まっていない(配列と違い可変)# ArryaListの使い方
### 初期化
“`java : 初期化
ArrayList<型> 変数名 = new ArrayList<>();
“`
* 右辺の<>の型名は省略可能### 要素の格納
* add()メソッドを使う
“`java:格納
Listsamplelist = 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 CustomAbstractMergeStrategyimplements WorkbookWriteHandler { /**
* 結合する行数
*/
private ListmergeRowCountList; /**
* 結合が必要な列のインデックス
*/
private ListmergeColumnIndexList; /**
* オブジェクト
*/
private Classclazz; /**
* セルの結合ルール:
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