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

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

[Java基礎②]西暦から平成を出す 自動的に現在の年を取得(import java.util.Calendar)

初めに

Java学習開始2日目です。
今回は、西暦から平成を出すプログラムを作成しました。

“`
public class Main {
public static void main(String[] args) {
int seireki = 2015;
System.out.print(“西暦” + seireki + “年は”);
int heisei = seireki – 1988;
System.out.print(“平成” + heisei + “年です”);
}
}
“`
「system.out.print」で改行されないようにしています。

自動的に現在の年を取得

以下のCalendarの使用方法については理解できていませんが、
以下のように記述することで、自動的に現在の年を取得できるそうです。

“`
import java.util.Calendar;
public class Main {
public static void main(Stri

元記事を表示

Eclipse と Github を連携する方法 ~ パーソナルアクセストークン の 使用方法 ~

# 2021/8/13以降、Eclipse から Github を使う方法 

Githubは **2021/8/13** 以降、[パスワード認証でGit操作ができなくなり](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/)ました。

これにともない Eclipse の Gitクライアント(EGit) でパスワード認証をしていた場合は、パーソナルアクセストークンを利用したものに変更する必要があります。

– 環境: **Eclipse 2021-06**

## Github でパーソナルアクセストークンを発効する

– メニュー > **Settings** を選択する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/170905/a9521aab-0037-c624-0076-efd27274f6e9.png)

– **Developer settings*

元記事を表示

ランダムな整数

##目的
ランダムな整数を生成したい。

##使い方
###①Randumクラスをインポートしてインスタンス化。
Randum rm = new Randum();

###②nextInt()メソッドの呼び出し
rm.nextInt();
※少数ならdoubleやint
###③整数の範囲を指定
引数に指定した数の範囲の数が生成される。

“`
//引数に10を指定した場合は、0〜9の10個の数字。
//引数に6を指定した場合は、0〜5の6個の数字。

rm.nextInt(10);
“`

###④ランダムの数字をプログラムに当てはめる

“`
//500、100、50、10、5、1の6個の数字を格納したint型の配列をランダムに出力するプログラム
int coinCase[] = new int[6];
coinCase[0] = 500;
coinCase[1] = 100;
coinCase[2] = 50;
coinCase[3] = 10;
coinCase[4] = 5;
coinCase[5] = 1;

Randum rm = new Randum();
in

元記事を表示

オーバーライドとオーバーロード

##オーバーライド
親クラスで定義したメソッドを子クラスで子クラス専用のメソッドに書き換えること。

###使い方
Animalクラスを継承したDogクラスでAnimalクラスのSpeakメソッドを書き換える。

“`
public class Animal {
public void Speak(){
System.out.println( “……” );
}
}
public class Dog extends Animal{
//オーバーライド
public void Speak(){
System.out.println(“わんわん”);
}
}
“`

###約束ごと
引数、型、メソッド名が全て同一でないとオーバーライドできない。

##オーバーライド
引数の違いによって同一のメソッドを呼び出した時に違う処理をさせる

##使い方
引数が一つある場合はの処理と2つある場合の処理。

