- 0.0.1. Leetcode 739. Daily Temperatures
- 0.0.2. 【合格体験記】Javaに苦手意識のある新卒がJava SE11 Silverにゆっくり2か月で一発合格した
- 0.0.3. Jacksonデシリアライズをいい感じにしたい話
- 0.0.4. [C#] namespaceとusingの考え方にピンとこないやつは読め
- 0.0.5. 【初心者向け】MacのVScodeでJava+SpringBootを動かしてみる【#1 環境構築編】
- 0.0.6. 【Java】JavaおじさんのJava放浪記:その2(値・演算)
- 0.0.7. JUnit5 メモ
- 0.0.8. #29 Thymeleafを利用したSelectボックスの作成
- 0.0.9. #28 Spring Mybatisを利用したデータベース操作[5. テーブル結合1]
- 0.0.10. 基本情報の擬似言語とクイックソートでk番目に小さい値を探してみた!
- 0.0.11. Javaのアノテーション
- 0.0.12. 【エラー・Exception】検査例外・非検査例外~Java~
- 0.0.13. JavaでもVCRでHTTPテストのモックを生成したい [OkReplay]
- 0.0.14. try-catch文の使い方まとめ①
- 0.0.15. JavaでWord文書にコンテンツ コントロールを追加する方法
- 0.0.16. Leetcode 232. Implement Queue using Stacks
- 0.0.17. 学生証を用いた入退出管理システムを作成した話
- 1. はじめに
- 2. 主に利用した技術
Leetcode 739. Daily Temperatures
https://leetcode.com/problems/daily-temperatures/description/
# アプローチ
### 1. ~~Brute-force~~ → TLE
### 2. Stack“`java
package com.leetcode.midium;import java.util.Stack;
public class DailyTemperatures739 {
public static void main(String[] args) {
int[] count = dailyTemperatures(new int[]{99, 99, 99, 99, 100});
for (int i = 0; i < count.length; i++) { System.out.println(count[i]); } } // Stack public static int[] dailyTemperatures(int[]
【合格体験記】Javaに苦手意識のある新卒がJava SE11 Silverにゆっくり2か月で一発合格した
# はじめに
本日Java SE11 Silverを受験し、合格しました。得点率:84%(ボーダー63%)
# 著者スペック
- Javaの研修を1~2か月くらい、入社後に受けました。入社後1年未満の基本情報持っている新卒です。
- 施策内でSpringBootを使ってるので、ちょこちょこ書いていますが、個人的な好みはフロントエンド > バックエンドです。
- 実務ほぼ未経験者+並行して他の資格の勉強をしておりましたので、ゆとりをもって学習しました。
# 受験した理由
- 業務で使う技術なのにJavaが苦手で何とかしたかった。Java雑魚と思われないように、資格という形にしたかった
- 就業先の受験料補填対象の資格だった
- 応用情報の結果発表まで暇だった(今週発表やん…こわ…)
# この記事の対象とならない(かもしれない)人
- 何としてでも短期間で合格したい人
- Javaが得意な人。(そんな人たちからす
Jacksonデシリアライズをいい感じにしたい話
この記事は ウェブクルー Advent Calendar 2022 18日目の記事です。
昨日は [@yuko-tsutsui](https://qiita.com/yuko-tsutsui) さんの「[XXXXXXXXXXX](XXXXXXXXXXX)」でした。## はじめに
弊社では、通常Scala + PlayFrameworkで開発をしているのですが、最近300年ぶりにJava + SpringBootでのAPI開発でJacksonに振り回された(いる)ので題材にしました。
## Jacksonってなんだ
Javaで使用するJson parseライブラリ。JavaのオブジェクトからJsonへの変換、またその逆をよしなにやってくれる便利くんです。
Scalaに関しては先週の[Scala + Play Frameworkでリクエストを値オブジェクトにする](https://qiita.com/yagiyuuuu/items/f6bf6252550021624bc5)で記事が書かれているので読んでください。
## 今回のお供JsonCreator
通常Jacksonは
[C#] namespaceとusingの考え方にピンとこないやつは読め
# namespaceとusingの考え方
## namespaceとは
namespaceとはnamespaceはひとつのシステムが実装されてるクラス群に記述するものだ。
どこに書けばいいのかわからん奴は
その中のどれか化が抜けてしまうとそのシステム全体が
機能しなくなってしまうようなクラス群に記述しよう。
プロジェクトが大きいほど特に
「システム単位をはっきりさせたい」
「名前が被ってしまった」
が出てくるので使える。
### つ ま り
このシステムを実装するのにつかわれた必須クラスはこれとこれだよと明示する役割を果たしている。
同じnamespace内にあるクラスの参照のnullcheckは省いても大丈夫だろう。(絶対大丈夫と言わけではないが)
## usingとは
usingはそのnamespaceで囲ったシステムを使わせてもらうクラスの冒頭に記述する。ただ、そのusingを記述したクラスは
もしもそのシステムを使わなくなってしまった場合なども
正常に動作させる必要があるため、
そのnamespaceを用いたクラスの参照を行う際
【初心者向け】MacのVScodeでJava+SpringBootを動かしてみる【#1 環境構築編】
# #1 「Hello World」するための環境構築編
## はじめに
この記事を見ている方は、すでにSpringBootを使いたいって方だとは思ってますが、そもそもSpringBootって何?って方は[こちらの記事(準備中)]()をご覧ください。ってことで、今回は
**MacのVScodeでJava+SpringBootを動かしてみる**
をテーマにやっていきます。Windowsだとよくあるのですが、
Mac × VScode × SpringBootの情報がなかなか見つからず苦労したので
同じような方がいれば、ぜひ参考にして頂けたら嬉しいです
それでは参りましょう!!
## ゴール
今回のテーマでは、
**「PCを買ってきたばかりの状態から、ブラウザ上に”Hello world”を表示される。」**
が、できるようにしていきます。
## 作業の流れ
環境構築編でたったの3step!
必要なソフトウェアのインストール(Java、JDK、VScode)
↓
VScodeの拡張機能の追加## 環境構築
### 前提
OS: macOS Monterey バージョン1
【Java】JavaおじさんのJava放浪記:その2(値・演算)
# はじめに
こんにちは、Javaおじさんです。
今回は、Javaにおける値・演算について大まかにまとめていきます。
何卒宜しくお願いいたします。## 記事の内容
– Javaにおける値や演算について大雑把に理解していく。
# Javaにおける値・演算
– 値:プログラム上でやり取りする情報
– 整数:int (大抵これ), long, short, byte, char
– 小数:double (大抵これ), float
– 真偽値:boolean (trueかfalse)
– 演算子:全部で40個ほどらしい (算術・比較・論理・条件・三項・代入・インクリメント/デクリメントなど)
※異なる型どうしでの演算、オーバーフローには注意# おわりに
今回は、Javaにおける値・演算について大まかにまとめました。
本記事をお読みいただいた方々に、深く感謝いたします。
記事の内容に誤り等がございましたら、何卒ご指摘の程宜しくお願いいたします。## 参考
– [スラスラわかるJava 第3版](https://www.amazon.co.jp/%E3%82%B9
JUnit5 メモ
## ルール
JUnitを利用する場合、import文を記述する
テストクラスの中に複数のテストメソッドを入力
mainメソッドを記述しない
@Testをつける。
@Test: JUnitにテストメソッドであることを認識させる.
値の確認には、専用のメソッドを使用する## JUnitで利用できる主なメソッド
assertEquals(期待値,実際値)
equalsで比較して同じことを検証assertSame(期待値,実際値)
等号で比較して同じインスタンスであることを検証assertNull(実際値)
nullであることを検証assetNotNull(実際値)
nullでないことを検証fail()
例外が発生時した際に正しく動くか検証する“`java
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.fail;import org.junit.jupiter.api.*;
public class BankTest {
// 正常系:”kei”を
#29 Thymeleafを利用したSelectボックスの作成
# #29 Thymeleafを利用したSelectボックスの作成
HTMLには“https://developer.mozilla.org/ja/docs/Web/HTML/Element/select
# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため所々説明は省略します。# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5
mybatis-spring-boot-starter ver 2.2.2
Model Mapper ver 3.1.0
jquery ver 3.6.1
bootstrap ver 5.2.2
#28 Spring Mybatisを利用したデータベース操作[5. テーブル結合1]
# #28 Spring Mybatisを利用したデータベース操作[5. テーブル結合1]
今回はMybatisを用いてテーブルの結合を行います。# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため所々説明は省略します。# 前回まで
前回はMybatisを利用してデータの検索、全クリアを行いました。https://qiita.com/Jackoguro/items/2b93c45430914af7b9a6
# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5
mybatis-spring-boot-starter ver 2.2.2
Model Mapper ver 3.1.0
jquery ver 3.6.1
bootstrap ver 5.2.2
webjars-locator ver 0.46
thymeleaf-layout-dialect ver 3.0.02. 依存関係
![image.png](https://qiita
基本情報の擬似言語とクイックソートでk番目に小さい値を探してみた!
基本情報技術者の擬似言語の学習のため実際にプログラム化してみました。
仕様はそのままに一部アルゴリズム強化のため自分で自分で条件式等を考えているため実際の擬似言語プログラムとは差異があります。“`java:qiita.java
import java.util.*;public class SelectArrayElement {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);System.out.println(“配列の要素数を入力してください”);
int elements = Integer.parseInt(sc.next());
int[] data_array = new int[elements];/*
* テストデータ
* 入力値 = 3 2回目 7
* [3,5,6,4,7,2,1] 1回目 => 3 ok 2回目: => 7 ok
* [1,3,2,4,2,
Javaのアノテーション
## アノテーションとは
プログラムの構成要素に付与するメタ情報。
アノテーションとは日本語で「注釈」という意味です。Javaではコンピューターに対してソースコードだけでは命令しきれない情報を伝えるために使用します。標準ライブラリに含まれる主なアノテーション
|アノテーション名|意味|
|:–|:–:|
|Override|オーバーライドしたメソッド|
|Deprecated|非推奨であることを明示|
|SuppressWarnings|コンパイルの警告メッセージを抑制|
|SafeVarags|ジェネリック型の可変長引数の警告メッセージの抑制|
|FunctionalInterface|関数型インターフェイスを表示|
|Native|フィールドがネイティブコード由来であることを明示|## 使い方
### @Override
overrideをつけると、「このメソッドはオーバーライドしているメソッドです」という注釈になります。
基となるメソッドが無く、オーバーライドしていると言えない場合はエラーが発生するようになります。“`java
class AnimalOve
【エラー・Exception】検査例外・非検査例外~Java~
## 検査例外・非検査例外とは
#### 検査例外
検査をしなくてはいけないもの
#### 非検査例外
検査をしなくても良いもの
一括りにするとざっくり「異常や例外」です。
下記のように継承関係があります。
“`java
Object
//↑
Throwable
//↑ ↑
Error Exception
// ↑
RuntimeException“`
まず、大きく分けて「**Error**」か**そうではない**かに分けられます。**Error**はプログラムから回復不可能なエラーのことを言います。「プログラムで対処する」ことを求められていません。
逆に言えば**Error以外は**プログラムの中で対処することが求められているエラーです。
以上を踏まえた上で以下のように分けられます。
「**Error**」「**Exception**」「**RuntimeException**」に分けられます。
それぞれ**エラー**、**検査例外**、**非検査例外**を表します。#### Exceptionの一部(R
JavaでもVCRでHTTPテストのモックを生成したい [OkReplay]
## はじめに
この記事は [ニフクラ](https://www.nifcloud.com/) 等を提供している、[富士通クラウドテクノロジーズ Advent Calendar 2022](https://qiita.com/advent-calendar/2022/fjct) の 17 日目の記事です。昨日は @ktakaaki さんの [ITエンジニアがレザークラフトを真面目にやってみた](https://qiita.com/ktakaaki/items/7dd3268cd1b16bea2771) でした。
作品の完成度が高くて驚いています。また、完成イメージから設計図に落とし込む部分はやはり”ITエンジニアが”の部分も生かされているのでしょうか。本日は、サービス間のテストに用いることができるVCRの仕組みをJavaエンジニアの皆様に向けて紹介したいと思います。
## サービス間のテスト
他サービスのAPI呼び出しを含むテストに用いる手法は大きく3つあるかと思います。
– 結合テスト(実際にAPIを呼び出す)
– モック
– CDC(コンシューマ駆動契約)テストマイク
try-catch文の使い方まとめ①
## 目次
[1.try-catch文とは](#1-try-catch文とは)
[2.try-catch文の使い方](#2-try-catch文の使い方)
[3.try-catch-finally文の使い方](#3-try-catch-finally文の使い方)
[4.try-catch文使用の注意](#4-try-catch文使用の注意)
[5.よくある例外](#5-よくある例外)## 1. try-catch文とは
処理の中で発生したエラーを例外(Exception)といい、例外が発生すると異常終了してしまう。
しかし、try-catch文で例外をキャッチすることで、例外発生箇所をスキップしたり、
例外の内容ごとに処理をおこなったりすることができ、異常終了を防ぐことができる。## 2. try-catch文の使い方
### 基本構文
“`java
try {
// 例外が発生する可能性のある処理
} catch (Exception e) {
// 例外発生時の処理
}
“`
catch句に例外クラスを指定することで、例外の内容ごとに処理をおこ
JavaでWord文書にコンテンツ コントロールを追加する方法
Word文書におけるコンテンツ コントロールは、日付、リスト、書式付きテキストなど、特定のコンテンツのための容器です。これらは、特定の種類のコンテンツの入力や表示を容易にするため、テンプレートやフォームなどの文書を作成する際によく使用されます。例えば、日付選択コンテンツ コントロールは、ポップアップ ウィンドウで日付を選択するだけで入力でき、既定の書式またはカスタマイズされた書式で日付を表示することができます。この記事では、無料の[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)の助けを借りて、**Word文書にコンテンツ コントロールを追加する方法**を紹介します。
– **[Word文書にドロップダウン リスト コンテンツ コントロールを追加する](#word文書に日付選択コンテンツ-コントロールを追加する)**
– **[Word文書にコンボ ボックス コンテンツ コントロールを追加する](#word文書にコンボ-ボックス-コンテンツ-コントロールを
Leetcode 232. Implement Queue using Stacks
https://leetcode.com/problems/implement-queue-using-stacks/description/
## 難易度
### Easy## アプローチ
### Stack“`java
class MyQueue {public Stack
mainStack;
public StacksubStack; public MyQueue() {
mainStack = new Stack<>();
subStack = new Stack<>();}
public void push(int x) {
mainStack.add(x);
}public int pop() {
while(!mainStack.empty()){
subStack.add(mainStack.pop());
}int re
学生証を用いた入退出管理システムを作成した話
はじめに
私は情報系の学部に通う大学2回生で、学園祭実行委員会に所属して模擬店の管理・運営支援を行っています。今回、私は効率的な入室管理を行うべくFelica(学生証)を用いた入退出管理システムを作成しました。
https://github.com/TAKAYAMAN2180/Entry-and-exit-time-Improved-management/tree/master
主に利用した技術
Apach POI
>Apacheソフトウェア財団のプロジェクトで、WordやExcelといったMicrosoft Office形式のファイルを読み書きできる100% Javaライブラリとして提供
>引用:https://ja.wikipedia.org/wiki/Apache_POI学籍番号とそれに結びつけるデータを保存しているExcelファイルを読み取るために使用しています。
<
ラムダ式とStreamAPI
## ラムダ式
### 関数を生み出し、即時利用
“`java
public class Main {public static void main(String[] args) {
double b = 3.14;
IntToDoubleFunction func = x -> {
x = 3;
return x * x * b;
};Function
func1 = (String s) ->{
return s.length();};
int num = func1.apply(“ABCD”);
System.out.println(“ABCDは” + num + “文字です。”);
}
}
“`### 並び替え
“`java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class Main6 {
public static void ma
ファイルの読み書き
## ファイルに2進数のデータを追記する
“`java
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class Main {
public static void main(String[] args) throws IOException {
//ファイル/パスを指定して生成
FileOutputStream fos = new FileOutputStream(“bainary.data”, true);
//書き込むデータをバッファに保存
fos.write(65);
fos.flush();
//ファイルを閉じる
fos.close();
}
}
“`## 書き込み
“`java
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter
【kabuslib】auカブコム証券のkabuステーションREST APIを列挙体でラップしたAPI
# はじめに
過去記事は「[auカブコム証券のkabuステーションREST APIに関する記事一覧](https://qiita.com/hiuchida/items/611ba237dc1d1f6e3dca)」。
swagger-uiが生成したソースは、int型やString型なので、列挙体を定義したが、intValue()などで数値にしているため、せっかくの型チェックが効かない。このため、列挙体を使用したAPIメソッドやモデルクラスを作成する。
# APIメソッド
InfoApiのordersGetの定義は以下のようにString型となっている。
“`java
public ListordersGet(
String X_API_KEY, String product, String id, String updtime, String details, String symbol,
String state, String side, String cashmargin) throws ApiException
“`後か