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

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

【新卒SE】Java入門 ~Singleton(シングルトーン)とはなんぞや~

 今日、研修でJavaの問題演習に取り組んでいた際に初めて知った概念?で、正直まだ理解が曖昧ですが、後学のために間違っていても良いので現状の考えを残そうと思い、アウトプットします(間違ってたら教えてくださいm(__)m)。

## シングルトーンとは
一言でいうと、
**「1つのクラスからは1つのオブジェクト(インスタンス)しか作れないよ~」**
ってことです。
通常、クラスから複数のオブジェクトを生成できると思います。例えば、以下の図のように
「Car クラス→TESLA・TOYOTA・BMW」と言ったように、複数のオブジェクトを通常は生成できます。
しかし、シングルトーンの場合は、オブジェクトの生成の処理が一度しか行われないため、下図のようの1つのオブジェクトしか生成されません。なので、「このクラスからはオブジェクトを一つしか作りたくない!」というような時にシングルトーンを使用します。
![スクリーンショット 2022-05-11 21.56.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65

元記事を表示

【Java】型変換の不思議:データ型(byte ~ long) ⇔ char型

データ型からchar型にcastについてまとめる。

#### データ型(プリミティブ型)について
※byte ~ long & charまでを紹介する。
| データ型 | 値の種類 | ビット数 | 格納できる範囲|
|:——–|:——–:|:——-:|:-:|
|byte |整数値 |8ビット |-128 ~ 127 |
|short |整数値 |18ビット |-32,768 ~ 32,767 |
|int |整数値 |32ビット |-2,147,483,648 ~ 2,147,483,647 |
|long |整数値 |64ビット |-9,223,372,036,854,775,808 ~
9,223,372,036,854,775,807|
|char |文字  |16ビット |0 ~ 65,535
※Unicode文字、\u0000~\uffff|

#### castの実例
“`java:castSample.java

元記事を表示

【Java】Stringクラス①:length

Stringクラスにてよく使用するメソッドの詳細について
パート毎に内容をまとめていく。
今回はlengthについて下記の通りまとめる。

###### lengthの働き
length():文字列の長さ(文字数)を取得(return)する。
length :配列の長さ(要素数)を取得(return)する。

###### lengthの使用例
“`java:sample.java
String sample1 = “Hello”;
String sample2 = “Hello World”;
String[] str = new String[5];

System.out.println(sample1.length()); // 5 ※文字数をカウント
System.out.println(sample2.length()); // 11 ※スペースも1文字としてカウントされる。
System.out.println(str.length); // 5 ※要素数にてカウントされる。
System.out.prin

元記事を表示

【Java】Caused by: org.flywaydb.core.internal.license.FlywayEditionUpgradeRequiredExceptionの対処方法

# 参考

https://stackoverflow.com/questions/70438180/what-is-the-last-version-of-flyway-community-edition-that-supported-mysql-5-7

# 事象
MySQL(v5.7)に対して、Flyway(v8.5.10)でマイグレーション実行したら下記のエラーが発生。
“`
Caused by: org.flywaydb.core.internal.license.FlywayEditionUpgradeRequiredException:
Flyway Teams Edition or MySQL upgrade required:
MySQL 5.7 is no longer supported by Flyway Community Edition, but still supported by Flyway Teams Edition.
“`
Flywayの依存
“`xml

org.flywaydb

元記事を表示

【JSP】宣言とスクリプトレットの違いについて <忘備録>

JSPの宣言(declaration)とスクリプトレット(scriptlet)の違いについての忘備録

調べたことや実行したものをまとめたものなので、間違ってる部分があるかもです。

## 実行環境
・Eclipse 4.23.0
・Java 17
・Apache Tomcat 9.0

## 宣言とスクリプトレットの特徴
#### 宣言(declaration)
“`text:記述例
<%! int num = 0; %>
“`
・変数やメソッドの宣言を行う
・1回目のリクエスト時のみ処理が実行される
・jspコンテナが再起動されるまで値が保持される
・ここで宣言した変数はインスタンス変数になる
・スレッドセーフではない

#### スクリプトレット(scriptlet)
“`text:記述例
<% int num = 0; num++; %>
“`
・Javaコードを記述する
・リクエストの度に処理が実行される
・ここで宣言した変数はローカル変数になる
・スレッドセーフ

### スレッドセーフとは
マルチスレッドでも問題なく動作するシステム。

このサイトにわ

元記事を表示

[Java]Paizaでよく使うコード集

## 著者
Javaを用いてPaizaを解き始めた駆け出しエンジニアです。
元々はJavaScriptを用いてBランク程度の問題を解いていたのですが、業務でJavaを使用することになったので、学習のアウトプットとしてPaizaを活用しています。(有料会員)

JavaScriptで問題を解く時と比べてJavaだと文字列→数値の変換や、配列の扱い方、定義の仕方など、暗記しづらいがよく使うコードがたくさんあるなと感じました。

そこで、自分のアウトプット兼備忘録のために、Paizaでよく出てくるコードを載せました。
(Paizaでは、解答を転載することは禁止されているので、解答自体を載せることはしません。あくまでメソッドや定義の解説になります。)

“`java:int型で入力値を保存
int n = sc.nextInt();
int m = sc.nextInt();
“`

“`java:数値を文字列変換
int num = 10;

String str = String.valueOf(num);
“`

“`java:文字列を数値変換

元記事を表示

GoogleColabでImageJを動かそう

# あらまし

使いやすい画像処理環境は、画像処理のアルゴリズム実装のときに役立ちます。
私は、GoogleColabがJavaを動かすことができることは知っていましたが、外部ライブラリを利用できることは知りませんでした。
この記事は、私が普段から使っているImageJをColabで動かす手順の記録です。

# ColabNotebookを編集する

Colabノートブックはデフォルトのプログラミング言語のカーネルがpythonになっています。
これを、javaに変更します。
方法は、kernelspecのpythonの箇所をjavaに置き換えるだけです。
置き換えると、このような状態になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379410/368a1efb-2051-cce1-b31e-9620158c3776.png)

