- 1. [自分用メモ]よく使うJava文法募集中
- 2. 【Java】電卓プログラムの作成1
- 3. 【Java】splitメソッド
- 4. [Java]MinecraftのModを作成しよう 1.14.4【5. 防具の追加】
- 5. Mockito 3 + JUnit 5 で基本的なモック化とテストをするサンプルコード
- 6. ==(同一性)とequalsメソッド(同値性)の違い、オーバーライドしよう
- 7. Mavenでjettyを使って、動作確認をする。
- 8. [自分用メモ]修飾子について軽く勉強してみた
- 9. Java画像を最小化する方法
- 10. Calendar 関連
- 11. [Java]MinecraftのModを作成しよう 1.14.4【4. ツールの追加】
- 12. 【アルゴリズム】予算
- 13. [自分用メモ]オブジェクト指向を軽く勉強してみた
- 14. Java で Amazon SES SMTP を使用してメールを送信する
- 15. [Java]MinecraftのModを作成しよう 1.14.4【番外編】
- 16. [Java]MinecraftのModを作成しよう 1.14.4【3. クリエイティブタブの追加】
- 17. [Java]MinecraftのModを作成しよう 1.14.4【2. ブロックの追加】
- 18. [Java]MinecraftのModを作成しよう 1.14.4【1. アイテムの追加】
- 19. [Java]MinecraftのModを作成しよう 1.14.4【0. 基本ファイル】
- 20. [Java]MinecraftのModを作成しよう 1.14.4【入門編】
[自分用メモ]よく使うJava文法募集中
### 自己紹介
Javaを勉強したての社会人一年目です。
Javaの文法についてメモみたいな感じでまとめています。
文法については、「調べるのめんどくせーw」「覚えるのめんどくせーw」って感じなので、完全個人用メモです笑笑
※業務等でこれからよく使ったり、便利な文法が見つかり次第更新する予定です。Javaに関するアドバイス等募集中です。
### 文字列分割
“`java:例
String str = new String(“星野みなみ,齋藤飛鳥,堀未央奈”);
String[] oshi = str.split(“,”);// 出力
for (int i=0; i < oshi.length; i++) { System.out.println(oshi[i]); } ``` ```java:出力 星野みなみ 齋藤飛鳥 堀未央奈 ``` ### 正規表現 **日付** 文字列ymdに格納された日付が、YYYY/MM/DDの形になっているかを判定。 ```java:例 Pattern p = Pattern.compile("^[0-9]{4}/[0-9]{2}/
【Java】電卓プログラムの作成1
#目的
Javaの学習を独学で初めておよそ1ヶ月が経ち、Javaを使用してGUIアプリケーションを作成したいと思い、電卓アプリを作成してみる。今回は、まず電卓アプリの見た目を作成していく。#参考
▼webサイト
・[Let’sプログラミング-Swingを使ってみよう](https://www.javadrive.jp/tutorial/)
・[Javaで始めるプログラミング-Chapter12電卓を作ってみる](http://msyk.net/keio/JavaBook/eclipse-indigo/ch12.html)
・[クラスBorderLayout](https://docs.oracle.com/javase/jp/8/docs/api/java/awt/BorderLayout.html)#使用環境
OS:Mac
言語:JavaSE1.8
Eclipse#成果物
プログラム作成時に参考にさせて頂いたWebサイト
[Javaで始めるプログラミング](http://msyk.net/keio/JavaBook/eclipse-indigo/ch12.html)#
【Java】splitメソッド
splitメソッドは、
Stringで定義した区切り文字列を分割することで、
文字列の配列に分ける。
(文字列を指定された正規表現に一致する位置で分割する)#サンプルコード
“`java
String str = “りんご,レモン,すいか,ブドウ”String[] fruit = str.split(“,”, 0);
/**
*結果:
*fruit[0] = “りんご”
*fruit[1] = “レモン”
*fruit[2] = “すいか”
*fruit[3] = “ブドウ”
*/
“`
最後の0のところは、
**分割する回数**を指す。
負の値を指定すると制限なし。
[Java]MinecraftのModを作成しよう 1.14.4【5. 防具の追加】
(この記事は一連の解説記事の一つになります)
先頭記事:[入門編](https://qiita.com/koteko/items/7afadf8261eac49bacad)
前の記事:[4. ツールの追加](https://qiita.com/koteko/items/0c3a73d1ed299cfbde02)
次の記事:6. レシピの追加# 防具の追加
[4. ツールの追加](https://qiita.com/koteko/items/0c3a73d1ed299cfbde02)では剣を含むツール類の追加をしました。武器を手にした次に欲しいのはやはり防具ですね!今回は防具類の追加をしていきましょう。“`java:ItemList.java
//…
public class ItemList {
public static Item ExampleHelmet = new ArmorItem(ArmorMaterial.IRON, EquipmentSlotType.HEAD, new Item.Properties().group(ExampleItemGr
Mockito 3 + JUnit 5 で基本的なモック化とテストをするサンプルコード
## 概要
– Mockito 3 + JUnit 5 で基本的なモック化とテストをするサンプルコードを示す
– 今回の動作確認環境: Java 14 (AdoptOpenJDK 14.0.2+12) + Gradle 6.5.1 + Mockito 3.4.6 + JUnit 5.6.2 + macOS Catalina## サンプルコード
### ソースコード一覧
“`
├── build.gradle
└── src
├── main
│ └── java
│ ├── Client.java
│ └── Worker.java
└── test
└── java
└── ClientTest.java
“`### build.gradle
ビルド・テスト実行用 Gradle 設定ファイル。
“`groovy
plugins {
id ‘java’
}repositories {
jcenter()
}dependencies {
==(同一性)とequalsメソッド(同値性)の違い、オーバーライドしよう
javaには二つの「同じ」がある。
#==(同一性)
==演算子は、同一であることを判定する。つまり、複数の変数が同じインスタンスを参照していることを判定する。“`java
A a = new A(); // A型というインスタンスを生成
A b = a; // aのインスタンスごとそのままbへコピー
System.out.println(a == b);
“`
“`
true
“`
###例題“`java
public class Sample {
private int num;
public Sample(int num) {
this.num = num;
}
}
“`
“`java
public class Main {
public static void main(String[] args) {
Sample s0 = new Sample(5); // Sample型のインスタンス生成
Sample s1 = s0; // s1にコピー
s0 = new Sample(5); // 新たにSample型インスタンス生
Mavenでjettyを使って、動作確認をする。
# はじめに
eclipseを使って動的ファイルの動作確認をしていると、その端末でしか動かなったりする。なので、jettyを使って、動作確認をする。
あと個人的にeclipseでmavenプロジェクトはディレクトリ構成ちがったりめんどくさいので。# 手順
## pom.xml編集
以下のプラグインを追加する。
“`
org.mortbay.jetty
maven-jetty-plugin
6.1.10
10
[自分用メモ]修飾子について軽く勉強してみた ### 自己紹介
Javaを勉強したての社会人一年目です。
昨日書いた以下の記事のコメントで、「**アクセス修飾子**」「**class設計**」というワードが出てきたので、それらについて勉強してまとめようとこの記事を書いています。
https://qiita.com/N46_myHearter/items/891b660b8748171779b1Javaに関するアドバイス等募集中です。
### 修飾子とは
クラスやメソッド、変数に指定することができ、指定する修飾子によって様々な効果があるみたい。
自分は、Javaで修飾子だとpublic private等のアクセス修飾子ぐらいしかまだ知らなかったのですが、修飾子ってむっちゃあるんですね笑笑アクセス修飾子、abstract、static、finalまでは知ってたが、transient、volatile、synchronized、native、strictfp….って何や!?笑笑
### アクセス修飾子
public、protected、privateがあり、アクセス修飾子を設計しているクラスやその変数、メソッドがどこから
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. 防具の追加](https://qiita.com/koteko/items/34e6cb63288cd30571b5)# ツールの追加
[1. アイテムの追加](https://qiita.com/koteko/items/76910dbf9eb126bdfdf9)では何の機能も持たない単純なアイテムを追加しました。今度は剣やピッケルといった役割を持ったツールを追加してみましょう。“`
\src\main\java\jp\koteko\example_mod\
├ items
│ ├ ItemExampleAxe.java
│ ├ ItemExampleHoe.java
│ ├ ItemExample
【アルゴリズム】予算
# 問題説明
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))