“`
public class Animal{
public void Speak(int i){

元記事を表示

未経験入社4ヶ月目でJava Gold11に合格した話

2021年4月の下旬にJava shilverを取得したのですが、Oracleの再受験無料キャンペーンがあったのでJava Goldも受験してみようと思ったのが受験のきっかけです。
あとは給料が上がるという不純な理由もありました^^;
案の定1回目は不合格だったので、2回目で合格ということになりました。
##受験時のスペック
**1回目受験の時**
受験したのが5月下旬だったので、入社からもうすぐで2ヶ月になろうかというところでした。
研修ではJavaのサーブレットやJSPを用いてTODOアプリを作っていました。
**2回目受験の時**
受験したのは7月中旬だったので、入社してから3ヶ月半が経過していました。6月からフロントエンドの開発に携わったので、業務でJavaを使うことはなくなりました。
なので、業務時間以外で勉強を進めていきました。
##使用したもの
①https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5-Java-Gold-%E5%95%8F%E9%A1%8C%E9%9B%86-1Z0-809/dp/429

元記事を表示

Javaマルチスレッド

# なんでマルチスレッド使う

例えば、複数なユーザーがバイクレースゲームするとし、みんながそれぞれログインして、見てる画面が同じとか、ウィブで記事を見ながら音楽も聴けます、トイレしながらスマホをいじったりとか。こいうような複数な処理を行うのがマルチスレッドの役割です。

ご存知のように、javaのプロジェクト一つにあたり、メインメソッドが一つしかない、じゃ上記の場合には複数のメインメソッドが必要になりますね。

↑を解決するために、マルチスレッドを使います。

# マルチスレッド作成種類

作成するのに以下の三種類があります。

## thread(重要)

以下三つのステップでスレッド作れます。
①Threadクラスを継承する
②runメソッドをオーバーライドする
③startでスレッド開始する

[Threadクラスドキュメント](https://docs.oracle.com/javase/jp/8/docs/api/)

“`java:ThreadTest.java
package com.maekawa.base;

//Threadクラスを継承する
public cla

元記事を表示

ソート処理について

現場でたまにソートして出すという要件があります。
その時に毎回「どうやるんだっけ」となってしまうので、簡単に記事にしようと思います。

##配列の場合
これは簡単です。
Arraysクラスの**sort**メソッドを使用します。
昇順の場合は、

“`java:Shojun.java
int[] numArray = {3,2,5};
// Arraysクラスのsortメソッドに並び替える配列を渡す。
Arrays.sort(numArray);
// ソートした配列を出力
Arrays.stream(numArray).forEach(System.out::println);

// 出力結果 2 3 5
“`

降順の場合は、**sort**メソッドの第二引数にCollections.reverseOrder()を指定します。
ただし、int型配列を並び替えるメソッドは用意されていない為Integer型にすると良いでしょう。

