JAVA関連のことを調べてみた2020年08月05日

JAVA関連のことを調べてみた2020年08月05日

[自分用メモ]修飾子について軽く勉強してみた

### 自己紹介
Javaを勉強したての社会人一年目です。
昨日書いた以下の記事のコメントで、「**アクセス修飾子**」「**class設計**」というワードが出てきたので、それらについて勉強してまとめようとこの記事を書いています。
https://qiita.com/N46_myHearter/items/891b660b8748171779b1

Javaに関するアドバイス等募集中です。

### 修飾子とは
自分は、Javaで修飾子だとpublic private等のアクセス修飾子ぐらいしかまだ知らなかったのですが、修飾子ってむっちゃあるんですね。

アクセス修飾子、abstract、static、finalまでは知ってたが、transient、volatile、synchronized、native、strictfp….って何や!?笑笑

### アクセス修飾子
public、protected、privateがあり、アクセス修飾子を設計しているクラスがどこからアクセス可能かを示しているみたい。

1. **public**   すべてのクラスからアクセス可能
2.

元記事を表示

Java画像を最小化する方法

この記事では、**Spring Boot**ベースの**Java**アプリケーションを例に、**Java**イメージを最小化するための一般的なコツをいくつか紹介します。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/common-tricks-for-minimizing-java-images_594956)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

#背景
コンテナ技術の普及に伴い、コンテナベースのアプリケーションが増えています。コンテナは頻繁に使用されていますが、ほとんどのコンテナユーザーは、コンテナイメージのサイズという単純だが重要な問題を無視しているかもしれません。この記事では、コンテナイメージを簡素化する必要性について簡単に説明し、Spring Boot ベースの Java アプリケーションを例に、Java イメージを最小化するための一般的なトリックをいくつか紹介します。

#コンテナイメージを簡素化する必要性
コンテナ

元記事を表示

Calendar 関連

“`Java
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR, -1);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);

c.getTime();

“`

“`Java
Date.from(LocalDate.now().minusYear(1L).atStartOfDay(ZoneId.systemDefault().toInstant());
“`

元記事を表示

[Java]MinecraftのModを作成しよう 1.14.4【4. ツールの追加】

(この記事は一連の解説記事の一つになります)

