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

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

10年前はGoFのデザインパターン本を読んで何やらわかった気になっていました

https://qiita.com/official-events/1e99fc384200c38548fd

10年前は中学生だった!とか、いま中学生だから10年後は!という話を読み、触発されつつ書いています(いや皆様すごいお話ばかりです)。10年前。変わらず今の会社の会社員でした。震災のあった年というのは多かれ少なかれ記憶に残った年ですが、私はその頃ようやく中堅からリーダーを担えるようになって日々の成分としてはほぼお仕事漬けの日々でした。

## 10年前に読んでいた本

振り返ると入社以来ほぼ同じドメイン「人事・給与」の開発に携わっているのでそこは今と大して変わらないのですが、その頃読みまくった本というのがGoFのデザインパターン本からのおよそ結城先生漬け。

[オブジェクト指向における再利用のためのデザインパターン | ガンマ,エリック, ジョンソン,ラルフ, ヘルム,リチャード, ブリシディース,ジョン, Gamma,Erich, Johnson,Ralph, Helm,Richard, Vlissides,John, 真一, 本位田, 和樹, 吉田 |本 | 通販 | Am

元記事を表示

Java電卓(iphone風)

![スクリーンショット 2021-07-21 22.34.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698282/255966ad-0914-3b86-edf6-b2c7ecb8a324.png)

“`java
package myProgram;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.DecimalFormat;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.s

元記事を表示

Java再入門 ~Java11 日付時刻API

# 過ぎ去りし日々

これまで日付時刻を扱う場合は、以下を利用していました。

* java.util.Date 値を保持する
* java.util.Calendar 値を保持する&日付の演算をする
* java.text.SimpleDateFormat 日付を指定した書式に整形する。指定した書式の日付からjava.util.Dateを作る
* java.util.TimeZone タイムゾーンを指定する

# 現代

私は全然、日付時刻を真面目に考えたことがなかったので、今回改めて以下の記事を読んで奥深さを学ばせていただきました…

* [タイムゾーン呪いの書 \(知識編\)](https://zenn.dev/dmikurube/articles/curse-of-timezones-common-ja)
* [タイムゾーン呪いの書 \(実装編\)](https://zenn.dev/dmikurube/articles/curse-of-timezones-impl-ja)
* [タイムゾーン呪いの書 \(Java 編\)](https://zenn.dev/dmikurub

元記事を表示

基本情報技術者試験合格までの道のり〜 ご挨拶と勉強の仕方を話す

はじめまして。
基本情報技術者試験合格に向けて、日々のアウトプット日記を始めてみました。
同じく試験合格を目指してる方、共に頑張っていけたらなと思います。

今回受ける試験自体は11月の下旬(午前も午後も)。
今回は初めての受験ということで、目標はとりあえず**午前試験合格**です。

現在2021年の9月23日なので、試験まで約2ヶ月という短さですが頑張ります。

将来、この記事(シリーズ)を読んで試験合格を目指す方が現れたときに僕がどのようにして
勉強していったのかを知れる手がかりになれば幸いです。

##基本情報技術者試験とは
まずは試験について。

「基本情報技術者試験」とは、経済産業大臣が行う国家試験である**「情報処理技術者試験」の区分の1つ**。
“IT業界の登竜門”とよく言われる、立派な**国家資格**です。

IT業界に携わりたい人がまず取得すべき資格です。
##取り組み方 知識問題
僕が実践しているのが、**「問題を読んだらすぐ答えを見る」**という勉強法です。

試験勉強の目的って、試験に合格することですよね。

問題を見て、悩んで、悩んで、悩んでもわからない。

元記事を表示

Java PowerPointをHTML形式に変換

Java 8 (OpenJDK: Eclipse Temurin) を Homebrew で macOS にインストールする

## 概要

– AdoptOpenJDK の後継である Eclipse Temurin を Homebrew で macOS にインストールする。

[Good\-bye AdoptOpenJDK\. Hello Adoptium\! \| AdoptOpenJDK Blog](https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/)

> The move from AdoptOpenJDK to Eclipse Adoptium is now complete. The same great community that brought you high quality Java binaries for the last four years at AdoptOpenJDK is now fully productive at Adoptium.

[Adoptium Celebrates First Release \| Adoptium Blog](https://blog.ado

spring bootのプロパティファイルの設定値をawsのparameter storeから取得する

## 概要
spring bootのプロパティファイルの設定値の一部をawsのparameter storeに移管する

## 環境
・spring boot(2.4.9)
・Java 8

## ライブラリの追加

##### 使用するライブラリ
– [spring-cloud-starter-bootstrap](https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bootstrap) (spring 2.4以降の場合のみ)
– [spring-cloud-starter-aws-parameter-store-config](https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-aws-parameter-store-config) (spring boot 2.5系は未対応)

##### build.gradleの修正
dependenciesに下記を追加

【Java】StringBuilderのメソッドもともとの文字列が変わらないときもあるのね

#初めに
Stringはイミュータブルで、
StringBuilderはそうじゃないと覚えていたらハマってしまいました。
自分に刻むためのメモです。
(JavaSilverで出るかもしれないし、出ないかもしれない)

##append()
“`java:append()
public class StringBuilderTest {
public static void main(String[] args) {
// 生成
StringBuilder sb = new StringBuilder(“ABC”);
// メソッド実行
System.out.println(sb.append(“DEF”));
// 変わったか
System.out.println(sb);
}
“`
“`java:結果
ABCDEF
ABCDEF
“`
変わる
メモ:append()の引数はboolean、数字なども入れられる(らしい)

##delete()
“`java:delete()
public class StringBu

【Java】繰り返し処理でつまづきそうだったから復習する

#目的

* Javaで学習したことを振り返って理解できるようにする

###1.繰り返し処理

* while文、for文、break文、continue文の4つ
* ここはRubyと差ほど変わらない(?)
* 以下、スクールのカリキュラムの問題を噛み砕いていく

####1. while文

* 1以上5未満の数の2乗を出力

““java
public class practice1 {
public static void main(String[] args) {
// 変数numberを定義する
int number = 1;
// 「1以上5未満」なので5より小さくなるように数字を条件式に入れる
while (number < 4){ // 「二乗」を表すために変数同士をかける ex 2の二乗= 2*2 System.out.println(number * number); // numberが1つずつインクリメント(増加)し、3乗、4乗と増えていく

[Kotlin] 「偽コンストラクタ」の作り方 その1

[Android Dagashi #189](https://androiddagashi.github.io/issue/189-2021-09-12/)で紹介されていた “[Underused Kotlin features](https://mobileit7.medium.com/underused-kotlin-features-2d17eb36bfe7)” (使われなさすぎなKotlinの機能)という記事に書かれていた “Pseudoconstructors” がなかなか面白かったので、筆者なりの視点で記事にしてみました。

本稿を書いていて感じたのが、これはKotlinからプログラミングを始めた人にとっては特に目につくテクニックではないのかもしれない、ということ。現状はJavaからKotlinに移った人がまだまだ主流でしょう(特にAndroidプログラマー)から、そういう方々に、こんなコーディングのやり方もあるんだ、と思っていただくことを念頭に置いています。

「偽コンストラクタ」、すなわちコンストラクタに見える別物です。そんなめんどくさそうな「使われなさすぎ」機能を使う

(JAVA勉強用メモ)9. API

## java.lang.Math
“`java
System.out.println(Math.pow(4, 2)); // 16.0(累乗)
System.out.println(Math.sqrt(3)); // 1.7320508075688772(平方根)
“`

## java.util.Comparator, java.lang.Comparable
– 並べ替え対象のクラスがjava.lang.Comparable.compareTo()を実装する。
– java.util.Comparator.compareを実装するクラスを定義する。
– 第一引数を前にするときは`-1`を、第二引数を前にするときは`1`を、変えないときは0を返す。

## java.time.LocalDate
– immutableなオブジェクト
– 『月』が0からではなく1から始まる
– 日付操作の便利なメソッドが追加された

## ジェネリクス
– AtrrayListで扱う型を制限するための機能
– 型推論が使用できる

“`java
List a

OpenJDKって何だっけ?OracleJDKとの違いは?無料?有償?

OpenJDK、OracleJDKの違いについてまとめてみました。
※ここは違うよ!みたいのあれば是非コメント下さい。

## OpenJDK

狭義のOpenJDKは、**バイナリ(JDKの開発者ではなく、利用者であればバイナリを利用するのが通常)を提供していません。**
あくまで、プログラムソースを実装しているOSSのプロジェクトです。
URLは以下。
http://openjdk.java.net/
プログラムソースは以下で管理されている。
https://github.com/openjdk/jdk

じゃあ誰がバイナリを提供をしているのかというと、以下の会社さん等です。
・oracle(oracle open jdk、oracle jdk)
・red hat(red hat open jdk)
・amazon(amazon corretto)
・Microsoft (microsoft open jdk)

で、oracleさんに関しては色々な情報が錯綜している状態かと思いますので、
情報をまとめていきます。

## Orac

動画で学ぶJHipster (7) 閲覧権限を修正

# 参考動画

# お互いの投稿が見えてしまうことを修正。

admin はadminの投稿だけ、userはuserの投稿だけ見えてほしいが、現状では、お互いが、お互いの投稿が見えてしまう状態である。それを修正する。

* Adminでログインした場合 (修正前)
![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1284134/0941caa1-f480-6512-796d-63486e447c61.png)
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1284134/23fb1874-3e85-a9a5-28d6-63ac8d5b3e9a.png)
* Userでログインした場合 (修正前)
![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.

【intra-mart】JavaのクラスファイルなどがImportできなくなった時の対処法

#はじめに
本日は、intra-martでJavaのクラスファイルなどがImportできなくなった時の対処法を記載します。
JavaEE開発を行っている際に自分も同じ状況になりました。備忘のために記事としています。

【前提条件】
・intra-mart e Builder for Accel Platform をインストール済みであること。
・intra-mart Accel Platform をインストールし、初期設定までが完了していること。
・開発環境のresinサーバーが作成されていること。
・e-Builder上にプロジェクトが作成できていて、開発を始めていること。

※プロジェクトの作成方法に関しては以下を参照してください。

https://document.intra-mart.jp/library/iap/public/setup/iap_setup_guide/texts/create_war/create_project.html

#状況確認
JavaのクラスファイルなどがImportできなくなった時とは以下のような状況のことを言います。
![image.png

abscract classを使ったプログラム

abctract classを使った糸魚川市のプログラムです。

“`Java
package itoigawa;
import java.util.Scanner;

abstract class ItoigawaCity{
void ItoigawaCity() {}
}

class ItoigawaRikyu extends ItoigawaCity {
private String city = “糸魚川市”;
void ItoigawaCity() {
System.out.println(city);
}
void ItoigawaRikyu() {
String shop_name=”糸魚川利休”;
System.out.println(shop_name);
}
void SetItoigawa(String s) {
if (s.equals(city)== true) {
this.city = s;
} else {
this.city = city;
}

}
String GetItoigawa(

Windows10にEclipseを入れてJavaアプレットを動かすまで

Windows10[^win10](64ビット版)が入っているパソコンに日本語化されたEclipse[^eclipse]をインストールしてJavaアプレット[^applet]を動かします。

## 1. 要点

– Java開発キット(Java Development Kit;JDK)と日本語化された統合開発環境[Eclipse](https://www.eclipse.org/)(自動初期設定機能付き)を1つにまとめたものが「[Pleiades All in One Eclipse](https://mergedoc.osdn.jp/)」という名前で配布されています。

– Pleiades All in One Eclipseは圧縮ファイル(ZIP)で配布されていますが、Windows 10標準のファイル解凍機能は[長いパス名](https://docs.microsoft.com/ja-jp/windows/win32/fileio/maximum-file-path-limita

【9/21(火)】仕事で学んだこと

はじめに

 9/21(火)に学んだことを次にまとめる。

学んだこと

・エクリプスでのクラス検索

 「Ctrl + Shift + R」で検索窓を表示し、任意の検索ワードを入力して検索する。

・テストクラス

 記述したプログラムの動作について証明(試験、実験)を行うクラスのこと

・DDL (Data Definition Language)ファイル

 データベースを定義するために用いられる言語(SQL)が記述されたファイルのこと

・Eclipseのエラーコード 4499

 アプリケーション・サーバーが接続の確立を拒否したことを意味する。
 今回の場合、DBがローカルで起動していないことが考えられたので、下記手順を実施した。
 1、「コントロールパネル→管理ツール→サービス→【使用しているDBのサービス・プログラム】」を選択。
 2、「スタートアップの種類」を「自動」、「サー

【PHP初心者】クラス変数とメンバ変数について

## はじめに
PHPを勉強しているときに「メンバ変数」という表記を目にしました。
過去に少しJavaを勉強していた時があり、「プロパティ」「フィールド」というワードはよく目にしていたのですが、「メンバ変数」はあまり馴染みがなかったのでちょっと調べてみました。

メンバ変数とよく対比される「クラス変数」についても併せて見ていきたいと思います。
( 補足:Javaでも「メンバ変数」ってワードはあるようです。私がたまたま出会わなかっただけみたいです。笑)

## メンバ変数
調べて見たところ、__「インスタンス変数 = メンバ変数 = プロパティ」__と説明されているページが多く見つかりました。
>__参考:__
[【PHP】インスタンス変数(メンバ変数)](https://algorithm.joho.info/programming/php/instance-variable-php/)
[クラスから理解するPHPのオブジェクト指向](https://rightcode.co.jp/blog/become-engineer/php-object-orientation)
[【PHP入門

VSCodeでSpringBootを開発する

# VSCodeでSpringBootを開発する
## VSCodeの環境構築
### 拡張機能をインストール
「Spring Boot Extension Pack」という拡張機能をインストールする。

### JDK11以上をインストール
VSCodeでJavaを開発するために必要な「Language Support for Java(TM) by Red Hat」が、
JDK11以上でないと実行することができない。
そのため、JDK11以上のインストールが必要になる。

### setting.jsonの設定
|項目|説明|
|:—|:—|
|java.home|JDK11以上の格納ディレクトリを指定|
|java.configuration.runtimes|プロジェクトで使用するJavaの実行環境を設定|

“`
“java.home”: “c:\\jdk-14”,
“java.configuration.runtimes”: [
{
“default”: true,
“name”: “JavaSE-1.8”,
“path”: “C:\\

Java Silver 6章 クラスの継承とポリモフィズム

#継承
既存のクラスをもとに新しいクラスを定義する
継承元のクラスをスーパークラス、新たに定義されたクラスをサブクラスと呼ぶ
![スキャン 2021-09-17 12.38 ページ 2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601137/000f88b7-4382-9827-c3a1-2bfb0ea32a27.jpeg)
継承の役割:差分プログラミング
複数のクラスに共通する処理をスーパークラスに定義し、各クラスで実装したい機能をサブクラスで定義する。

スーパークラスから継承するもの
・変数(フィールド)
・メソッド

継承しないもの
・コンストラクタ
・privateな変数(フィールド)、メソッド

#抽象クラス
クラスを作成する際、その骨組みにあたるクラスを抽象クラス(abstractクラス)と呼ぶ
抽象クラスには処理内容を記述しない抽象メソッド(abstractメソッド)を作成可能
また普通のメソッドと抽象メソッドを混在して使用可能である

【アクセス修飾子】abstract cla