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

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

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

## 概要

– Java 17 (Eclipse Temurin 17) を Homebrew で macOS にインストールする。

## 今回の環境

– macOS Big Sur 11.6

## インストール

インストール方法は Eclipse Temurin の前身である AdoptOpenJDK の公式資料が参考になる。

[GitHub \- AdoptOpenJDK/homebrew\-openjdk: AdoptOpenJDK HomeBrew Tap](https://github.com/AdoptOpenJDK/homebrew-openjdk)

“`
$ brew tap homebrew/cask-versions
$ brew install –cask temurin17
“`

## java_home コマンドでインストールされたディレクトリの場所を確認

“`
$ /usr/libexec/java_home -v 17
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Content

元記事を表示

「マイクロサービスパターン」の復習 2章 サービス分割

## 概要

Java読書会でせっかく勉強したのにつぎつぎと忘れていくので、印象に残ったところを記録していく

http://www.javareading.com/bof/

## 2章 サービスへの分割

– アーキテクチャとはなにか?
– どうやってサービスに分割するか?

## アーキテクチャとは?

– アーキテクチャとは、ソフトウェア要素とその関係性
– 4 + 1ビューモデル
– 論理ビュー:クラス構成、パッケージ構成とそれらの依存関係
– 実装ビュー:jarやwarの配置と、それらの依存関係
– プロセスビュー:プロセスとプロセス間通信
– デプロイビュー:マシンとネットワーク
– アーキテクチャが重要なのは、品質属性に関わるから
– 特にマイクロサービスはメンテナンス性やデプロイ容易性に影響する
– アーキテクチャスタイル
– 建築様式
– 寺院を建てるのにもXXX様式が複数ある
– 論理ビューについてのアーキテクチャスタイル
– 階層アーキテクチャ
– お馴染みの3層アーキテクチャなど

元記事を表示

Eclipseの設定のメモ

# Eclipseの設定
### インストール済みのJRE
[ウインドウ] → [設定] → [Java] → [インストール済みのJRE]
JREではなくJDKを指定する

### メモリの状況の表示
[ウインドウ] → [設定] → [一般] → [ヒープ・ステイタスを表示]にチェック
私の環境(Pleiades2019)ではデフォルトでチェックがついていました。

画面の右下のメモリの表示にマウスカーソルを近づけると
起動時のメモリ量(Xms)と最大のメモリ量(Xmx)を確認できる。

元記事を表示

pypyはC言語並に早かった(素数編) cython-annotationの例有

Pythonが大好きなのですが、処理が遅くて頭を悩ませています。

どうにか早くならないかとpypyとcython(pure python mode)でやってみました。

…すみません、ソースコードはこちらの方のを使わせていただきました。
https://qiita.com/L_A_P_119611/items/40f6c71c136fbe3cf32a

## 環境
MacOS: catalina
CPU: i9
– それぞれ3回計測した結果を載せています。

## pythonの結果
python3.9での実行結果は下記通りでした。
(arrangeをnumpyのに変えたら早くなるのだろうか…)
python3 src_sosu1.py 123456789
123456789 = 3 * 3 * 3607 * 3803
所要時間は39.019531秒です
所要時間は34.007243秒です
所要時間は35.707815秒です

## javaの結果
java Factrization 123456789
123456789 = 3803 * 3607 * 3 * 3
所要

元記事を表示

Windows11のVSCodeでJAVAの環境構築してみた!

今日からJAVAの勉強を新しく初めていこうとおもったので、環境構築から備忘録程度に書いていこうと思います。
PC:Windows11
エディタ:VSCode
参考にさせていただいたサイト:
https://teramaguro.hatenablog.com/entry/2021/12/28/042743

①まず下記URLからJAVAの開発に必要なインストーラをインストールする。
↪その際に自分の開発環境に合うものを適宜選ぶ(今回はWindows11なのでWindowsを選択)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2619929/c58589dd-74a2-49cb-4195-dd33ff970fa2.png)
②今回は下記インストーラをインストールしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2619929/4e45b8e5-45f0-f5f1-3160-9773c

元記事を表示

APPRNDとPREPEND両方向の読み込みに対応したRemoteMediatorの実装

# APPRNDとPREPEND両方向の読み込みに対応したRemoteMediatorの実装

https://developer.android.com/codelabs/android-paging#4

おそらくRemoteMediatorを実装したことのある方なら共感していただけると思うのですが、
RemoteMediatorの設定で最も苦労する点は読み込み終了条件の設定方法です。
Android公式のPaging3チュートリアルでは、RemoteMediatorを使う際に読み込み終了条件の設定に

“`18. LoadType に基づいてページを取得する
val page = when (loadType) {
LoadType.APPEND -> {
val remoteKeys = getRemoteKeyForLastItem(state)
// If remoteKeys is null, that means the refresh result is not in the database yet.
//

元記事を表示

Java Silver 攻略その2

java Silver 試験対策 その2

java.lang 以外のパッケージを利用するとき
import文が必要

変数宣言でvarが使えるとき
ローカル変数の初期化、拡張for文、通常for文

a|b
aかbがtrueならtrueを返す 
a^b
aとbが異なるときtrueを返す

元記事を表示

【Python】Pythonの型名が覚えられなかったのでメモ

Java, Rubyの実務経験があり、Pythonも覚えてみたいと考えた今日このごろ。
型の種類と名前が全く一致しなかった戒め。

下記のフォーマットで自分用にメモ
###### 大枠のジャンル
“`
・Pythonでの呼び方
 ・Java, Ruby(他覚えやすかったキーワードなど)での呼び方

※あれば感想など
“`

###### 数値
“`
・int
 ・整数

・float
 ・小数点

※散々やってきたので大丈夫。小数点の計算 ^ Javaのときは「BigDicimal」を使わないとダメだぞ!と怒られた記憶がある
“`

###### 論理
“`
・bool(Yes / No)
 ・boolean
“`

###### 文字列
“`
・str
 ・String

※大した違いじゃないからまぁいいんだけど、こういう微妙な違いがあると困るよね。
“`

###### シーケンス
“`
・list
 ・ArrayList(Java)(後から追加できるからArrayListで覚える)

・tuple
 ・list(配列)(後から変更できないからlistで覚える)

元記事を表示

Spring Boot 2.5から出るようになったプレーンアーカイブの抑止

## 現象

Spring Bootを2.4.9から2.5.10へアップデートしてから、
CircleCIのARTIFACTSを見ると、`-plain.jar`や`-plain.war`が出力されるようになった。
特に利用しないので、出力されないようにしたい。

## 解決策

Gradleファイルの、Jar及びWarタスクそれぞれに、下記記述を追加する。

### JAR

“`build.gradle
jar {
enabled = true
archiveClassifier = ”
}
“`

### WAR

“`build.gradle
war {
enabled = true
archiveClassifier = ”
}
“`

## 参考

https://spring.pleiades.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/

https://zenn.dev/donchan922/articles/ea76614f72b15e

元記事を表示

ユニットテストのためのAdapter Pattern

使用するAPIが余りにも巨大でユニットテストし辛いとき、Adapter Patternを使えば解決できる場合がある。

## 問題のコード

“`java
public interface MoneyManager {

// 所持金を取得する
int balance(User user);

// お金を引き出す
void withdraw(User user, int amount);

// お金を預ける
void deposit(User user, int amount);

// 新規口座を開設する
BankAccount createBankAccount(User user);

// 口座を閉鎖する
void deleteBankAccount(BankAccount account);

// 口座情報を更新する
void updateBankAccount(BankAccount account, BankAccountUpdate update);

元記事を表示

Microsoft Tech Flash 3 月号 まとめ

みなさんごきげんよう。Microsoft App Innovation チームです。

Microsoft App Innovation チームでは、毎月 1 回、開発者 / IT 技術者のみなさんに最新技術情報をキュレーションした News Letter を配信しています。Qiita では、その内容をテキストメール形式でご紹介したいと思います。

まだ購読されていない方はぜひご登録ください!
[Microsoft Tech Flash 購読はこちらから](https://www.microsoft.com/ja-jp/mscorp/communications.aspx?Dev_QT=PET3035062)

# Microsoft Tech Flash 3 月号 – Java on Azure Day や Azure Stack HCI ウェビナー情報をはじめ、最新技術情報をお届けします。

## Top Topic

Azure 上で Java を活用するための最新技術情報を入手できる 1 日 Java on Azure Day 2022 開

元記事を表示

java silver 間違えやすい箇所

Java Silver 間違えやすい箇所まとめ

抽象メソッドについて 
void method(); と記述した場合
public abstract が自動で付与される

処理を記述したいとき
default method を定義する
public default 戻り値 メソッド名(引数リスト){};

null + concat “A”
コンパイルエラーになる
null + “A”
nullA と表示される

コンパイル時 省略記号
-m module モジュールの位置を表示
-p module-pass moduleの格納されている位置を表示する
-cp class pass クラスパスを指定する
-d directory ディレクトリを指定

配列宣言方法
int[] a = new int[0];
ok!
int[] b = new int [];
一次元目は省略できない
compile error!
int c[2]{2,3};
初期化演算子を用いるときは、要素数指定しない

int[] d ={};
要素なし ok

LocalDate.of(2018,

元記事を表示

多くのコンストラクタパラメータに直面したときには、ビルダーを検討する

# これは何?
Effective Java 第3版を読んで自分なりにかみ砕いた内容を記事に落としていきます。
良いコードを書くための選択肢の一つになれば最高なので、頑張ります。
※読み進める中で知識のアップデート等あれば都度更新いたします。

# 問題提起
[前の記事](https://qiita.com/arikei/items/bf5fdef55dce4cb34f7d)で紹介したstaticファクトリメソッドやコンストラクタは共通の課題がある。
__「多くの必須ではないパラメータ(オプションパラメータ)に上手く対応できない」__

この問題にうまく対応する方法が __Builderパターン__ である。

## 選択肢①(あまり良くない)
テレスコーピング・コンストラクタが使われたりするらしい。。。

~~~java
//テレスコーピング・コンストラクタ
public class Hoge {
private final int 必須パラメータ1
private final int 必須パラメータ2
private final int オプションパラメータ1
pr

元記事を表示

Apache Commonsを使うための準備 【Eclipse遍】

# 1.はじめに
Apache Commonsを知っている方は多いとは思いますが、実際に使ったことないな~とかどうやって使えばいいかわからん!という人に使い方を教えます。

# 2.ライブラリをダウンロードとセッティング
今回はAppache Commonsの中でも有名なAppache Common Langをダウンロードします。

まず、[Appache Commonsの公式サイト](https://commons.apache.org/)に行くと以下の画面にたどり着きます。
![s1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2615563/646a5a16-2e30-e012-7583-478700f937de.png)

次に、ずらーっと書かれた~~読む気も失せる~~英語をスクロールするとライブラリのリストが出てくるのでそこから使いたいものを選択します。(今回はCommons Langを選択します)
![スクリーンショット (7).png](https://qiita-image-stor

元記事を表示

auカブコム証券のkabuステーションREST APIで自前のトレイル注文を作ってみる(情報収集編)

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

<@comporessToSingleLine> FreeMarkerテンプレートの出力から改行とインデントを削って1行にするディレクティブ

[FreeMarker](https://freemarker.apache.org/) はJavaプログラムがHTMLやXMLなどのテキストを生成する処理を補助するテンプレートエンジンです。

## 解決したい問題

わたしはJavaプログラムを作りFreeMarkerでHTMLを生成しようとしました。次のようなテンプレートを作りました。

“`
<#macro sampleMarkup>
<#assign clazz="nochange">
<#list segments>

<#items as segment>
${segment}




“`

プログラムを実行すると下記のようなStringが出力されました。

“`

<

元記事を表示

Java 18 JEP 400 UTF-8 by Default の Windows 環境での影響

Java 18 の新機能として JEP 400 UTF-8 by Default が実装されました。Linux や Mac など、UTF-8 が標準の環境では影響はまずありませんが、Windowsのような UTF-8 が標準エンコーディングではない環境では対応が必要です。

# TL;DR
– Java 18 から、文字セット指定がない場合のソースコードを含むファイルの扱いが UTF-8 になる。
– Java 17 までの動作にするには Java 実行時にオプションとして `-Dfile.encoding=COMPAT` を指定する。
– javac は `-J-Dfile.encoding=COMPAT` と指定

# 検証環境
– Windows 10 Pro 21H2
– OpenJDK JDK18 GA
– OpenJDK JDK17.0.2

# JEP 400 UTF-8 by Default
JEP 400 UTF-8 by Default で、標準 Java API の標準の文字セット(Charset) が UTF-8 に変更されました。JEP 400 のリンクは

元記事を表示

【初投稿】マインクラフトのMODを0から作る

こんにちは。今回は、MinecraftのMODを作成します!^^
## 準備
まず、https://mcreator.net/download にアクセスします。
![スクリーンショット 2022-04-05 午前9.02.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2614301/1645ef35-cf45-aea5-0355-c2182bde65ad.png)
こういうところに飛んだら、「Download」ボタンを押します。
そうしたらDLが始まるので、DLできたら次の手順に進みます。
## 作成
みんな多分待ってたMOD作成の時間です。
![スクリーンショット 2022-04-05 午前9.05.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2614301/3c3391e4-b156-0714-3831-ec1f9dff6b3f.png)
開いたらこうなります。一応黄色で隠しましたw
で、New w

元記事を表示

「マイクロサービスパターン」の復習 3章 プロセス間通信

## 概要

Java読書会でせっかく勉強したのにつぎつぎと忘れていくので、印象に残ったところを記録していく

http://www.javareading.com/bof/

## 3章 マイクロサービスアーキテクチャで使われるプロセス間通信

– マイクロサービスアーキクテチャでは、複数のサービスを組み合わせて、全体として一つのサービスを形成するので、各サービス間の通信方法は必然的に重要な要素となる
– この章では大きく同期・非同期と分けながら色々な概念を紹介しているが、最重要なのは「3.3.7 トランザクショナルメッセージング」
– 以後の章では、トランザクショナルメッセージングがある前提で話が進められる

## 同期呼び出し

### Remote procedure invocationパターン

– 略してRPI。同期的なリモート呼び出しを指す
– https://microservices.io/patterns/communication-style/rpi.html
– 具体例としてはRESTやgRPCが挙げられている
– SOAP、CORBAやJava RMIなど

元記事を表示

HomeScreenBrowserアプリ開発に使った技術まとめ(Recycler View,BottomSheet,WebView,Admobリワード広告,Intent)

## HomeScreenBrowserアプリ開発に使った技術まとめ(Recycler View,BottomSheet,Admob,Intent)
HomeScreenBrowserというAndroidのホーム画面でウェブサイトを表示するアプリを公開したため技術について書きます(この記事について私は責任は取りません)

公開したアプリ

https://play.google.com/store/apps/details?id=jp.nuohka.homescreenbrowser

簡単に言うとホーム画面に表示することができるブラウザアプリです。

### AdaptiveView
用意するファイル
item.xml GridViewの一つ一つの見た目を定義
object.java 一つ一つの型(私の場合はアイコンとアプリ名とパッケージネーム)
appadapter.java GridViewを作ります。
“`java
recyclerView = findViewById(R.id.recycler);

recyclerView.setLayoutManager(new Li

元記事を表示

OTHERカテゴリの最新記事