先頭記事:[入門編](https://qiita.com/koteko/items/7afadf8261eac49bacad)
前の記事:[3. クリエイティブタブの追加](https://qiita.com/koteko/items/1d7a7fb2ff98bebce939)
次の記事:[5. 防具の追加]()

# ツールの追加
[1. アイテムの追加](https://qiita.com/koteko/items/76910dbf9eb126bdfdf9)では何の機能も持たない単純なアイテムを追加しました。今度は剣やピッケルといった役割を持ったツールを追加してみましょう。

“`
\src\main\java\jp\koteko\example_mod\
├ items
│ ├ ItemExampleAxe.java
│ ├ ItemExampleHoe.java
│ ├ ItemExamplePickaxe.java
│ ├ ItemExampleShovel.java

元記事を表示

【アルゴリズム】予算

# 問題説明
A社では各部署に必要なモノを支援するため、部署ごとにモノを買うのにいくら必要なのかを調べました。
でも、全体予算は決められているためすべての部署にモノを提供はできません。
それで、最大限に多い部署にモノが買えるようにしようと思っています。

モノを買うときは各部署が申請して金額全部を支援しなければなりません。
例えば1,000円を申請した部署には必ず1,000円を支援すべきであり、1,000より少なくは支援できません。

部署ごとに申請した金額が入っている配列dとbudgetがパラメータとして与えられる場合、最大いくつの部署にモノが支援できるかがreturnされるようにsolutionメソッドを作成してください。

# 条件
– dは部署ごとに申請した金額が入っている配列であり、長さ(全体の部署数)は1以上100以下です。
– 例)d.length = 2の場合、部署数は2。
– 例)d[0]= 3の場合、部署1の申請金額は3。
– dの値は部署ごとに申請した金額です。申請金額は1以上、100,000以下の自然数です。
– budgetは予算です。予算は

元記事を表示

[自分用メモ]オブジェクト指向を軽く勉強してみた

### 自己紹介
Javaを勉強したての社会人一年目です。
Javaのオブジェクト指向を理解するため、このような記事を書きました(メモする感じで笑笑)。
Javaに関するアドバイス等募集中です。

###オブジェクト指向とは
さっそく、本題に入っていきましょう。
そもそもオブジェクト指向ってなんやねんっ最初感じますよね!?(自分もそうやったので…)

オブジェクト指向は、プログラミングを行う上での数多くある考え方の一つみたいです笑笑
オブジェクト指向によって、以下の3つを実現しているそうです。
  1. プログラムの「**独立性**」
  2. プログラムの「**再利用性**」
  3. プログラムの「**拡張性**」

### 「独立性」を実現するには
オブジェクト指向で「独立性」を実現する考え方として、「**カプセル化**」というのがあるみたい。

**カプセル化**
調べたところ、データ(属性)とメソッド(手続き)を1つのオブジェクトにまとめて、その内容を隠蔽する考え方だそうです….
簡単に言っちゃうと(言っちゃていいのか分からないが笑笑)、外からプログラムの処理が見えな

元記事を表示

Java で Amazon SES SMTP を使用してメールを送信する

会員がログインパスワードを忘れたとき、登録してあるメールアドレスにメールを送信してその中のリンクを押すとパスワードがリセットされる、というのをやりたかったので、AWS 上のWebアプリにメール送信機能を実装。

メール送信機能は jar ファイルにして部品化。

プログラミングより AWS の設定が面倒臭い気がしました。

#1.環境
VS Code
Java Extension Pack
Spring Boot Extension Pack

#2.SMTP認証情報の習得

以下の URL の内容の通り、AWS のコンソールにログインして「Amazon SES コンソールを使用して Amazon SES SMTP 認証情報を取得する」の1~6を実施してSMTPユーザー名とSMTPパスワードを取得します。

取得するとメールサーバー名とポート番号も表示されます。

https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/smtp-credentials.html

#3.Gradle Project の作成

VS Cod

元記事を表示

[Java]MinecraftのModを作成しよう 1.14.4【番外編】

(この記事は一連の解説記事の一つになります)

先頭記事:[入門編](https://qiita.com/koteko/items/7afadf8261eac49bacad)

# 参考になるサイト
[・Minecraft Forge Forums](https://forums.minecraftforge.net/)
ユーザーフォーラム。後述。
[・Forge Documentation](https://mcforge.readthedocs.io/en/1.14.x/)
公式のドキュメンテーションなので一応乗せたけど、実装という点では正直あんまり参考にならない。もちろん正しいことが書いてあるし、概念の理解には役に立つ。
[・Minecraft Forge Modding 目次](https://qiita.com/Hiroya_W/items/2af8fcacab5feaf880b6)
Qiita記事。日本語。この記事を書くにあたって大部分をこの記事から参考にした。まずはこれらをコピペするだけでも動くので、”何ができるのか”を確認するために一通りやるのもよい。
[・初心者mod

元記事を表示

[Java]MinecraftのModを作成しよう 1.14.4【3. クリエイティブタブの追加】

(この記事は一連の解説記事の一つになります)

先頭記事:[入門編](https://qiita.com/koteko/items/7afadf8261eac49bacad)
前の記事:[2. ブロックの追加](https://qiita.com/koteko/items/c904b3bfdd90f0b9a98a)
次の記事:[4. ツールの追加](https://qiita.com/koteko/items/0c3a73d1ed299cfbde02)

# クリエイティブタブの追加
ここまでアイテムとブロックを追加してきましたが、クリエイティブにおいてバニラ[^1] のアイテムとおなじタブに表示されるのは少し変な気がします。 それに、追加アイテムは独自のタブにまとまっていた方が何かと便利です。ここでは自分のMod用のクリエイティブタブを追加します。

“`
\src\main\java\jp\koteko\example_mod\
├ ExampleItemGroup.java
├ ExampleMod.java
└ lists
“`

“`java:Exam

元記事を表示

[Java]MinecraftのModを作成しよう 1.14.4【2. ブロックの追加】

(この記事は一連の解説記事の一つになります)

先頭記事:[入門編](https://qiita.com/koteko/items/7afadf8261eac49bacad)
前の記事:[1. アイテムの追加](https://qiita.com/koteko/items/76910dbf9eb126bdfdf9)
次の記事:[3. クリエイティブタブの追加](https://qiita.com/koteko/items/1d7a7fb2ff98bebce939)

# ブロックの追加
ブロックの追加を行います。ブロックの追加はアイテムの追加と近い作業なので**簡単**です!
アイテムのとき同様にブロックを管理するクラスを作る方法をとります。

“`
\src\main\java\jp\koteko\example_mod\
├ ExampleMod.java
└ lists
├ BlockList.java
└ ItemList.java
“`

“`java:BlockList.java
package jp.koteko.example_

元記事を表示

[Java]MinecraftのModを作成しよう 1.14.4【1. アイテムの追加】

(この記事は一連の解説記事の一つになります)

先頭記事:[入門編](https://qiita.com/koteko/items/7afadf8261eac49bacad)
前の記事:[0. 基本ファイル](https://qiita.com/koteko/items/0022f3819302aaa46b7d)
次の記事:[2. ブロックの追加](https://qiita.com/koteko/items/c904b3bfdd90f0b9a98a)

# アイテムの追加
まずはマイクラのModdingにおける「Hello, World!」である、無機能アイテムの追加をしてみましょう。
メインのファイルに書いても勿論いいのですが、増えていくと後々ごちゃごちゃするので、アイテムを管理するクラスを作ってそちらに書いていきます。

“`
\src\main\java\jp\koteko\example_mod\
├ ExampleMod.java
└ lists
└ ItemList.java
“`

“`java:ItemList.java
package

元記事を表示

[Java]MinecraftのModを作成しよう 1.14.4【0. 基本ファイル】

(この記事は一連の解説記事の一つになります)

先頭記事:[入門編](https://qiita.com/koteko/items/7afadf8261eac49bacad)
前の記事:[入門編](https://qiita.com/koteko/items/7afadf8261eac49bacad)
次の記事:[1. アイテムの追加](https://qiita.com/koteko/items/76910dbf9eb126bdfdf9)

# 基本ファイル
開発環境が整い、ようやくスタートラインに立てました。これからあなたがModdingを進めていくための下準備をしましょう。この辺りは**今は深く考えず真似すればいい**と思います。

# GroupIdとArtifactId
まずはGroupIdおよびArtifactIdを設定します。これはMinecraftどうこうではなく、Javaの方の要求っぽいですが詳しくないので省略します。
>パッケージの名前の付け方には一般的な決め方があります。
>
> – GroupId: 組織名のこと。一般的にはドメインを逆から書く形式
> – Ar

元記事を表示

[Java]MinecraftのModを作成しよう 1.14.4【入門編】

# TL;DR
・何か「**うごいている**」感のあるものを作りたい
・じゃああの人気ゲーム**MinecraftのMOD作成**をしてみよう!
・**意外と簡単**にグラフィカルなものが出来上がるので最適!
・チュートリアルを実際に作ってみよう
・もっと界隈が盛り上がってほしい(**切実**)

(この記事は一連の解説記事の導入になります)
# はじめに
皆様こんにちは!楽しくコード書いてますか?
楽しく書けている方はおめでとうございます!すばらしい!
あんまり…な方はようこそいらっしゃいました!ぜひ記事を読んで新しいワクワクを見つけていってくださいね。

これから一連の記事で言わずと知れた超人気ゲームであるMinecraftのMOD作成についてご紹介しようと思います。

言わずと知れてない人

立方体のブロックで構成された世界でサバイバルしたり、建物を建てたり、自由に暮らすゲーム。Mojang社開発。([公式](https://www.minecraft.net/ja-jp/about-minecraft))

元記事を表示

【Java】IteratorでList/Mapの要素を取得する

#目次
– 初めに
– Iterator(イテレータ)って何
– List系のIterator
– Map系のIterator
– ジェネリクス表現から拡張for文へ
– まとめ
– おわりに

##初めに
JavaでMap/Listを触ってると、

– **Listの要素すべてに対してなんかしたい!**
– **Mapの要素すべてに対して反復的に処理したい!**

っていう瞬間が少なからずあると思います。そんなときに便利なのが今回の**Iterator(イテレータ)**です。

実際のコードと一緒ににまとめたので参考にしてください。

※本文中のコード内におけるクラス名/変数名等は適宜読み替えてください。
※一部メインメソッド表記を省略している部分もあります。
※修正/改善点等あればおしえていただければと思います。

##Iterator(イテレータ)って何
####定義
>イテレータ(英語: iterator)とは、プログラミング言語において配列やそれに類似する集合的データ構造(コレクションあるいはコンテナ)の各要素に対する繰り返し処理の抽象化である。実際のプログラミング言語では、

元記事を表示

【Java】組み合わせを実装してみた。

# 数学の組み合わせを Java で実装してみた

異なるn個の中から異なるr個とる組み合わせを Java で実装してみました。
r個の数だけループする実装は見たことがありますが、
r個が変わっても大丈夫なようにしたくていろいろ考えました。

# ソースコード

下記コードは 5個 の中から 3個 とるようになっています。

“`Java
import java.util.ArrayList;
import java.util.List;

public class Trial {

public static void main(String[] args) {
Trial me = new Trial();
me.exec(args);
}

public void exec(String[] args) {
// 文字列の配列
String[] strArray = new String[] { “a”, “b”, “c”, “d”, “e” };
// 組み合わせを取得

元記事を表示

spring + gradle でhelloworldを表示してみる【初心者がTODOアプリを作るまで#4】

[Javaの環境構築をしてhelloworldを出力する](https://qiita.com/kty000/items/5c6519d46a9a72b33dd2)ではまずは書いてみるということでhelloworldをコンソールに出力しました。
今回はもう少し先に進んでspringのプロジェクトでHTMLを表示させてみます。

springなんてまだいれてないよ~というかたは前回までの記事を参考にしていただければと思います。
[Eclipseにspring bootとgradleを追加する](https://qiita.com/kty000/items/f2f8cf3e48e01fcc3956)
[Eclipseにプラグインをインストールする](https://qiita.com/kty000/items/634f642a49fcb8ede40f)

#springのプロジェクトをつくってみる
まずはspringプロジェクトを作ってみましょう。
1.[file] => [new] => [Other] => [Spring Starter Project] を選択
2.プロジェクト

元記事を表示

JavaはWord文書にハイパーリンクを追加します

通常、Word文書を編集するときに、特定のテキストまたは画像にハイパーリンクを挿入すると、ユーザーが他のターゲットの場所やWebページにすばやくジャンプできるようになります。今日の記事では、Free Spire.Doc for Javaを使用して、Word文書にテキストハイパーリンクと画像ハイパーリンクを追加する方法を紹介します。

**JARパッケージのインポート**
**方法1:**[Free Spire.Doc for Java](https://www.e-iceblue.com/Download/doc-for-java-free.html)をダウンロードして解凍し、libフォルダーのSpire.Doc.jarパッケージを依存関係としてJavaアプリケーションにインポートします。
**方法2:**Mavenリポジトリーを介してJARパッケージをインストールし、pom.xmlファイルを以下のように構成します

“`java


com.e-iceblue

元記事を表示

Eclipseにプラグインをインストールする【初心者がTODOアプリを作るまで#3】

前回の記事はこちらです。
[eclipseにGradleとSpringを追加する](https://qiita.com/kty000/items/f2f8cf3e48e01fcc3956)

今回はプラグインを追加しましょう。
なにかありましたらご指摘いただけますと嬉しいです。

#プラグインってなに?
当たり前にプラグインという言葉を見ますが超初心者からすれば「いやプラグインインストールってなんやねん」ってなりますよね(私がそうです)
プラグインとはもっといろんなことができるような拡張機能のソフトウェアのことです。
タイトルはEclipseをもっと使いやすくいろいろできるようにする機能機能を追加しましょうという意味ですね。

#インストールする
実際にプラグインをインストールしましょう。今回は

・Eclipse Java EE Developer Tools
・Eclipse Java Web Developer Tools
・Eclipse Web Developer Tools
・JST Server Adapters
・JST Server Adapters Exten

元記事を表示

【アルゴリズム】桁の足し算

# 問題説明
自然数Nを受け取って、Nの各桁の足し算を行いreturnするsolutionメソッドを作成してください。
**例)N=123の場合、1 + 2 + 3 = 6をreturn。**

# 条件
– Nの範囲:100,000,000以下の自然数

# 入出力の例
| N | answer |
|:—————–|——————:|
| 123| 6|
| 987| 24|

# 解説
※解説は私が作成したコードなので、もっといいアルゴリズム等々ありましたら、共有してください!

“`java

public class Solution {
public int solution(int n) {
// 合計を保存用
int sum = 0;
while(n > 0) {
sum += n % 10; // 10で割り算して余りを足していく。
n /= 10;

元記事を表示

Spring+Vue.js でAPIの連携をする

## はじめに
今回SpringフレームワークでRestAPIを作成し、
Vue.jsでデータを表示させることをゴールに記載していきます。
(Javaのインストール等の初期設定となる環境構築は省きます。)

## プロジェクト作成
#### ◇Vue.js
VueCliを用いて作成していきます。

①VueCliをnpmよりインストールする

“`console:コンソール
npm install -g @vue-cli
“`
②プロジェクト作成

“`console:コンソール
vue create practice
“`
実行すると、アプリケーション作成に必要な設定ファイルやサンプルソースが自動で作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567766/6c9486ce-a337-9e31-033f-d8ff25425027.png)
③サンプル画面確認
作成したプロジェクト配下にて以下実行

“`console:コンソール
npm run serve
`

元記事を表示

OTHERカテゴリの最新記事