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

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

【Java】指定範囲の乱数生成:nextInt(int num)

指定範囲の乱数を生成したい場合、
RandomクラスのnextIntメソッドを使用する。
nextIntメソッドで取得される乱数の性質は下記のとおりである。

nextInt(int num)
・0以上、num未満のint値

使用例は下記のとおりである。
※java.util.Randomをimportした前提での使用例である。
※Randomクラスをインスタンス化した場合の使用例である。

①0~9までの乱数
“`java:nextInt.java
Random random = new Random();
int randomNum = random.nextInt(10);
“`

~説明~
nextInt(int num)で取得できる値は0以上、num未満のint値のため、
範囲:0~x*までの値を取得したい場合はnum = x + 1で指定する必要がある。
*(x=取得したい範囲の上限値)

②1~10までの乱数
“`java:nextInt.java
Random random = new Random();
int randomNum = random.nextI

元記事を表示

【Java/Kotlin】Discord Bot のスラッシュコマンドを実装する-2022

# はじめに
この記事は、Java で Discord Bot のスラッシュコマンド実装方法を解説していきます。
私が嵌った点を含めて、備忘録的に書いていこうと思います。
Discord Bot の作成は、他に記事がたくさんあるので、作成されている前提で話を進めていきます。
リポジトリを使用する際は、プロジェクトに依存関係を追加することを忘れないようにしましょう。

ソースコードは、Java と Kotlin の両方を掲載します。
私が Kotlin 推しなので、、、。
Kotlin すごく楽で便利でいいですよ!

この記事で実際に使用したソースコードは、以下の GitHub に push しておくので全体像を見たい場合はそちらを確認してください。

https://github.com/waigoma/TutorialSlashCommandDiscordBot

# 目次
[1. はじめに](#はじめに)
[2. 目次](#目次)
[3. 使用するライブラリ](#使用するライブラリ)
[4. DiscordBotの招待](#discordbotの招待)
[5. Botにログインする

元記事を表示

「マイクロサービスパターン」の復習 12章 デプロイ

## 12章 マイクロサービスのデプロイ

– マイクロサービスをデプロイする方法について
– Kubernetesを使ったデプロイ
– Kubernetes+Istioを使ったデプロイ
– AWS Lambdaを使ったデプロイ

## Language-specific packaging formatパターン

– Javaでいうjarやwarなどをデプロイする方法
– 利点
– デプロイが高速: 転送はjarやwarだけ。起動も各環境に最適化しているので速い。
– 効率的なリソース使用:tomcatの複数のwarを載せられるので、OSやフレームワークなど各種リソースを共有することになる。見方によっては効率的とも言える。
– 欠点
– テクノロジスタックをカプセル化できない:デプロイするにもフレームワークの詳細を知らないといけない
– リソースの制限ができない
– 1マシンに複数サービスインスタンスをやると密結合:何がしか相手がlocalhostにいる前提のコードが書かれてしまったりする
– 自由に配置できない

というわけで、今の時

元記事を表示

著者トークイベントから考える「良いコード/悪いコードで学ぶ設計入門」の読み方

### こちらの著者トークイベントに参加してまいりました

https://modeling-how-to-learn.connpass.com/event/242976/

参加を踏まえて、どんな人にこの本がおすすめなのかを紹介します。
また、著者トークを踏まえたこの本の実務での使い方を紹介します。
※イベント内容はメモをとりながら視聴させていただきました。
誤解のない記載に努めましたが、
正確性に欠けた記載・著者が言っていない発言を書いてしまっている場合があります。
真に正確な内容につきましては、著者の書籍を是非お買い求めください。
(ちなみにNMRtは5/3から読み始める予定です!)
https://amzn.to/3ybPn4K

#### 【イベント参加感想】
「読んでみたい!」と強く思うようになったきっかけは
「高凝集なカプセル化とイミュータブルを合わせた設計やモデリングを重視している」こと。
それらの技術を駆使して現場でリファクタリングを行なっていることから、書籍の購入を
先倒ししました。(イベント参加前はしばらく後で買う予定でした)

#### 【対象読者】
・設計・特

元記事を表示

【Java】指定範囲の乱数生成:Math.random()

指定範囲の乱数を生成したい場合、
Mathクラスのrandomメソッドを使用する。
randomメソッドで取得される乱数の性質は下記のとおりである。

・0.0以上、1.0未満のdouble値

使用例は下記のとおりである。

①0~9までの乱数
“`java:random.java
int random = (int) (Math.random() * 10);
“`

~説明~
Math.random()で取得できる値はdouble値のため、
int型で数値が欲しい場合はcastする必要がある。

②1~10までの乱数
“`java:random.java
int random = (int) (Math.random() * 10) + 1;
“`

~説明~
Math.random()で取得できる値は0.0以上、1.0未満のdouble値のため、
0が必然的に含まれてしまう。そのため、乱数から0を除きたい場合は+1する必要がある。

③‐10~10までの乱数
“`java:random.java
int random = (int) (Math.random() *

元記事を表示

auカブコム証券のチャートデータの日付を調整する

なんでこんなことになるのか。。。

# いきさつ

メニューからチャートデータの出力ができるので、過去データを使って、テクニカル指標のテストに使うことにした。

4/29に日足のファイルを保存したら、
“`
2022/04/25,27075,27230,26475,26540,1273387
2022/04/26,26600,26850,26400,26650,1349144
2022/04/27,26540,26630,25965,26390,1308090
2022/04/28,26235,26880,26185,26860,1357538
2022/05/02,26995,27380,26890,27200,730935
“`
なんで、5/2???

30分足を保存したら、
“`
2022/04/28 14:15:00,26790,26840,26735,26835,51907
2022/04/28 14:45:00,26835,26880,26800,26860,75336
2022/04/28 15:15:00,26860,26860,26860,26860,5929

元記事を表示

AppletをJSに変換してみる 前編

# はじめに
今回は、JavaAppletのスクリプトをJavaScriptへ移植する手順について解説っぽいことをしていきます。

## なんで変換するんや
JavaAppletは、あらゆるプラットフォームのWebブラウザ上で動作する画期的なWebアプリケーションです。ブラウザ上で動作するツールや、凝ったゲームを簡単にWebサイトに埋め込むことができるため、非常に広く利用されてきました。しかし、ご存知の方もいらっしゃると思いますが、アプレットにセキュリティ上の脆弱性が次々と発見され、後に危険な状態に陥りました。このため、Javaの開発元であるOracle社は、アプレットが安全であることを証明する署名のないアプレットをブロックするようになったのです。

そのアプレットの代わりとなるものは、以下の通りです。

・JavaScript
・HTML5世代のAPI

このほか、FlashとShockwaveはアプレットより高速で、ゲームやアニメーションに広く使われていました。しかし、これらはプラグインが必要で、スマートフォンなどの携帯端末では動作しません。なお、この2つは廃止されてしまいますた。

元記事を表示

[Java] EclipseプロジェクトをMavenへ移行した記録(書きかけ)

# あらすじ

とあるところに、Java 1.6で作られたEclipseプロジェクトがありました。
内容は、Tomcatで動くWebサイトです。
プロジェクトは担当を変えながら、秘伝のタレのごとく、綿々と運用され続けていました。
この先リプレースまで、このまま続くのだろうと思われていました。

ところがある日、突然担当者が離脱してしまいました。
困ったボスたちは、@sengoku を呼ぶことにしたのです。

# 1日目

おいら「一応git使っているのね。よかったよかった。git cloneしてーのっと」

・・・なんか妙に重いな・・・?

おいら「なんでレポジトリ内にjarやclassファイルが入ってるん!?」

# 2日目

おいら「いろいろしんどいので、Maven導入したいのですが」

なぞ「Maven?なんて読むの?」

えっ、そこから!?

相手が知らないのをいいことに、@sengoku は甘い水を語りました。

こうしてMavenを導入してもよいことになったのです。

# 3日目 – 本題

長々とした前フリへのおつきあいありがとうございました。
ここから本題です。

元記事を表示

[Apache Hop] Dockerで動かしてみた

他の環境(DBなど)を構成して、まとめて動かそうとするとDockerのほうが都合がいいということで、試してみました。

# 対象者
– Apache Hop (データ統合プラットフォーム) を試してみたい方。
– データ収集、変換処理を試してみたい方。
– Dockerで動かしたい方。

# 前提環境
– Docker Desktopをインストールしている

# 手順の流れ
– Dockerのイメージをダウンロードする
– apache/hop-webを動かす
– apache/hopを動かす

## Dockerのイメージをダウンロードする
コマンドプロンプト、ターミナルを起動して、以下のコマンドを実行します。
サイズが2GBちかくあるので、時間がかかります。

GUIで変換処理を定義するのに必要
“`
docker pull apache/hop-web
“`
サーバ機能などを実行するのに必要
“`
docker pull apache/hop
“`
https://hop.apache.org/download/

## apache/hop-webを動かす
Docker

元記事を表示

【Android】Retrofit2のCall.enqueue()は非同期で処理されるの巻

# はじめに

皆さん、ごきげんよう!れぶです!

先日`Retrofit2`ライブラリを使って、API通信した結果を`RecyclerView`でリスト表示しました。その際に自身が悩んだ箇所が1点あったので、今回の記事で原因と解決方法を記述していきます。

自身のためでもありますが、自分と同じ悩みを持つ方々にも刺さる記事になれば幸いです。
それでは、参りましょう!!

# 開発環境

* MacBook Air
* Android Studio Bumblebee | 2021.1.1 Patch 1
* Java 8
* compileSdkVersion 31
* minSdkVersion 21

# 動作イメージ

完成イメージは以下になります。
![ezgif.com-gif-maker (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2456250/be906014-7488-9013-7a48-343e36a93976.gif)
入力された郵便番号をもとにAPI通信([zipclo

元記事を表示

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のテスト用モック

元記事を表示

TwitterAPIを触ってプログラム上からツイートしてみた

# 初めてのQiita投稿です・・・
私は4月よりSEへ転職し、Javaを中心に学習を始めたものです。実務経験等はまだありません。
現在はJavaの基本的な文法学習を終え、Springbootを用いたWebアプリケーションの開発の学習を進めています。

今回、TwitterAPIを用いて、Javaプログラム上からツイートしてみることに挑戦しました。使用したAPIは下記URLよりダウンロード可能です。

https://twitter4j.org/ja/

以下、記述したコードになります。

“`Java:Main.java
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;

public class Main {
public static void main(String args[]) {

NewTweet();
}

public static void NewTweet() {
Twitter twitter =

元記事を表示

[Apache Hop] Windowsにインストールしてみた

# 対象者
– Apache Hop (データ統合プラットフォーム) をWindowsで試してみたい方。
– データ収集、変換処理を試してみたい方。

# Apache Hopとは
– Apache Hop は オープンソースのデータ統合プラットフォームです。 ETL (Extract/Transform/Load) の開発ツール・実行エンジンです。

– 部品連ねていくことで、データの変換処理をローコードで実現することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/cb38cb6e-be1b-696a-0e82-3c7fdab8c508.png)
例 : データを生成してjsonにしてからKaffkaのProducerとしてメッセージ送信してる流れ

– 部品の種類も豊富でデータベースのMongDB, postgresql, MySQL、neo4jや Kaffkaなどと連携する機能があります。応用した使い方としては、実装した変換処理をWebサービスとして公開

元記事を表示

JavaでPDFに複数のヘッダーを追加する方法

ヘッダーは、多くの場合、ドキュメントの追加情報を表示するために使用されます。時間、グラフィックス、会社のロゴ、ドキュメントのタイトル、ファイル名、作成者名などを挿入できます。この記事では、[Spire.PDF for Java](https://www.e-iceblue.com/Introduce/pdf-for-java.html)を使用してJavaプログラムでPDFに複数のヘッダーを追加する方法について説明します。
Spire.PDF for Javaを追加する
まず、Spire.PDF for JavaをJavaプロジェクトに追加する必要があります。Jar ファイルは、このリンクからダウンロードできます。Mavenを使用する場合は、次のコードをプロジェクトの pom.xmlファイルに追加する必要があります。
“`


com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/

元記事を表示

サーブレットとJSPを使った画面表示

# はじめに
こんばんわ、きりです。
本記事は[Nablarchを使ってみよう](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17)のサブ記事として作成しております。

[前回](https://qiita.com/kirin1218/items/db1ba8af6c323c925919)はサーブレットの作成を行い、ブラウザからのHttpアクセスに対して、Javaのプログラムを実行することに成功しました。

今回は[サーブレット](https://qiita.com/kirin1218/items/99a51d8ffed8b107b4f9#%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8%E3%81%AF)と[JSPファイル](https://qiita.com/kirin1218/items/99a51d8ffed8b107b4f9#jspjava-servlet-pages%E3%81%A8%E3%81%AF)を使って画面の表示を行ってみようと思

元記事を表示

ポンコツ駆け出しエンジニアが大手IT企業に転がり込んで四苦八苦した話

こんにちは。社会人4年目に突入したエンジニアです。
今回はWebアプリ開発がほぼ未経験なのに(Pythonによる機械学習は研究室でやっていましたが)大手IT企業に転がりこんでしまったせいで四苦八苦したことを書き連ねていこうと思います。

新卒研修はJavaのSpringBootというフレームワークで簡易版の旅行予約サイトを作るというものでした。
しかし、僕はPythonはやったことはあるけどJavaはほぼ未経験でした(基本的なfor文やif文の書き方、それからオブジェクト指向の概念だけは知ってるレベル)

するとどうなるか?全然研修について行けませんでした・・・

研修のスピードは爆速で、100ページPDFを一日で学習し追えるというようなものでした。
自分はほぼ初見の内容ばかりだった一方、周りのみんなは知識の照らし合わせるだけというような感じで、平気そうにしている人が多かったです。

知識の習得が中途半端なまま、研修は座学から実際に手を動かしてものづくりするフェーズに突入。

全然チームの中で活躍できませんでした・・・

– レビュー?そんなのしたことないよ!というかGitHubで共同

元記事を表示

Java 準備編 環境構築(JDK・Android Studio インストール)

## Java とは

https://and-engineer.com/articles/YaCYXBIAAB4AgJRT

https://www.javadrive.jp/start/install/index5.html

>Javaは世界的に利用されている汎用的なプログラミング言語です。Javaはサン・マイクロシステムズ社から1996年にリリースされましたが、同社が2010年にオラクルに吸収合併され、Javaの版権もオラクルに移行しました。

#### Javaの特徴

>▪Java自体は無償で利用が可能
▪C言語をベースに開発された人気の言語
▪プラットフォームに依存せず、JVM(Java仮想マシン)と呼ばれるソフトウェアを用いてWindowsやMac、LinuxなどあらゆるOS環境で動かすことができる
▪プログラムをモノとしてとらえるオブジェクト指向言語
▪ガベージコレクション機能により、メモリを浪費しない

といった点が挙げられます。

### ◎ JDK とは

JDKとは「Java Development Kit」の略語で、Javaのプログラム開発や実行に用いるプ

元記事を表示

【Java_繰り返しの中断(2種類)】

現在、書籍でJavaの学習に取り組んでいます。
この投稿はその備忘録になります。

## break文とcontinue文
for文やwhile文を用いた繰り返しの途中で、その繰り返しを中断したいとき、
`【break文】`や`【for文】`を使います。

#### ■break文
break文を利用した場合

“`java
public class App{
public static void main(String[] args) throws Exception{
for (int i = 1; i < 10; i++){ if (i == 3){ break; } System.out.print(i); System.out.print(" "); } } } 【結果】 1 2 ``` 以上の様に`break`によってif文で指定した値以降の処理は中断されています。 (3以降は出力されない) #### ■continue文 continue文を利用した場合 ```java public class App{ publi

元記事を表示

JavaでNIO.2を使いつつ複数のファイルをZIP圧縮する

# 環境
JDK 17を使っています。たぶん、多少バージョンが違っていても同じように動くと思います。

# コード
test1.txt・test2.txt・test3.txtを圧縮して、test.zipを作成します。

“`java:import文
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
“`

“`java:コード本体
List targetFileList = List.of(
Path.of(“test1.txt”),
Path.of(“test2.txt”),
Path.of(“test3.txt”)
);

Path zip

元記事を表示

Javaでクラスパス上のファイルをPathとして取得する

# 環境
JDK 17を使っています。たぶん、多少バージョンが違っていても同じように動くと思います。

# 今回のフォルダ構造
今回はsrc/main/resources配下のファイルを取得したいとします。

“`bash
$ tree .
.
└── src
   └── main
       ├── java
      │   └── foo
      │   └── Main.java
   └── resources
   ├── sample1.txt
   └── bar
      └── baz
       └── sample2.txt
“`

# コード

“`java:Main.java
package foo;

import java.nio.file.Path;

public class Main {
public static void main(String[] args) {
Path path1 =

元記事を表示

OTHERカテゴリの最新記事