編集の方法は、まず、GoogleDriveに新しいColabノートブックを作り、空のまま、「.ipynb」でダウンロードします。

元記事を表示

4分チャレンジ:タブ区切りファイルをhtmlファイルに変換する

# はじめに

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

元記事を表示

「プロになるJava」を読んで

# 概要
[「プロになるJava」](https://gihyo.jp/book/2022/978-4-297-12685-8)を読みましたので、各部ごとのアウトプットを兼ねて記します。

# 第一部 Javaを始める準備
### Javaとは
Javaとは、プログラミング言語であるJava言語と実行環境であるJVMを中心としてプログラミング技術を指す。

### JVMとは
Java仮想マシンのこと。コードを読み込んで実行する役割を持つ。

### JDK
Javaのプログラムを開発するために必要なソフトウェアパッケージで、Java Development Kitの略。
JVMもJDKに含まれる。

#### Java SE
Javaでどのようにプログラムをかけるか、どのように動作するか、といった仕様のこと。

### 開発環境の準備
1. Oracle JDKのインストール
2. IDEのインストール 本書ではIntelliJ IDEAを使用します。

# 第2部 Javaの基本
### Jshell
JShell=Javaのプログラムを1行ずつ実行できるコマンドラインツール

#

元記事を表示

型推論 var を使う・使わないの判断基準

memo.

## 結論
右辺を見て、型が容易にわかる場合は var を使う。

## 理由
右辺を見ても型がわからない、または型を勘違いするような場合は、一目で理解しづらいコードになってしまうから。

## 具体的には
右辺を見れば一目で何の型かわかるような例

### インスタンス化している

“`java
var list = new ArrayList();
“`

### リテラルである

“`java
var n = 123;
“`

### 戻り値の型を容易に推測できるメソッドを呼び出している

“`java
var date = LocalDateTime.now();
“`


## 参考資料

https://qiita.com/dhirabayashi/items/a4a13d19b41779325bb0

元記事を表示

初心者でもすぐに取り組めるエンジニアとして大切なこと2選

# はじめに

いつも読んでくださってありがとうございます。
今回はWEBエンジニア1年目の僕が新入社員研修で誰にでもできてかつエンジニアとして特に大切だと思った点を2つ紹介していこうと思います。
これを意識するだけでエンジニアとしての価値が確実に上がるので最後まで読んでもらえたら嬉しいです。

## 1.字下げを確実に行う

一つ目は自下げを確実に行うことです。
自分が書いたソースコードは自分以外の大多数のエンジニアが見ることがほとんどです。
その際に字下げが疎かになっていると全体の構成が掴みにくくエンジニアとしての信頼が失われてしまします。
下記に2つの全く同じ内容のソースコードがあります。違いは字下げをしているかしていないかのみです。
字下げをしている方のソースコードは全体の構成を簡単に理解することができます。
しかし自下げをしていないソースコードはどのような構成なのかを理解するのにとても苦労します。
今回の例は少し極端でしたがソースコードを書く際には字下げをして全体の構成を誰が見ても理解できるようにすることが重要です。

~~~ Practice.java
public cla

元記事を表示

【java】javaにおける2次元の連想配列を作成

他に2次元の連想配列のやり方を知っている人がいたらご教授ください

# コード

“`java
import java.util.HashMap;
import java.util.Map;
class Main {
public static void main(String[] args) {
Map> map = new HashMap>();
map.put(1, new HashMap());
map.get(1).put(“名前”,”田中”);
map.get(1).put(“国語”, 33);
map.get(1).put(“数学”, 10);
map.put(2, new HashMap());
map.get(2).put(“名前”,”高橋”);
map.get(2).

元記事を表示

Javaで PDF をグレースケールに変換する方法

場合によっては、ドキュメントを圧縮するために、カラー PDF をグレースケールあるいは無彩色のページのドキュメントに変換する必要があります。この記事では、[Spire.PDF for Java](https://jp.e-iceblue.com/introduce/spire-pdf-for-java.html)を使用して、JavaでPDF ドキュメントをグレースケールに変換する方法について説明します。

## Spire.PDF for Javaを追加する
まず、Spire. PDF for JavaをJavaプロジェクトに追加する必要があります。JAR ファイルは、[このリンク](https://jp.e-iceblue.com/download/spire-pdf-for-java.html)からダウンロードできます。Mavenを使用する場合は、次のコードをプロジェクトの pom.xmlファイルに追加する必要があります。
“`
repositories>

com.e-iceblue

元記事を表示

LeetCode 53 解答

## Memoizationを使った解法

“`Java
public int maxSubArray(int[] nums) {
int ans = nums[0];
int[] sumArray = new int[nums.length];
sumArray[0] = nums[0];

for(int i=1; i

元記事を表示

マージしたチャートデータからテクニカル指標を計算する(ボリンジャーバンド編)

# はじめに

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

元記事を表示

LeetCode 217 解答 Java

この問題では HashSet を使う方法と、sortを使う方法の二種類がある。

# HashSetの方法
## 一つ目 要素を比較

“`Java
public boolean containsDuplicate(int[] nums) {
HashSet hashset = new HashSet<>();

for (int i = 0; i < nums.length; i++) { if (hashset.contains(nums[i])) return true; hashset.add(nums[i]); } return false; } ``` ## 二つ目 長さを比較 ```Java public boolean containsDuplicate(int[] nums) { Set set = new HashSet<>();
for (int num:nums) {
set.add(num);
}
int arrayLength = nums.lengt

元記事を表示

JDK付属の$JAVA_HOME/lib/security/cacertsのデフォルトパスワード

JDK付属の`lib/security/cacerts`を、`keytool`で操作する際、パスワードを要求される場合がある。デフォルトのパスワードは`changeit`である。

変更するには、以下の通り。

“`shell
% keytool -storepasswd -cacerts
Enter keystore password: <-- 'changeit'を入力 New keystore password: Re-enter new keystore password:

元記事を表示

【JAVA】ただマウスポインターを動かすだけのプログラム

# きっかけ

マウスポインター動かすプログラムを定期実行しておけば人がいるように見せらえるのではないか?
ではプログラムの勉強で作ってしまおうと思いました。

# 必要な環境

EclipseのJAVAが使える環境なら問題ないと思います。
またWindows前提となります。定期実行はタスクスケジューラで行います。

:::note warn
詳細な手順などは省いているため、プログラムしたことがある方を前提で記載します。
:::

# 作業順序

大まかな作業順序の流れは以下になります。

+ マウスポインターを動かすプログラム作成(JAVA)
+ 実行可能jarを生成
+ jarを動作させるbat作成
+ タスクスケジューラにbat登録

## マウスポインターを動かすプログラム作成(JAVA)

以下がソースコードになります。
作成したらデバック実行して動作するか確認してみてください。
引数は「3」(秒)がちょうどよいかなと思います。

マウスポインターソースコード

“`java
import java.awt.AWTEx

元記事を表示

マージしたチャートデータからテクニカル指標を計算する(SMA6,SMA12,SMA24編)

# はじめに

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

元記事を表示

【Java】2進数、8進数、16進数の表記方法

2進数、8進数、16進数の表記方法についてまとめる。

**表記方法**
“`
2進数 :先頭に0b若しくは0B記載 (例 10進数:327 = 2進数:0b101000111)
8進数 :先頭に0始まりで記載   (例 10進数:327 = 8進数:0507)
16進数:先頭に0x若しくは0X記載 (例 10進数:327 = 16進数:0x147)
“`

**実際の記載例**
“`java:Sample.java
int bin = 0b101000111; // 10進数:327
int oct = 0507; // 10進数:327
int hex = 0x147; // 10進数:327
“`
表記が変わっているだけなので、
この状態でも四則演算に使用することが可能です。
“`java:Calc.java
System.out.println(0b101000111 + 0507 + 0x147);
// 10進数:327 + 327 + 327 = 981
“`

使う機会はほとんどないと思うが、
10進数を2進数、8進数、1

元記事を表示

OTHERカテゴリの最新記事