“`java:Kojun.java
Integer[] numArray = {3,2,5};

元記事を表示

[Java基礎①]サイコロを作る(ランダムな値の出力)Math.random() 型変換/変数の定義

初めに

今回はJavaでサイコロを作りつつ、Javaでの変数の定義方法を
学んでいきます。

コード

“`
public class Main {
public static void main(String[] args) {
double rand = Math.random() * 6 + 1;
int number = (int)rand;
System.out.println(“サイコロの目は” + number + “です。”);
}
}
“`
これを実行するとランダムに「サイコロの目は◯です。」と表示されます。

“`double rand = Math.random() * 6 + 1;“`
doubleで変数の型を宣言しています。
“`doubleは、小数点以下の数値です。“`

続いて、“`Math.random()“`はランダムな数を出力するメソッドです。
“`* 6 + 1“`は、何個の数字を取り出すか(6)、いくつからスタートするのか(1)を表します。
今回の場合1〜6と言うことです。

元記事を表示

【実践!Java】Stream APIをちゃんと理解する

# ■ Stream APIとは
Stream APIは、Listや配列を簡単に操作することができるイテレーションの拡張API。
例えば、for文でListから条件に合う値を取得する処理などはStream APIを使うことでよりシンプルに書くことができる。

大きく分けて以下の3つの操作を行う。
➀ Streamを生成

➁ 中間処理(省いてもOK)

➂ 終端処理

# ■ Stream生成
配列からストリーム生成

“`
Arrays.stream(配列のdata)
“`
listからストリーム生成

“`
list.stream()
“`

mapからストリーム生成

“`
map.entrySet().stream()
“`

# ■ 終端処理

生成したストリームを集計し、結果を返す処理。
簡単な処理であれば中間処理を省いて終端処理だけで実装できるため、先に紹介。

## 代表的なメソッド

| メソッド | 概要 |
|:————|:————: |
| anyMatch() | 少なくとも一つの要素でtrueとなる

元記事を表示

Spring Data JDBCで1対多テーブルを結合して取得する方法

#はじめに
Java言語初学者ですが、SpringBootフレームワークを使用してSQLを操作する際に、
1対多のテーブルを結合した結果を取得する方法でハマったため、
1対1のテーブル結合の方法と、1対多のテーブル結合の方法を比較したメモとして残します。

#環境
|OS|version|framework|使用環境|
|:—:|:—:|:—:|:—:|
|windows10|Java11|spring boot|Spring Tool Suite 4|
・Java11でSpring Data JDBCを使用できる状態
・動作するデータベース用意済み
・1対多の関係でテーブルを2つ作成済み
・テーブルにデータを格納済み

※今回の説明では「clabs」、「members」で記載します。

※また今回はテーブル結合方法の説明の為必要最低限の記載だけします。(importなどは省略)

#1対1のテーブルを結合して取得する方法
1対1のテーブルを結合してデータを取得する際は以下の方法を使用します。

※1対1のテーブル説明の為、1つのクラブには1人しか入れないこととします。

元記事を表示

HerokuにGitでHelloWorldをデプロイする②[SpringBoot]

今回は、前回作成したHelloWorldをHerokuにデプロイします。
前回→[HerokuにGitでHelloWorldをデプロイする①[SpringBoot]](https://qiita.com/kiki_202181/private/de4c0aab5713b478f04e)

#環境
+ OS : Windows10
+ Git : 2.32.0
+ Heroku : 7.53.0
+ eclipse
+ Spring Boot(thymeleaf,Maven)

#前提条件
+ Gitをインストール済み
+ Herokuに登録済み
+ Heroku CLIをインストール済み

#コマンドプロンプトを開く
前回作成したHelloWorldをHerokuを開いてください。
そして、フォルダのパスが書いてあるところに、`cmd`と入力し、Enterキーを押してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1832699/00f5166b-e470-6eed-dce4

元記事を表示

HerokuにGitでHelloWorldをデプロイする①[SpringBoot]

#環境
+ OS : Windows10
+ Git : 2.32.0
+ Heroku : 7.53.0
+ eclipse
+ Spring Boot(thymeleaf,Maven)

今回、GitHubと連携はしていません。

#前提条件
+ Gitをインストール済み
+ Herokuに登録済み
+ Heroku CLIをインストール済み

#Hello Worldのコードを準備する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1832699/967b66bd-5e24-6fee-f567-ce52abf156be.png)

GitHubで公開もしています。

https://github.com/kiki202181/HelloWorld

##Spring スターター・プロジェクトを作る
ファイル>新規>Spring スターター・プロジェクト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

Java16で追加されたDateTimeFormatterクラスの書式設定”B”について

# はじめに
Java16でDateTimeFormatterクラスの書式設定に “B” (period-of-day)が追加されました。
以下のドキュメントには意味として period-of-day 、例が in the morning とあるだけでよくわかりません。

https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/time/format/DateTimeFormatter.html

そこで、この書式設定 “B” について実機確認とソースから調べました。

# 実機確認

各時刻で書式設定 B を指定したときにどのように変換されるかを確認。
## 確認用ソース

“`java:TestPreiodOfDay.java
import java.time.format.DateTimeFormatter;
import java.time.LocalTime;

