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

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

Ruby と Perl と Java で解く AtCoder ABC 129 C (前編)

# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder Beginner Contest 129 C – Typical Stairs](https://atcoder.jp/contests/abc129/tasks/abc129_c)*
Difficulty: 795

前編のテーマは、フィボナッチ
# Ruby
|階段数|組合せパターン|組合せ数|
|:–:|:–|:–:|
|1|1|1|
|2|1-2|1|
|3|1-2-3/1-3|2|
|4|1-2-3-4/1-2-4/1-3-4|3|
|5|1-2-3-4-5/1-2-3-5/1-2-4-5/1-3-4-5/1-3-5|5|
階段の上がり方は、上記の通りですが、勘のいい方はフィボナッチ数列であることに気付く

元記事を表示

#8 ?エンジニアを始めて20日経った感想【初心者エンジニア】

駆け出しエンジニアの[あつぎ](https://twitter.com/Fallstag_Atsugi)です!

エンジニアになって3週間経ちましたが、
どんな現状なのかをざっくばらんにお伝えします。

エンジニア初心者あるあるかは知らないですが、
初学者にありがちなことがあれば共感してください。

#Progateと実際にする問題は全然違う
Progateは初心者エンジニアでも、ベテランエンジニアでも1度は聞いたことがあると思いますが、カンタンにパズル感覚で解けてしまうWebサービスのことです。

レベル1は四則演算やif文といった初歩の初歩から教えてくれるので、エンジニアの適性をみるのも踏まえてやってみるのはかなりおススメです。もちろん段々と難しくはなりますが、それでも心理的ハードルは低いですね。

ですが、私が今実践で使っているのは、
自分で変数を定義し初期化するのではなく、[コマンドライン引数](https://qiita.com/Fallstag_Atsugi/items/2666f4d3f86cb2577674)をいきなり使って問題やってね、という方式なので悪戦苦

元記事を表示

僕のDAOパターン(Java)

自分用の備忘録
次の案件で使う可能性があるので、

**この記事で扱うDAOパターンの記述は、データベース接続と全件検索を行う課程のみ。DBはH2**

“`java
//ライブラリインストール
import java.sql.Connection;
import java.sql.DriverManger;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DAOSample{
public static void main(String[] args){
Connection conn = null;
try{
//JDBCドライバー読み込み
Class.forName(“org.h2.Driver”);
//データベースへの接続
conn = DriverManager.getCon

元記事を表示

Javaの変数使用方法に関して

## Javaの変数に関してのまとめ
Javaの変数に関して学習したことを、アウトプットします。
参考書籍:[スッキリわかるJava入門](https://www.amazon.co.jp/dp/B07ZQWKL2Q/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)

## 代表的な9種のデータ型

| 分類 | 型名 | 格納するデータ | 使用頻度|
|:———–|————:|:————:|:————:|
| 整数 | byte | とても小さな整数| △|
| | short | 小さな整数 |△|
| | int | 普通の整数 | ◎ |
| | long | 大きな整数 |△ |
| 少数 | float | 少し曖昧でも良い少数 | △ |
| | double | 普通の少数 |

元記事を表示

Javaソースコードの基本構造

# Javaソースコードの基本構造

“`java
public class Main {
// 以下クラスブロック
public static void main(String[] args) {
// 以下メソッドブロック
System.out.println(“Qiitaを更新します”);
System.out.println(“タイトル:Javaソースコードの基本構造”);
System.out.println(“お願い:間違っていたらコメントお願いします”);
}
}
“`

クラスブロックと外側は、毎回ほとんど同じ。
メソッドブロックに、処理命令を記載する。

元記事を表示

【初心者でもできる‼】Javadocの書き方

## 1.事前知識
– [【最新】UbuntuでJavaの環境を構築する方法](https://qiita.com/ryome/items/37c53e9638a9c6ea146a)

または

– [【初心者でもできる‼】Windows10にJava環境を作る方法(JDK14.0.1)](https://qiita.com/ryome/items/30135570954e36196821)

事前知識として、上記リンクの内容が必要です。

## 2.Javadocとは
– `Javadoc` とは、サン・マイクロシステムズが開発したコンピュータソフトで、Javaのソースコードから `HTML形式のAPI仕様書` を生成するものである。
– Javadocコメントは `/**` と `*/` の間に `コメントを記述` する。

## 3.Javadocの書き方とドキュメント作成

“`java:Sample.java
/**
* @author 作成者名
* @version x.x.x
*/

/**
* Javadocの解説用メインクラス
*/
public

元記事を表示

基本情報処理技術者試験の勉強について

就職活動でSier に内定をもらって、配属アンケートでの希望通りにSEになった。

親会社の意向で基本情報処理技術者試験を受験することが義務となった。

「合格」ではなく「受験」が義務らしい。でももともと取る気だったからちょうどいい。

勉強の方針や日記、現状などについて書いていきたいと思う。

[目標]
・基本情報処理技術者試験の令和2年秋試験に合格する
 →「午前問題」:60点以上
 →「午後問題」:60点以上 

[現状]
・「基本情報技術者試験ドットコム」(https://www.fe-siken.com/) の過去問道場
 →「午前問題」の得点率
  →ランダムに80問解いたとき:75〜80%程度
  →別ページの模擬試験や過去問を解いたとき:65%程度

 →「午後問題」の得点率
  →問1 :情報セキュリティ     :60%(必須問題)
  
  →問2 :ソフトウェア       :30%
  →問3 :データベース       :ー
  →問4 :ネットワーク       :50%
  →問5 :ソフトウェア設計     :40%
  →問6 :プロジェクトマネ

元記事を表示

【わかりやすく解説‼】Javaのインスタンスの使い方

## 1.事前知識
– [【最新】UbuntuでJavaの環境を構築する方法](https://qiita.com/ryome/items/37c53e9638a9c6ea146a)

または

– [【初心者でもできる‼】Windows10にJava環境を作る方法(JDK14.0.1)](https://qiita.com/ryome/items/30135570954e36196821)

事前知識として、上記リンクの内容が必要です。

## 2.インスタンスとは
– クラスをもとに生成された実体(オブジェクト)を `インスタンス` という。
– クラスをもとにオブジェクトを生成することを `インスタンス化` という。
– `インスタンス` は、他クラスの変数やメソッドを呼び出す(使用する)際にクラスから `new演算子` を使用することで生成できる。
– インスタンスの生成時は `コンストラクタ` が呼び出される。

## 3.コンストラクタとは
– `コンストラクタ` とは、クラスのインスタンス生成時に実行されるメソッドで、主にそのクラスのメンバ変数を初期化するときに使用され

元記事を表示

bucket4j を用いた Rate-Limiting

https://github.com/vladimir-bukhtoyarov/bucket4j

bucket4j は Java 向けの Rate-Limiting ライブラリとしては著名なものになり、さまざまな OSS、ライブラリでも用いられている。
内部的にはトラフィックシェーピングなどで広く用いられる **Token Bucket** と呼ばれるアルゴリズムを用いている。

https://en.wikipedia.org/wiki/Token_bucket

# Spring Boot Integration

3rd Party 製ではあるが Spring Boot Starter についても提供されている。

https://github.com/MarcGiffing/bucket4j-spring-boot-starter

この記事では bucket4j-spring-boot-starter をベースに簡単なアプリケーションを動作させ、実際にどのように動作するか検証を行った。

## bucket4j-spring-boot-starter-examples
ht

元記事を表示

ローカルPCでAWS KMSを使った処理をテストする

KMSを使った処理をローカルPCでテストしたときのメモ。

## 必要なもの

* Java開発環境
* Docker

[ソースはこちら](https://github.com/wenas/kms-local-test)

## 実行手順

### 1.[local-kms](https://github.com/nsmithuk/local-kms)の準備

AWS SDKから呼び出すlocal-kmsをコンテナで起動する。

今回は暗号化と復号のテストをするので、暗号化で使用するKeyを設定する。
local-kmsのドキュメントそのままに、seed.yamlファイルを作成する。

“`yaml
Keys:
– Metadata:
KeyId: bc436485-5092-42b8-92a3-0aa8b93536dc
BackingKeys:
– 5cdaead27fe7da2de47945d73cd6d79e36494e73802f3cd3869f1d2cb0b5d7a9

Aliases:
– AliasName: alias/te

元記事を表示

エラーログを読めるようになるまで

## 経緯
この前Twitterで、「[お前は絶望的にプログラミングに向いてないから諦めて刺身にタンポポ乗せる仕事でもやってろ](https://megalodon.jp/2019-0105-0145-49/note.mu/kotofurumiya/n/n31d401fce782)」という激熱タイトルの記事が回ってきたのですが、これ非常に面白かったのでお勧めです。この中に `エラーログが読めない大学生が多すぎる` という内容がありまして、自分も思い当たる節が多かったので、とりあえずSpigot Pluginに絞ってエラーログの読み方は解説しておこうと思いこの記事を突発的に書いています。

## エラーログを見てみよう
さて、まずはエラーログがないとお話になりません。解説のために意図的に[NullPointerException](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/NullPointerException.html)を発生させるPluginを作ってみました。

“`java:QiitaPlugin.java
p

元記事を表示

MyBatisのMapper XMLでJavaの列挙型(Enum)を使う方法

# はじめに
MyBatisのMapper XMLにおいて、
ネット上に定数(static final)を参照するコードはあるものの、
列挙型(enum)を参照するコードはあまり見かけなかったので記事にしました。

## インストール
“`groovy:build.gradle
compile ‘org.mybatis:mybatis:3.5.2’
“`

## 列挙型サンプル
“`java:SampleEnums.java
package com.example;

public class SampleEnums {

public enum Color {
RED(“1”), GREEN(“2”), BLUE(“3”);

private final String code;

private Color(final String code) {
this.code = code;
}

public String getCode() {

元記事を表示

同一のRadioGroupに入っているRadioButtonを画面上の自由な位置に配置したい

#概要
Androidの標準APIで提供されている`RadioButton`と`RadioGroup`。

複数の`RadioButton`を1つの`RadioGroup`の中に入れ子にすれば、その中で同時に一つだけが選択可能になる、とここまではいいのだが、`RadioButton`は自由に配置することが許されない。

#なんでRadioButtonは自由に動かせない?
ドキュメントでもなんでも見ればわかるのだが、`android.widget.RadioGroup`は**`android.widget.LinearLayout`を継承している**ため。

LinearLayoutが何だかはみんな知ってるでしょう。
つまり横1列か縦1列にしか並べられないということ。

なんでやねん!!
#解決策
ということで、作っちゃいました。そういうクラス。

“`java:FreeRadioGroup.java

import android.util.Log;
import android.view.View;
import android.widget.CompoundButton;
imp

元記事を表示

Java基礎

char型の計算はunicodeになる
https://ja.wikipedia.org/wiki/Unicode%E4%B8%80%E8%A6%A7_0000-0FFF

int型の小数は切り捨て
計算後にdouble型に代入するとx.0になる

元記事を表示

JUnitのアサーションとMatcher API

# 概要
JUnitにおいて、値の検証を担う要素である
「アサーション」、「Matcher API」について理解する。

# アサーションとは
アサーション(Assertion)とは、直訳で断言、断定という意味を持つ。

JUnitは大きく分けると、

1. 前提条件、想定結果の定義
2. テスト対象の実行
3. 想定結果と実行結果の比較検証

上記3つのステップでユニットテストを行う。
JUnitにおけるアサーションとは、
3つ目の「想定結果と実行結果の比較検証」を行うための仕組みである。

実際のコードでは、以下のように使用する。

“` java:アサーションの例.java
int expected = 1;
int actual = calc();
assertThat(actual, is(expected));
“`

このように記述することで、テストを
Assert that actual is expected.(実測値は想定値だと断言する。)
のように自然言語(話し言葉の英語)で書くことができる。

# Matcher APIとは
先ほど、例に挙げたソースコードに

元記事を表示

Java初心者脱却ブートキャンプ その1 Javaクラスの構成と書き方

新入社員でJavaを勉強し始めたみなさんに対し、
不定期で更新していきたいと思います。

今回のテーマは「クラスの書き方」です。

## クラスの基本形

まずは、クラスの基本形です。例として「人」を表すクラスを考えてみましょう。

“`java

public class Person {

/** 氏名 */
private String name;

/** 年齢 */
private int age;

/**
* コンストラクタ
* @param name 氏名
* @param age 年齢
*/
public Person(String name, int age) {
this.name = name;
this.age = age;
}

/**
* 年齢の取得
*/
public int getAge() {
return this.age;
}

/**
* ひとつ歳をとる
*/
public void countUpAge() {

元記事を表示

eclipse all in one インストール

Eclipseのインストールメモ。

# ダウンロード

https://mergedoc.osdn.jp/

#### ここで好きなバージョンを選択(今回はEclipse 2020を想定)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224453/2be65382-9073-8fb1-81af-56a3356b4d1d.png)
####なんやかんや入ってるFull Editionを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224453/b4710423-ac76-c834-5b6f-88281806de55.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224453/586da9b7-cf85-ed90-1269-be064b80e30f.png)

# インストー

元記事を表示

【初心者でもできる‼】Windows10にEclipseをインストールする方法(Java環境構築)

## 1.Eclipseとは
– Eclipseとは、コンピュータプログラミングにおいて使用される `統合開発環境(IDE)` である。
– Eclipseは、 `オープンソースのソフトウェア` であり、 Eclipse Public Licenseの条件に基づいてリリースされている。
– Eclipseは、主に `Javaアプリケーションの開発` に使用される。

※ `4.Eclipseの日本語化` を先に読むことをお勧めします。

## 2.Eclipseのダウンロード
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449867/15c5abe5-1aa2-ac65-42e3-c8baf83b74ee.png)
1. [Eclipse Downloads | The Eclipse Foundation](https://www.eclipse.org/downloads/) へアクセスする。
2. `Download 64 bit` ボタンをクリックする。
![02.png](http

元記事を表示

macでSpringBoot環境構築メモ

##はじめに
javaを勉強するにあたってspringの環境構築をmacで行ったので
備忘録として記録します。

##1,OPEN jdkのインストール

以下のサイトからダウンロード
http://jdk.java.net/13/
今回は13.0.2をダウンロードしました。

ファイルを解凍した後に以下のコマンドで
JavaVirtualMachinesに移動

“`
$ sudo mv jdk-13.jdk /Library/Java/JavaVirtualMachines/
“`

他のアプリケーションなどがJavaを利用する場合に
JDKのインストールされているディレクトリを探せるように環境変数JAVA_HOMEを設定

“`
$ export JAVA_HOME=`/usr/libexec/java_home -v 13`
“`

###JDKとは??
Java SE Development Kit
Javaでプログラムを作るためにコンパイラなどの必要なツールが入った開発キット。
Javaの実行環境であるJREも含まれている。

##2,Spring Tool Sui

元記事を表示

JavaでIf式をしてみる

## まえがき

本稿は、こちらの記事に影響を受けて衝動的に作られました。
[4歳娘「パパ、constしか使わないで?」](https://qiita.com/Yametaro/items/17f5a0434afa9b88c3b1)

## 本文

みなさん、Javaは好きですか。

私は最近まであまり好きではありませんでしたが、最近は結構好きです。

なんだかんだライブラリも豊富ですし、モダンな構文やsyntax sugarも増えてきました。

ただ、If式が無いのはいただけないので、それっぽいものを作ってみました。

## 完成品

“`java
public class Iff {
Map, Supplier> evaluations = new LinkedHashMap<>();
private Supplier elsef;

public Iff(Predicate condition, Supplier then) {
evaluations.put(condition, then);

元記事を表示

OTHERカテゴリの最新記事