- 0.0.1. 日本語でenum定数を定義してみた
- 0.0.2. Java silver を2週間で取得した時の学習法(準備編)
- 0.0.3. DJIのサンプルプログラムGSDemoのSDKバージョンを4.16.1にしてエラーが出るときの対処法
- 0.0.4. blastengine APIを使ってJavaで添付ファイル付きメールを送信する
- 0.0.5. blastengineを使ってJavaでメールを送信する
- 0.0.6. blastengineのJava SDKを使ってメール送信を行う
- 0.0.7. blastengineのJava SDKを使って添付ファイル付きメールを送信する
- 0.0.8. SpringAOPでログ出してみた
- 0.0.9. 【 LeetCode : Java 】876. Middle of the Linked List
- 0.0.10. 【JavaSilver SE11】ぽんこつエンジニアのJavaシルバー挑戦日記(リアルタイム更新中)
- 0.0.11. 自分の解説記事内で使用するテンプレートの紹介
- 0.0.12. コード値からEnum型へ変換するユーティリティクラス
- 0.0.13. 【Java/SpringBoot】messages.propertiesを参照して値を出力する
- 1. 【view】
- 2. 【messages.propertiesの作成】
日本語でenum定数を定義してみた
# はじめに
いままでコーディングした中で、文字列定数の値(リテラル)やコメントに日本語を書くことはあっても、ソースコード本体に日本語を入れることはなかったと思います。
javaって、実はシンボル名に一部記号は使えないけど、日本語は使えます。
(ただ、一部使えない文字はあるようですが、最近、それを調べようという気力が・・・)例えば、”東証”という定数に1を割り当てたいときに、東証って”Tokyo Stock Exchange,Inc”だから定数名をTOKYO_STOCK_EXCHANGEとするとか、”日通し”って何だよ?という疑問が起きるたびに、検索して、諦めたら謎の造語を考えたり、最終手段はローマ字。
こういう無駄な努力は止めて、せめて定数名くらい日本語でコーディングしてしまおうと思ったのです。# 定数定義
REST APIにある「市場コード」をenum化します。
enum名はExchangeCodeにしました。
すっきりした定数名で日本語で2~3文字。コードがメインなので、int idを持たせます。
String toString()は暗黙に実装されていますが、定数
Java silver を2週間で取得した時の学習法(準備編)
みなさん、こんにちは!
今回から複数回に分けて、**「Oracle Certified Java Programmer, Silver 11」取得への道のり**について書いていこうと思います^^
これから取得を目指している方の参考になれば嬉しいです!
※「Oracle Certified Java Programmer, Silver 11」の資格についての説明は割愛します。
今回は取得するために**準備したもの**をお伝えします。
# 準備したもの
今回は「Oracle Certified Java Programmer, Silver 11」(以下 Java Silver 11) を取得したときに準備したものをご紹介します。
①・②は最低限あるといい参考書で、③以降はご自身に合うものを選んでいただけるといいと思います。
## ①**オラクル認定資格教科書 Javaプログラマ Silver SE11(試験番号1Z0-815)**
紫本と呼ばれている表紙が紫の**解説テキストと問題集**がセットになっている資格対策本です。
**チェックシート**もついているので
DJIのサンプルプログラムGSDemoのSDKバージョンを4.16.1にしてエラーが出るときの対処法
DJI Mobile SDKを学ぶうちにGSDemoのアプリを動かすことになった.
公式のサンプルではSDKが4.15となっており,現時点(2022年6月6日)で発表されているSDK4.16.1には対応していない.
今回4.16.1にバージョンをあげたときにエラーが出たので,自分が行った対処法を記録する.最後に対処前と対処後のbuild.gradleの全文を載せる.
# java.lang.RuntimeException: Manifest merger failed with multiple errors, see logsがでたとき
### ①AndroidManifest.xmlのMerged Manifestをクリックする(画像赤枠)
![ManifestMergerFailed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2671458/19184f77-a7e8-a592-d4d5-b30ae4fd6c08.png)
### ②表示されるエラーを確認(画像赤枠)
![MergeMani
blastengine APIを使ってJavaで添付ファイル付きメールを送信する
[blastengine](https://blastengine.jp/)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
今回はblastengineのAPIを使ってJavaで添付ファイル付きのメール送信を行うまでの流れを解説します。
## ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34-46d181ee2924.jpeg)
## 送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
“`
txt @
blastengineを使ってJavaでメールを送信する
[blastengine](https://blastengine.jp/)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
今回はblastengineを使ってJavaでメール送信を行うまでの流れを解説します。
## ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34-46d181ee2924.jpeg)
## 送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
“`
txt @ v=spf1 inclu
blastengineのJava SDKを使ってメール送信を行う
blastengine(ブラストエンジン)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
現在、Java向けに、blastengine SDKを開発しています。この記事では、その使い方を解説します。まずはテキストメールの即時送信についてです。
[blastengineMania/blastengine-java: Java SDK for blastengine](https://github.com/blastengineMania/blastengine-java)
## ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34-46d181ee2924.
blastengineのJava SDKを使って添付ファイル付きメールを送信する
blastengine(ブラストエンジン)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
現在、Java向けに、blastengine SDKを開発しています。この記事では、その使い方を解説します。0.0.2で対応した添付ファイル付きメールの即時送信について解説します。
[blastengineMania/blastengine-java: Java SDK for blastengine](https://github.com/blastengineMania/blastengine-java)
## ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34
SpringAOPでログ出してみた
# Spring AOP
## 本ページについて
「Spring徹底入門」を読んでいるところで、
気になっていたコア機能の1つであるAOPを試してみた。## 前提
AOPを実現するために依存性を追加する。
### pom.xml/dependency
“`xml
org.springframework
spring-context
org.springframework
spring-aop
org.aspectj
aspectjweaver
“`## 実装
DIコンテナに格納されたBeanに対してProxyオブジェクトなるもので、Aopソース
【 LeetCode : Java 】876. Middle of the Linked List
## 前提
エンジニア歴:3年
Java:1年
C#:2年
アルゴリズム、CSの専門知識無し
コーディングテストの為、学習中## 問題
[876. Middle of the Linked List ](https://leetcode.com/problems/middle-of-the-linked-list/)Given the head of a singly linked list, return the middle node of the linked list.
If there are two middle nodes, return the second middle node.Example 1:
Input: head = [1,2,3,4,5]
Output: [3,4,5]
Explanation: The middle node of the list is node 3.
Example 2:Input: head = [1,2,3,4,5,6]
Output: [4,5,6]
Explanation: Since the
【JavaSilver SE11】ぽんこつエンジニアのJavaシルバー挑戦日記(リアルタイム更新中)
# 挑戦者
業界三年目のぽんこつエンジニア。所有資格はIパスのみ(!)
Javaは新人時代に研修込みで一年ほど触って『完全未経験よりはマシ』程度。
最近の仕事はAndroidJava用の要件定義-設計フェーズ。概要レベルでは新技術を噛み砕いてつよつよエンジニアとそれっぽい会話を繰り広げるものの、コーディングレベルになると何もかもあやしい。
いい加減Javaシルバーでも取ってこの状況を脱さねばと一念発起した。# 挑戦日記
**0日目**
– Javaシルバーの申し込み方法を調べる
>参考:[初めてでも大丈夫!JavaSilverの申し込み手順をわかりやすく解説](https://manabiya-sakura.com/information_technology/id=1554/)– 学習計画を立てる
>参考:[【JavaSilver】Java SE8 Silverに合格した勉強法【合格体験記】](https://qiita.com/ebichan_88/items/8409c9b99bf5a2977cc7)– [黒本 (「徹底攻略Java SE 11 Silver問題集
自分の解説記事内で使用するテンプレートの紹介
## はじめに
コンテストに参加しているとわざわざ何回も書いたり長いコードを書いたりするのが面倒だなと感じるので、可能な限り簡略化すべく作ったテンプレートを紹介していきたいと思います。非常に見辛かったりなんでそんなものを・・・?って感じるコードがあったりするかもしれませんが、自分的にこれはこう書きたいなってのを反映した結果だったりするので温かい目で見守っていただけると幸いです(ただ、計算量が大幅に変化するようでしたら指摘していただけると嬉しいです)。
では、見ていきましょう。
## インポート
正直テンプレートで書くならimportしなくても良いとは思いますが、まぁテンプレにないものを実装する必要があるときにimportしておいた方が楽なので必要最低限をimportしてあります。
“`Sample.java
import java.io.*; //入出力用
import java.util.*; //リスト用
import java.math.*; //BigInteger用
“`## フィールド
取得用としてBufferedReader、出力用としてPrintWrit
コード値からEnum型へ変換するユーティリティクラス
JavaのEnum型はフィールドを定義することができて、コード値に変換したりするのに便利ですが、コード値からEnum型への変換は標準では用意されていないため、各Enum型に取得用のstaticメソッドが乱立しがちです。
“`java
import lombok.Getter;
import lombok.RequiredArgsConstructor;@Getter
@RequiredArgsConstructor
public enum Pokemon {
PIKACHU(“025”, “ピカチュウ”),
RAICHU(“026”, “ライチュウ”),
PICHU(“172”, “ピチュー”),
;private final String no;
private final String jName;public static Pokemon getByNo(String no) {
Optionalresult = Stream.of(values())
【Java/SpringBoot】messages.propertiesを参照して値を出力する
SpringBootの機能であるMessageSourceを利用してプロパティ値を参照する方法を記述します。
【view】
![【view】.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665680/dd1593b3-090b-12f1-8caf-01cefe70d808.png)
【messages.propertiesの作成】
![【階層】.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665680/e8d2d71a-aeec-3c59-7cd0-9975f39fd32c.png)
「resource」直下に「message.properties」を作成します。![【property】コード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665680/736acf18-3966
Kafka Javaチュートリアル -コンシューマー-
※Kafkaに関する情報は下記のURLから参照してください。
https://kafka.apache.org/intro# 必要ライブラリ
– kafka-clients-3.2.0
– slf4j-api-1.7.36
– slf4j-simple-1.7.36# 事前準備
– Kafkaの起動
下記のコマンドで立ち上げを行います。
`/bin/zookeeper-server-start.sh
/config/zookeeper.properties`
– Kafka brokcerの起動
下記のコマンドで立ち上げを行います。
`/bin/kafka-server-start.sh /config/server.properties` # Coding
1. Kafkaのプロパティを定義します。
final Properties props = new Properties();
props.put(ConsumerConfig.BOOTSTRAP_SERVER
Kafka Javaチュートリアル -プロデューサー-
※Kafkaに関する情報は下記のURLから参照してください。
https://kafka.apache.org/intro# 必要ライブラリ
– kafka-clients-3.2.0
– slf4j-api-1.7.36
– slf4j-simple-1.7.36# 事前準備
– Kafkaの起動
下記のコマンドで立ち上げを行います。
`/bin/zookeeper-server-start.sh /config/zookeeper.properties
`
– Kafka brokcerの起動
下記のコマンドで立ち上げを行います。
`/bin/kafka-server-start.sh /config/server.properties
`# Coding
1. Kafkaのプロパティを定義します。final Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERV
ABC254A~Cの解答[Java]
## はじめに
これはコンテスト中に解いた解法なので少々煩雑だとは思いますが、ご理解いただけると嬉しいです。では、コードを解説していきます。
## A – Last Two Digits
問題文は[こちら](https://atcoder.jp/contests/abc254/tasks/abc254_a)下二桁を出力すれば良いんですが、int型で受け取っちゃうと01が1になっちゃったり、わざわざ長さを整えるためにString.formatみたいなの使ったりするのはめんどくさいのでString型のまま受け取ってやりましょう。
“`A.java
import java.io.*;
class Main{
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static PrintWriter pw = new PrintWriter(System.out);public static void main(String[] args)throws IOExce
Spring BootでのAOPを利用したログ出力
# はじめに
[以前作成したwebアプリ](https://qiita.com/be834194/items/241d4c5b16eaa326e3dc)で、ログをファイル出力できるように改良した際に学んだことをまとめました。# 共通処理を意識していないコードの例
例として、ユーザをデータベースに追加する処理を用意しました。データベースへの追加のほかに、ログを表示するコードが書かれています。
“`RegistrationService.java
@Service
public class RegistrationService {private final RegistrationMapper registrationMapper;
private final PasswordEncoder passwordEncoder;
private static final Logger logger = LoggerFactory.getLogger(RegistrationService.class);
public RegistrationService
研修で行ったグループ開発(9日)
## 初めに
新卒として入った会社にて、受けさせて頂いた二か月のJava研修のラスト9日で行った、グループ開発についてまとめた記事です。### 成果物
`家庭教師と学生のマッチングを行うシステム`を作成しました。
![スクリーンショット 2022-06-05 003400.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/695130/74c48c15-0307-3dbf-c9c1-d8c730e573c7.png)### グループについて
6人のグループでした、簡単に私の主観を交えて役割(グループリーダー、サブリーダー、テクニカルリーダー[フロント]、テクニカルリーダー[バック]、DB管理、品質管理)と共に紹介します。Wさん(グループリーダー)
・研修中、プログラムの演習で後述する神に次いで優秀な成績を残していた方、コーディングはもちろん、リーダー適性もとてもあったため、グループ最初のミーティングで満場一致でリーダーに。Kさん(サブリーダー)
・自頭と顔が良い、言語化が上手いためメンバー
Java SE Bronze の勉強方法
# Java SE Bronze の勉強方法
## 目的
今回、[Java SE Bronze 1Z0-818](https://education.oracle.com/ja/java-se-bronze-available-only-in-japan/pexam_1Z0-818)に合格したので勉強方法をメモしておきたい## 学習開始時スペック
* Javaは大学の授業で触ったことがある
* 細かい文法は忘れているが、型(int, float…)、For/While、Ifはわかっている
* オブジェクト指向の考え方はなんとなく知ってる## 学習期間・時間
* 1ヶ月×1-2時間程度 ≒ 45時間ぐらい## 学習教材
### オラクル認定資格教科書 Javaプログラマ Bronze SE(試験番号1Z0-818)
https://www.amazon.co.jp/%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E6%95%99%E7%A7%91%E6%9B%B8-Jav
四捨五入、切り捨て、切り上げをしたい(Math)
## はじめに
現在、独学でJavaScriptを勉強中です。
`Mathオブジェクト`で躓いてしまったのでまとめてみました。## よく使うMathオブジェクト
`Math.round` ・・・四捨五入する(戻り値 数値)
`Math.round()メソッド`は次のような挙動をする。
・小数点部分が0.5以上であれば、次に大きい整数へ切り上げ
・小数点部分が0.5以下であれば、次に小さい整数へ切り下げ
“`javascript
Math.round(5.34); //結果: 5
Math.round(6.8); //結果: 7
“`
`Math.floor` ・・・切り捨てる。数値以下の最大の整数を返す(戻り値 数値)
※少数の大小に関わらず切り捨てる。
“`javascript
Math.floor(5.34); //結果: 5
Math.floor(6.8); //結果: 6
“`
`Math.ceil` ・・・切り上げる。数値以上の最小の整数を返す(戻り値 数値)
※少数の大小に関わらず切り上げる。
“`javascript
Math.ceil(5.34); //結