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

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

ArrayListを使ったバブルソート(JAVA)

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList array = new ArrayList();
int count = 0;
count = scanner.nextInt();

for (int i = 0; i < count; i++) { array.add(scanner.nextInt()); } for (int i = 0; i < array.size() - 1; i++) { for (int j = array.size() - 1; j > i; j–) {
if (array.get(j – 1) > arra

元記事を表示

Java リテラルについて

##リテラルとは
値の表記のことをリテラルといいます。変更されないことを前提とした値で、数値や文字列を直接記述した定数のことです。
リテラル(literal)とは英語で、「もじどおりの、言葉本来の意味通りの」といった意味を持ちます。

リテラルは全部で6種類あります。

###文字リテラル
値をシングルクォート(’)で囲んだもの。値が1文字の時に使用します。一般的には文字列リテラルを使用することが多く、文字リテラルはあまり使用しません。
ただし、特殊記号を使う時にはこの文字リテラルを使います。

###文字列リテラル
値をダブルクォート(“)で囲んだもの。値が1文字でも使用できます。

###整数リテラル
小数点のない値を指します。
2,8,10,16進数の表現ができます。

###浮動小数点リテラル
小数点を持つ値を指します。10進数と指数を表現できます。

###論理値リテラル
論理値の値を指します。

真=true
偽=false

###nullリテラル
参照型のデータを参照する時に、何も参照してないということを指します。

##例
以下の例では、int型の変数nに数値の6

元記事を表示

SeleniumでMacのEdge(Chromium版)を動かす

## はじめに

2020/06 ついにChromium版のEdgeがWindowsアップデートでできるようになりましたね。
最近、E2E自動テストにおいて、IEを含める依頼はめっきり減ってきました。
一日でも早く
**「自動テストをやりたい(E2Eね)」 → 「InternetExplorerで 」**
という流れが世の中からなくなれば良いと思っています。
代わり増えてきたのが、**Edge**です。

ではChromium版のEdgeをMacOSで動かします

## 開発環境とか
#### OS

“`
% sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.5
BuildVersion: 19F101
“`

#### java
“`
% java -version
openjdk version “11.0.7” 2020-04-14 LTS
OpenJDK Runtime Environment Corretto-11.0.7.10.1 (build 11.0.7+10-LTS)
OpenJDK 64-Bit Se

元記事を表示

[Processing×Java] クラスの使いかた

この記事はプログラムの構造をProcessingを通じて理解していくための記事です。
今回はクラスについて書いていきます。

目次
0.クラスとは
1.あらかじめ用意されているクラス
2.自分で定義してつくるクラス

#0.クラスとは

##0-0. **クラスとは**

関連するフィールド(変数)とメソッド(関数)が入ったテンプレート(型)のことです。
よくレシピや設計図などに例えられます。

##0-1. **なぜクラスを使うのか**
主な理由は、
①**プログラムが読みやすくなるから。**
②**再利用できるようになるから。**
(再利用については後ほど詳しく)

##0-2. **クラスの種類**

クラスには、”**あらかじめ用意されているクラス**”と、”**自分で定義してつくるクラス**”があります。

あらかじめ用意されているクラスは、具体的には、String,PImage,PFont,PShape,PVector…などです。

#1.**あらかじめ用意されているクラス**
Processingでは、**たくさんのクラスがあらかじめ用意されて

元記事を表示

CICS-Javaアプリケーションを動かす – (4)Spring Bootアプリ

#はじめに
CICS TS for z/OSでは、Libertyの稼働がサポートされているので、CICS上でJavaEEアプリケーションを動かすことができます。
CICS TS V5.3からSpring Bootをサポートするようになったため、Spring BootのアプリケーションもCICS上で(CICS上のLibertyで)稼働できるようになりました。CICS上で動くということは、CICSの機能を使用するJCICSが使えるということなので、既存のCICSプログラムを呼び出すWebアプリ、CICS管理のVSAMやTSQをアクセスするWebアプリ、といったものがCICSだけで動く、さらにそれをSpring Bootフレームワークを使って開発できる、ということになります。

この記事では、以下GitHubに提供されているCICS-SpringBootアプリのサンプルを動かしてみます。
[cics-java-liberty-springboot-jcics](https://github.com/cicsdev/cics-java-liberty-springboot-jcics)

ビル

元記事を表示

例外処理について

##例外とは
例外は、プログラム上で想定外の動作が行われ、処理が続行できなくなったことを通知するためのオブジェクトです。
例外を使えば、コードの正常処理と以上処理をある程度分離できるため、コードが読みやすくなります。

##エラーと例外の違い
Java実行中のトラブルは,エラーと例外の2種類に分けられます。

**エラー**
実行環境のトラブル等、プログラムから対処不可能な事態。
プログラムが続行できなくなり、強制終了してしまいます。

**例外**
プログラムから対処可能な事態。
エラーとは違い、動作を終わらせることなくプログラムを続行できます。

##チェック(検査)例外
メソッドを記述する際、例外処理も書かないと怒られるのがチェック例外で、チェック例外は基本的に、正しいプログラムを書いていても避けられない例外です。例えば、参照したいファイルが壊れているとか、DB障害等がこれにあたります。
チェック例外はコンパイラがチェックする例外処理で、Exeptionやそのサブクラス等が対象です。

##非チェック(検査)例外
例外処理を記述したかをコンパイラがチェックしない例外で

元記事を表示

SpringBoot入門ガイドやってみた【Accessing Data with JPA編】

#目的

[Spring Quickstart Guide](https://spring.io/quickstart)を取り組み終えた方、SpringBootを学び始めた方、復習をしたい方に向けて、

公式が人気ガイドだからやってみて!と勧めてくれている、[Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/)を実際に取り組み学んだことを共有します。

“`text:開発環境
OS: macOS Mojave バージョン10.14.6
テキストエディタ: Visual Studio Code(以下VSCode)
Java: 11.0.2
“`

[QuickstartGuideのおさらいはこちらから](https://qiita.com/morioheisei/items/59384f015e9e3801c4a7)
[Building a RESTful Web Service編のおさらいはこちらから](https://qiita.com/morioheisei/items/03106a

元記事を表示

TDD勉強#1環境構築した&はじめてのテスト駆動開発(July 6th, 2020)

javaの環境構築をした.
#動作環境
– visual studio code
– windows10

#vscodeのjava環境構築
下のサイトみた
https://qiita.com/takuma-jpn/items/b49785a314fb4db85775

#早速Hello World!に苦戦
javaで `Hello World!`を表示するプログラム↓

“`java:Test.java

public class Test {
public static void main(String[] args) {
System.out.println(“Hello.World!”);
}
}
“`
どうもファイル名とクラス名を一致させる必要があるらしい.沼だった.
あとは,`launch.json`をつくる.フォルダを選択してプロジェクト化する(?)

#maven使ってTDD動いた
下のサイトみた.
https://engineeringnote.hateblo.jp/entry/java/junit_with_maven_in

元記事を表示

[Processing×Java] 関数の使いかた

この記事はプログラムの構造をProcessingを通じて理解していくための記事です。
今回は関数について書いていきます。

![ezgif.com-gif-maker (4).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/9272afe7-9bbb-4ecb-2729-ea57e79af012.gif)

目次
0.関数の使いかた
1.あらかじめ用意されている関数
2.自分で定義してつくる関数
3.関数のモジュール化→再利用化の例

#0.関数とは

##0-0. **関数とは**

関数は、出力装置のようなものです。
何かを受け取って、それを変換して出力します。

##0-1. **なぜ関数を使うのか**
主な理由は、
①**プログラムが読みやすくなるから。**
②**再利用できるようになるから。**
(再利用については後ほど詳しく)

##0-2. **関数の種類**

関数には、”**あらかじめ用意されている関数**”と、”**自分で定義してつくる関数**”があります。

元記事を表示

VSCodeでSpringBootアプリケーションを開発しているときにハマったこと

# 始めに

最近は、Javaでの開発もVSCodeに一本化しようと思い色々と試しています。

既に同じようなことでハマってる方がいましたが、自分へのメモとして。

# 環境

一応、私の環境セットを載せてありますが、フレームワークは何でもよいです。(VSCode, Gradle環境で再現します。)

– IDE:VSCode
– 言語:Java
– フレームワーク:Spring Boot
– ビルドツール:Gradle

# 事象

`build.gradle`のdependenciesに依存ライブラリを追加で定義する。例えば、Spring BootアプリケーションにDoma2への依存を追加することにする。

“`build.gradle
// … 省略
dependencies {
implementation ‘org.springframework.boot:spring-boot-starter-web’
compileOnly ‘org.projectlombok:lombok’
developmentOnly ‘org.springframework.

元記事を表示

[Java] Mockitoでコンストラクタに引数を渡す/メソッドのデフォルト呼び出しをcallRealMethodにする

Mockitoのちょっとしたメモ

## コンストラクタに引数を渡す

“`java

package jp.jig.product.live.server.common.service;

import org.junit.Test;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class ApiServiceTest {

public static class ApiService {

private final String endpoint;
private final int timeout;

public ApiService(String endpoint, int timeout) {
this.endpoint = endpoint;
this.timeout = timeout;
}

pub

元記事を表示

【Java】祝日判定サンプル

# 概要
平日のみbatchを稼働させたくて、土日はcronで簡単に除外できるけど祝日はサクッと除外できないのでJava側で祝日判定した。
ちょっと検索した感じJavaのサンプルがあんまり見当たらなかったので公開します。

## 注意
– 振替休日はちょっと複雑なので考慮しません
– 過去の年は考慮しません
– 今年(2020年)は特殊なので考慮しません
– 春分の日と秋分の日の計算式は1980~2099年のみ有効

# 環境
– Java 1.8
– SpringBoot 2.2.1.RELEASE

# 1. 祝日の定義classを作成
– 固定日付、ハッピーマンデー、春分の日、秋分の日の4パターン

“`PublicHoliday.java
package com.tamorieeeen.sample.consts;

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import lombok.AllArgsConstructor;
impor

元記事を表示

JAVAでimmutableなクラスをつくる

##imutableとは

immutableとは**不変**のこと。
つまり、immutableなクラスとはインスタンスの中身が変わらない(=書き換えられない)クラスのことです。
immudatableなクラスを書き換えるということは、インスタンスを再生産するということになります(繰り返し処理の中で何度もインスタンスが作られると古いインスタンスが溜まっていき、処理速度が遅くなるため、使い方は注意しないといけません)。immutableなクラスを利用する時には、中身を変更してないか、参照型の値を利用してないか等、確認する必要があります。

##immutableのメリット
immutableなオブジェクトは、作成時から状態が変わらないため、処理の途中で意図しない形に値が変化する心配はありません。
immutableなクラスで代表的なものに、Stringクラスがあります。

##作成時の条件
immutableなクラスを作るには、以下の4つの条件を満たす必要があります。

**1.クラスをfinalとして宣言**

**2.すべてのフィールドをfinalかつprivateにする**
クラ

元記事を表示

Javaの比較 compareTo()メソッドを使って

“`ruby:filename.rb
public static void main(String[] args) {
System.out.println(“—–a.compareTo(b)を使ってみよう!—–“);
//aが大きい場合
Integer a = 2;
Integer b = 1;
System.out.println(“a の方が大きい場合” + ” ” +a.compareTo(b)); // 1 が返る
//aが小さい場合
a = 1;
b = 2;
System.out.println(“a の方が小さい場合” + ” ” +a.compareTo(b)); // -1 が返る
//a と b が同じ数字の場合
a = 1;
b = 1;
System.out.println(“a と b が同じ場合” + ” ” +a.compareTo(b)); // 0 が返る

}
“`
compareTo()・・・・まだ使い道がよくわかりません(笑)

元記事を表示

Google Cloud FunctionsでJava11を使う

#はじめに

2020年5月にGoogle Cloud FunctionsでJava11がβ版ですがサポートされました。[こちら](https://cloud.google.com/blog/ja/products/application-development/introducing-java-11-on-google-cloud-functions)
当記事ではHTTPリクエストをトリガーに動くJava11アプリケーションを実際にデプロイをするまでを解説しています。

操作にはCloud Shellを使っています。

#Mavenの準備
まずはMavenに必要なpomファイルから用意します。Cloud Functionsで動かすのに必要なfunctions-framework-apiへの依存性と
ローカルで動かすために必要なプラグインの記述をします。

“`xml:pom.xml VSCode Remote Containers を利用して最強のローカル開発環境を作りたい

# はじめに
VSCodeの神拡張機能であるRemote Containersの自分なりの設定の紹介です
[公式サンプル](https://github.com/Microsoft/vscode-dev-containers)は公開されていますが、そのままだと流石に使いずいので自分なりに使いやすいように編集した設定を紹介します
なお、本記事で紹介する設定ファイルは全て以下のリポジトリで公開しています(紹介していない環境のものも入っています)
https://github.com/sabure500/remote-container-sample

また、Remote Containersを使ってみて良いなと思ったので色々使いやすいように設定を弄っていますが、本記事は最強のローカル環境を「作りたい」なので、ここをこうした方が良いといった案があったら是非教えてくれると嬉しいです

# VSCode Remote Containers とは
VSCodeの拡張機能であり、使用することでコンテナの中でVSCodeを開いて作業を行うことができるようになる
コンテナの中で直接VSCodeを開いて作

元記事を表示

Java Gold対策:フォーマット

# はじめに

本稿は、Java Goldの学習のまとめとしてフォーマットについてまとめる。

### フォーマットとは

Javaで扱うデータを表示箇所に応じて、
書式を変更したい場合に書式化するためのもの。

数値や、日付などでそれぞれフォーマットする
方法が異なるため、以下にそのフォーマットの
方法をまとめる。

## 数値のフォーマットで使用する主なクラス一覧

`java.text.NumberFormat`
`java.text.DecimalFormat`

### ■ java.text.NumberFormat

NumberFormatはnewすることが出来ないため、
staticメソッドによってオブジェクトを取得する。

NumberFormatの主なメソッドは以下

| メソッド | 内容 |
|:-:|:-:|
| static final NumberFormat getInstance() | デフォルトロケールに対応した数値formatオブジェクトを返却 |
| static final NumberFormat getInstance(Locale l

元記事を表示

【JavaServlet】千里の道も一歩から 五歩目

#進行状況
– jsp⇔サーブレット間のパラメータの受け渡し
– クッキー/セッション管理

##今回やること
– EL式
– JSTLタグ

#EL式使いましょう
EL式(Expression Language)とは、ざっくり言うとjsp側でリクエストパラメータの受け渡しを簡潔に記述できる方法です。
`${パラメータ名}`と書くだけです。(オブジェクトの場合は`${パラメータ名.プロパティ名}`)

jsp側で`name`という名前のパラメータを受け取って表示させる場合、

“`jsp:mypage.jsp(今まで)
<% String username=request.getAttribute("name").toString(); %>
<%=username%>さん、ようこそ
“`

と二段階のプロセスを踏んでいましたが、EL式を使うと

“`jsp:mypage.jsp
${name}さん、ようこそ
“`
と書くだけで良くなります。
記述量が減って見やすくなるのもそうですが、`javaのロジックを書く必要がなくなる`ことが最大のメリットです。
EL「式」と付いてい

元記事を表示

【実践‼】Spring Boot で Hello World を表示する

## 1.事前知識
– [【初心者でもできる‼】Windows10にEclipseをインストールする方法(Java環境構築)](https://qiita.com/ryome/items/b47c5acdaa52cffbec58)

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

## 2.事前準備

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449867/594d8a72-235d-b356-a3b2-dbfbfd0159c9.png)
1. Eclipseを起動する。
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449867/45df6d6a-46e0-f2bf-1f4c-017db75f9727.png)
2. `[ウィンドウ(W)]→[パースペクティブを開く]→[その他]` を選択する。
![03.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

Java Gold対策:ローカライズ

# はじめに

本稿は、Java Goldの学習のまとめとして以下項目についてまとめる。
(同じくJava Goldを学習中やローカライズについて知りたい方の参考になればと。)

* ロケール
* リソースバンドル

## ロケールとは

`java.util.Locale`

言語や国ごとに異なるものの表記規則を示す。
# 例:単位・記号・日付・通貨など

アプリケーションを使用した国毎に、表示を変えたい場合などにロケールを利用する。
(アプリを使用する国によって文字を日本語・英語と分けたり等)

インスタンス生成方法は主に以下3種類ある。

* new
* Localクラスの定数
* getDefault()メソッド

### ■ 主なコンストラクタ・メソッド

| コンストラクタ | 内容 |
|:-:|:-:|
| Local(String language, String country) | 引数の言語/国コードからオブジェクトを生成 |

“`java
// newによるインスタンス生成
// ja・en:言語名コード | JP・US:国名コード
Locale

元記事を表示

OTHERカテゴリの最新記事