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

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

[paiza]スキルチェック見本問題 掛け算/足し算(paizaランク D 相当)

初めに

ここまでのJavaの学習でpaizaラーニングにある
スキルチェック見本問題の掛け算、足し算が解けるようになりました。

掛け算 (paizaランク D 相当)

見本問題なので問題の公開、コードの公開は問題ないそうです。

https://paiza.jp/works/mondai/skillcheck_sample/multiplication

解答コード

“`java:
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int num2 = sc.nextInt();
System.out.println(num1*num2);
}
}
“`

足し算 (paizaランク D 相当)

https:

元記事を表示

[Java基礎⑤] forで繰り返し処理

初めに

今回はforでのループ処理の基本と、
標準入力からデータを読み込む方法を学びました。

最後に標準入力とループ処理を行います。

forでのループ処理の基本形

“`java:
public class Main {
public static void main(String[] args) {
for(int i = 0; i<=4; i++){ System.out.println("hello world"); } } } ``` 実行すると hello worldが4回出力されます。

HTMLを作成する

“`java:
public class Main {
public static void main(String[] args) {
System.out.println(“

    “);
    for(int i = 1; i <= 100; i++) { System.

元記事を表示

java 標準入力 (記録)

##N行のデータの入力

“`java
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[]input_line = new String[sc.nextInt()];
sc.nextLine();
for(int i=0;i

###3つのデータの入力

“`java
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
S

元記事を表示

JDKをインストールして実行環境を作る(前編)

< 目次 >
◆(導入)統合開発環境 Eclipse について
・Eclipseとは
・ビルド機能
・プラグイン機能

◆Open JDK 11のインストールと設定
・インストール
・環境変数とは
・環境変数PATH
・環境変数JAVA_HOME

##◆ (導入)統合開発環境 Eclipse について
・Eclipseとは
EclipseはIBMがJavaで開発したオープンソースの統合開発環境です。
統合開発環境(IDE)とはテキストエディタやコンパイラ、デバッガが1つにまとめられたアプリケーション開発用のソフトウェアです。
もともとシステム開発はテキストエディタでソースコードを書き、コマンドライン上でコンパイルし、リンカでリンク(後述します)し、デバッガでバグ取りをするというように、行う処理によってツールが分かれていました。
そのような中でプロジェクト管理や開発効率などの観点から、これらのソフトウェアとその他の支援ツールをまとめて統合開発環境として生まれ、利用されるようになりました。

####・ビルド機能
ちなみにEclipseではコンパイルという名前の機能がなく、「ビルド」

元記事を表示

Java Silver 2章 変数と配列

#リテラル
“`java
// リテラル:ソースコードに書き込んだ値、その表記方法
public class Main {
public static void main(String[] args) {
System.out.println(255); // 10進数(整数値):普通に表記
System.out.println(0b11111111); // 2進数:先頭 0b
System.out.println(0377); // 8進数 :先頭0
System.out.println(0xff); // 16進数:先頭0x
System.out.println(12.33); // 10進数(小数):普通に表記
System.out.println(3e4); // 指数:3.0 × 10の4乗
System.out.println(‘A’); // 1文字:1文字だと”
Syste

元記事を表示

Java 『equals』と『 == 』 の違いについて

IF文で条件分岐を行うときに
『equals』と『 == 』を知らずに、『 == 』を使用すると
かなりの確率で不具合(バグ)が発生します。

例えば、下記の処理を実行すると
コンソールには、何が出力されるかわかりますか?

# プログラム
“`java
public class Test {

public static void main(String[] args) {

String test1 = new String(“100”);
String test2 = new String(“100”);

if (test1 == test2) {
System.out.println(“同じです”);
} else {
System.out.println(“違います”);
}

if (test1.equals(test2)) {
System.out.println(“同じです”);
} else {
System.out.println(“違います”);

元記事を表示

関数型インタフェースとラムダ式

## 関数型インタフェースとは
実装が必要な抽象メソッドを1つだけ持つインタフェースのこと。

“`java:Logic.java
interface Logic {
void run(String name); // ← 抽象メソッドを一つだけもつ。
}
“`

## ラムダ式
関数型インタフェースの実現を、簡潔なコードで行うための記述方法。
ラムダ式を使用すれば、新たにクラスを宣言せずにインタフェースを実現できる。
※ ラムダ式以外にも、匿名クラスを使用する方法もある。

ラムダ式を使用する場合と使用しない場合のコードで比較してみます。
☟のような、Logicインタフェースを使用するServiceクラスを定義します。

“`java:Service.java
class Service {
private Logic logic;

public Service(Logic logic) {
this.logic = logic;
}

public void do(String name) {
this.logic.run(name);

元記事を表示

【Java】ArrayListまとめ

## ArrayListとは
複数の値を管理するための可変長配列。通常の配列は、あらかじめ要素数を決めておく必要があるのに対し、ArrayListは要素の追加・削除が自由にできるため、不特定量のデータを扱うことができます。

## 利用方法
#### ArrayListクラスのインポート

“`java:Java
import java.util.ArrayList;
“`

#### インスタンス化

“`java:Java
ArrayList<型> インスタンス変数名 = new ArrayList<型>(初期サイズ値);
“`
初期サイズ値は省略可能です。
型にはクラス名を指定しますが、リストの要素は参照型である必要があるため、基本型を扱うリストを作成したい場合は、ラッパークラスを用いて定義します。

“`java:例
ArrayList intList = new ArrayList():
“`

## ArrayListクラスのメソッド

#### addメソッド
リストの最後に1つデータを追加

“`java:Java
イン

元記事を表示

【CLI不要】VSCodeでJava+SpringBoot環境を作る(Windows・Mac共通)

# はじめに
Javaは環境構築が大変という記事をよく見かけますが、今回はそれを払拭するために最短で構築する手順をまとめてみました。Javaだけではなく、SpringBootの構築も同時に行います。

# ゴール

VSCodeでJava11 + SpringBootの環境を構築すること。

# 環境(2021/09/05時点)

– [Mac版] macOS Big Sur 11.5.2
– [Windows版] Windows10
– JDKは未インストール
– VSCodeインストール済

# VSCodeのセットアップ

## プラグインインストール
以下のプラグインをインストールする。

– Extension Pack for Java
– Spring Boot Extension Pack

## JDKインストール

メニューバーの「View」→「Command Palette」を選択する。
表示されたコマンドパレット上で「Configure Java Runtime」を選択する。

![スクリーンショット 2021-09-05 9.44.46.png](https:

元記事を表示

Java Silver 1章 Javaの基礎

#コンパイルと実行

“`java
// ソースに複数のクラスがあれば複数のクラスファイルが作製される
class Foo {}

// JavaではPublicクラスはファイルと同名
public class Main{
public static void main(String[] args){
System.out.println(“Hi!!”);
}
}

// ソースファイル→クラスファイル(コンパイル)→実行(JVM:Java Virtual Machine上で実行)
// この学習ではWindowsOSにあるJVM.ver11を VScode Editerで参照してターミナル(PowerShell)で実行している。
“`
インタプリタ言語のPHP、JSと違いソースファイルをコンパイラして各クラスファイルを作製
実行環境の差をJVM(Java Virtual Machine)が埋めてくれる。

##1億回ループさせた時の実行時間の差
“`java
public class Loop {
public static void main(Stri

元記事を表示

SpringBootのWebアプリケーションをHTTPS化する

# はじめに

[IntelliJでJava SpringBootのWebページを作成](https://qiita.com/ykdevs/items/788ceeb0972c48bd1e74)で作成したWebアプリケーションをHTTPS化していきます。

# 手順

## 鍵ファイルの作成

以下のコマンドを実行して、local.keystoreという鍵ファイルを作成します。

“`bash
$ keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore local.keystore -validity 3650
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
姓名は何ですか。
[Unknown]: localhost
組織単位名は何ですか。
[Unknown]:
組織名は何ですか。
[Unknown]: ykdevs
都市名または地域名は何ですか。
[Unknown]: Yokohama
都道府県名または州名

元記事を表示

IntelliJでJava SpringBootのWebページを作成

# はじめに

[IntelliJでJava SpringBootのプロジェクトを作成](https://qiita.com/ykdevs/items/77e3903ec0bb2aec8845)で作成したアプリケーションにTymeleafを使ってWebページの作成を行います。

# 手順

## build.gradleの編集

spring-boot-starter-thymeleafを追加します。

“`gradle:build.gradle
dependencies {
// SpringBoot
implementation “org.springframework.boot:spring-boot-starter-web”
testImplementation “org.springframework.boot:spring-boot-starter-test”
implementation “org.springframework.boot:spring-boot-starter-thymeleaf”
“`

## Controllerを

元記事を表示

Java Silver SE11 学習記録

Javasilverの学習記録を付けます。
![スクリーンショット 2021-09-04 230143.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601137/d04d75a1-df00-259d-1d76-049bd39cbe2c.gif)

記述方法が細かくルールも多いため他の言語に比べ難しいと聞きます。
オブジェクト指向を学ぶ上で有用と思い受験することにしました。
【学習環境】
OS:Windows, エディター:VScode, JDK-11

元記事を表示

【備忘録】JavaのOptionalについて

#はじめに
Optionalについて自分なりの理解を備忘録として執筆します。

#Optionalとは
値をラップしてその値がnullである可能性を表現するクラス。
NullPointerExceptionを防ぐことができる。

#Optionalを使う理由
nullである可能性のあるメソッドを呼ぶ場合、事前にnullかどうかのチェックを実装する必要がある。
しかし、実装を忘れてしまう可能性がある。
実装を忘れることを防止するためにOptionalが利用される。

#ソースコードで確認
ofNullableメソッドを利用して、Optionalが型のオブジェクトを作成する。
If文の中でisPresent関数を利用して、値が存在しているときのみlengthメソッドを実行している。
この時、変数strの中身はnullであるため実行してもコンソール上にはなにも表示されない。

“`java:java
String str=null;
OptionalstrOpt=Optional.ofNullable(str);

if(strOpt.isPresent())

元記事を表示

2年目の目標

## 趣旨
エンジニアにジョブチェンジして1年と3か月が経過しました。
今勤めている会社が9月末決算で、10月から年度が変わるので、
このタイミングでエンジニア2年目の目標とやることを整理しようと思います。

## 2年目の方針

設計・開発・テスト・調査・改修と、一通りの業務にこの一年間で携わることができ、
なんとなくエンジニアの業務の全体像のようなものがつかめてきたと感じています。

スキル面では、JAVA、SQL(postgresql)、JavaScriptを用いたプログラミングが主な業務でしたので、
『こう書けば動く』という基礎的な部分は定着してきましたが、標準搭載のAPIを使用して
独自モジュールを極力増やさないプログラミングや、オブジェクト指向・アスペクト指向を実践するなど、
保守性・品質を高めるための取り組みがおざなりだったなと感じます。

また、フレームワークやミドルウェア、OSなどについては
ほとんど触れる機会がなくほとんどからっきしの状態です。

この一年は、
『業務で必要なことを調べる』⇒『それらしい解決策を見つける』⇒『必要なところだけ理解して応用する』
という

元記事を表示

無限の猿定理をWebアプリ化した

#はじめに

皆さんは『無限の猿定理』というものをご存知だろうか。
>無限の猿定理(むげんのさるていり、英語: infinite monkey theorem)とは、十分長い時間をかけてランダムに文字列を作り続ければ、どんな文字列もほとんど確実にできあがるという定理である。比喩的に「猿がタイプライターの鍵盤をいつまでもランダムに叩きつづければ、ウィリアム・シェイクスピアの作品を打ち出す」などと表現されるため、この名がある。

[Wikipedia](https://ja.wikipedia.org/wiki/%E7%84%A1%E9%99%90%E3%81%AE%E7%8C%BF%E5%AE%9A%E7%90%86)より

要するに”無限”というものの凄さの例えである。
この定理に着想を得て、以前「[頭文字を打つだけで文章ができていくアプリケーション](https://qiita.com/ck_qiita/items/76fc79e0323a7485a966)」というものを作成した。
このプログラムはコンソール上だけでの動作だったので,Webアプリに移植して,公開することにした。
UR

元記事を表示

Spring Boot + Thymeleaf+JPA+PostgreSQLでCRUDサンプルの改良・開発(Spring Boot ver 2.2以降)

記事を作成するにあたり@ozaki25さんの以下のサンプルを参考にさせていただきました。
【参考記事のタイトル】
SpringBoot + JPA + Thymeleafで簡単なCRUDを作る②~画面と機能作成まで~
URL:https://qiita.com/ozaki25/items/3b348874b6db5ab4f04f

#開発環境
Windows10
Eclipse
PostgreSQL

#各種フレームワーク
Spring Boot バージョン:2.5.0
Bootstrap バージョン:5.1.0

#Spring Boot ver2.2以降での開発の際に変更になった点
HttpHiddenMethodFilterがデフォルトで無効化(disabled)されました。
それによってHttpメソッドの中のPutメソッド(リソースの更新、作成を担う処理)とDeleteメソッド(リソースの削除を担う処理)の設定がデフォルトの状態のままでは実行できません。
なので、設定ファイル(application.propertiesまたはapplication.yml)の中でHttpHid

元記事を表示

Springで作成したアプリをAWSとRDSとElastic Beanstalkを用いてデプロイする方法②

#はじめに
この記事は「Springで作成したアプリをAWSとRDSとElastic Beanstalkを用いてデプロイする方法①」
の続きです。
前回までは、RDSからDBを作成しました。
今回はMySQLの設定とElasticBeanstalkの設定について執筆していきます。

#MySQLの設定
MySQLの設定は下記のような作業を行います。

##事前にRDSのDBのエンドポイントをコピーしておく。
理由は後程、MySQLに接続する際に利用するためです。
![スクリーンショット 2021-09-03 16.20.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1912583/ea49cea1-1d5f-224c-5b7b-1cef5b5dae2e.png)

##MySQLWorkbenchのインストール
公式サイトのダウンロードページよりインストールする。(2021年9月3日現在の最新バージョンは8.0.26)

https://dev.mysql.com/downloads/work

元記事を表示

LocalDateTimeの相互変換 決定版

#はじめに
タイムゾーンがある場合に迷ったりしたので、LocalDateTimeを使用した日付の処理についてまとめました。

#目次
[1. now()で日時を取得する](#1-nowで日時を取得する)
[2. format(LocalDateTimeから文字列への変換)](#2-formatlocaldatetimeから文字列への変換)
[3. parse(文字列からLocalDateTimeに変換)](#3-parse文字列からlocaldatetimeに変換)
[4. LocalDateTime同士の比較について](#4-localdatetime同士の比較について)
[5. UNIX時間(エポック秒)の変換](#5-unix時間エポック秒の変換)
[6. Use case](#6-use-case)

##公式ドキュメント
[ZonedDateTime (Java Platform SE 8 )](https://docs.oracle.com/javase/jp/8/docs/api/java/time/ZonedDateTime.html)
[DateTimeFormatt

元記事を表示

Springで作成したアプリをAWSとRDSとElastic Beanstalkを用いてデプロイする方法①

#はじめに
デプロイ経験がない筆者でもSpringで作成したアプリケーションをAWSのElasticBeanstalkとRDSを用いて無事にデプロイすることができましため、共有及び備忘録として執筆します。
①では、RDSでのDB作成を執筆します。
②では、MySQLの設定とElasticBeanstalkの設定について執筆します。

#作成期間と作業
作成期間は約3週間ほどです。

作成するにあたって行った作業は下記の通りです。

①Udemyの「AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得」を受講してEC2やRDSについての知識をつける。
②デプロイ方法について日本語サイトを見てもうまくいかなかったため、Udemyの「Deploy Java Spring Apps Online to Amazon Cloud (AWS)」を受講してデプロイ方法について学ぶ。
※こちらの講座は英語字幕付きのため、聞き取れなくてもなんとか理解できます。
③Springの公式ドキュメントも参考にしながら、実際に自分が作成したアプリケーションをデプロイ

元記事を表示

OTHERカテゴリの最新記事