public class TestPreiodOfDay {
public static void main(S

元記事を表示

Eclipseを使ったtwitter4Jの環境構築メモ

Twitter APIをJavaで動かしたいと思い、twitter4Jに出会いました。
ここに、環境構築やデバッグ時の操作についてメモを残します。

動作環境
– Windows10
– Java11
– Eclipse IDE
– twitter4J 4.0.7

#環境構築
何はともあれTwitter APIの登録を。https://developer.twitter.com/en
Consumer API keys, Access token & access token secretを取得しておきましょう。

次に、twitter4Jのダウンロード。http://twitter4j.org/ja/index.html#download
適当なディレクトリに解凍しておきましょう。

Eclipseのインストール方法は省きます。

**プロジェクト作成**
Javaプロジェクトを作成します。ここでは、TestTwitter4Jという名前にしました。
![01_project.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

Java初心者に超オススメ出来るUdemy動画講座7選まとめ。最速マスター特化

初心者にオススメ出来るJava関連のUdemy動画をまとめました(タイトルの通りです)。
オススメ度は私の主観なのであしからず。

## 【 5日でできる】はじめての Java プログラミング入門
おすすめ度:★★★★★
・[【 5日でできる】はじめての Java プログラミング入門](https://px.a8.net/svt/ejp?a8mat=3BBPJR+AVRCOQ+3L4M+BW8O2&a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fcourse%2F10daysjava%2F)
### この講座で学べる内容
・Javaプログラミングの流れ、実行の仕組みについて理解できる
・Javaプログラミング環境を自分のPC上に作れるようになる
・統合開発環境(Eclipse)を導入し、効率よく開発ができるようになる
・オブジェクト指向プログラミングの概念を理解できる
・Android StudioをインストールしてAndroidプログラミングを体験できる
## 【Java サーブレット( Servlet )決定版】ゼロから環境構築~設計モデルま

元記事を表示

[WIP] Java テストコード

# 概要
Javaのテストコードの基本について纏めます。

# テストコード考え方
* 取れない値はモックを用意 (例:API,DBなど)
* Boolを返すファンクションに対して何も値をセットしない場合falseを返す
* モックで値がなんでも良い場合any()を利用
* targetsで実際のファンクションをコール

元記事を表示

[WIP] IntelliJ IDEA 便利機能 for Mac

# 概要
IntelliJ IDEA 便利機能について纏めます。

# ショートカットキー
**import**
– option + enter

**複数行コメントアウト**
– コメントアウト該当行を選択 → Command + /

**ファイルに移動**
shift + shift → 開いたウィンドウに移動したいファイルパスを入力 → Enter

**ファイルのフォーマット**
Command + option + l

元記事を表示

[WIP] Java 基本まとめ

# 概要
Javaの基本について纏めます

# 基本
**Entityとは**

・DBに保存されているレコードをマッピングするオブジェクト

# 修飾子
**static**
宣言以降値の変更不可

元記事を表示

【STS(SpringToolSuite)初学者必見】STS(Spring Tool Suite)が、PC再起動 or シャットダウン後、PC起動した後使えなくなる

##某プログラミングスクール卒業生の備忘録

どうもお久しぶりです!今回は

__か__
__な__
__り__

しんどかったことを投稿したいと思います(ほんと原因究明までしんどかったです。。。笑)

それでは早速行ってみましょう!

##STS(Spring ToolSuite)が起動しなくなった!?

そうなんです。再起動、もしくはシャットダウン後、PC起動時に使えなくなりました。。。

そのダイアログが

__「アプリケーション”SpringToolSuite4”を開くためのアクセス権がありません。」__

といったダイアログでした(写真を載せたかったんですが、ちょっと無理みたいです笑)

Spring Boot学習中に起きたことで、勉強どころじゃなくなりまして。10時間ほど無駄にしました。

Spring系のコンテンツは、英語のものばっかりなので、同事象が起きた場合はぜひ参考にしてください。
(Springだけじゃなくても、PC内アプリが同じことが起こったらぜひ参考に。)

##環境

Mac Book Pro
  ーシリコンのやつではないです。
SpringToolSui

元記事を表示

DBUnit + spring-test-dbunit を複数スキーマMySQLで使う設定

## 概要

SpringBoot環境でDBUnitを使う際、spring-test-dbunitを使うとアノテーションで指定するだけでデータベースのセットアップとアサーションができて便利ですね。

spring-test-dbunitは2021年8月現在最終コミットが2016年となっていて、残念ながら更新は完全に止まってしまっているのですが、まだそこそこ使われているようです。

ここではDBUnit + spring-test-dbunitを複数スキーマ切ってあるMySQLで使う際の問題について扱いますので、導入などは他の記事を参考にしてください。

## 問題

ひとつのDBにテスト用のスキーマと検証用のスキーマがある等、複数スキーマの環境でDBUnit + spring-test-dbunitを使うとAmbiguousTableNameExceptionが起きて困りました。

(特に制約がなければテストで使用するDBをH2などのインメモリDBにすればこのような問題は起きないしそうしたいところですが…)

スキーマは指定しているのですがどうやら正しく処理がされていないようです。

元記事を表示

OTHERカテゴリの最新記事