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

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

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

元記事を表示

Javaの変数と型名

現在Javaを独学で学習中。
備忘録のために色々と記述していこうと思います。

## 型名

Javaで変数を代入する場合は、そのデータにあった型名に収める必要がある。
以下はその一覧。

|種類 |型名 |データ |
|————–|——–|———————–|
|整数      |byte |-128 〜 128まで    |
| |short |-32,000 〜 32,000まで        |
| |int | -21億 〜 21億まで |
| |long |-900京 〜 900京まで |
|小数点数   |float| 小数(doubleより厳密さに欠ける)|
| |double| 小数       |
|文字   |char |1文字のみ  |
| |String | 文字列  

元記事を表示

【Java】varを使用した変数宣言

Java 10から登場したvar(型推論)について簡易的にまとめる。

**導入された目的**
定型挿入文を減らし、コードの可読性を向上させるため。

**使用例**
“`java:varSample.java
// var型で宣言されている内容は、コメントの内容と同義である。
var num = 10; // int num = 10;
var str = “Hello!”; // String greeting = “Hello!”;
var array = new int[3]; // int array[] = new int[3];
var object = new Object(); // Object object = new Object();
var bool = “Java”.equals(“Java”); // boolean bool = “Java”.equals(“Java”);
“`
var型とは明示的に型宣言を行わなくても、右辺の内容から型を推測して

元記事を表示

Play Frameworkで画面表示が遅い原因と対処

# はじめに

※別のブログに投稿していた記事をQiitaに投稿し直しています。(元の記事は削除予定)

# 環境

Play Framework 2.2.6
macOS Big Sur 11.5.2

# 現象

Play Frameworkのアプリをローカルで起動すると、画面表示が遅い。
Chromeで確認したところ、“`Cache-Control“`の値がローカル環境と本番環境とで異なる。

* ローカル環境

「Cache-Control: no-cache」になっている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627583/082c9817-70f0-36f0-28de-b4923382811b.png)

* 本番環境

「Cache-Control: max-age=3600」になっている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627583/

元記事を表示

【Java】matchesメソッドについてのメモ

## 概要
String型の文字列をチェックする際に必要なmatchesメソッドの使い方を、学習のメモとして記録しておこうと思う。

※今後も情報を追記します。

## 部分一致
“`Java
String password = “AaBbcC123”;

//パスワードに数字を含む
password.matches(“.*[0-9].*”);

//アルファベットの小文字を含む
password.matches(“.*[a-z].*”);

//アルファベットの大文字を含む
password.matches(“.*[A-Z].*”);
“`
結果、
“`Java
true
true
true
“`

## 完全一致
“`Java
String password = “AaB123”;

//パスワードが5文字で数字のみ
password.matches(“[0-9]{5}”);

//パスワードが6文字でアルファベットと数字のみ
password.matches(“[a-fA-F0-9]{6}”);
“`
結果、
“`Java
false
true
“`

## 参考

元記事を表示

【Java】ポリモーフィズム(Polymorphism)

本稿ではポリモーフィズム(多態性)の説明については割愛する。
具体例を用いて動きの概要をまとめる。
## 具体例
準備するクラス

“`mermaid
classDiagram
Animal <|-- Dog Animal <|-- Cat Animal : -int speed Dog : -int speed Cat : -int speed class Animal{ +Cry() +Run() } class Dog{ +Cry() +Run() +Eat() } class Cat{ +Cry() +Run() } ``` **Animalクラス(親クラス=スーパークラス)** ※abstractの説明も割愛する。 ```java:Animal.java public abstract class Animal { private int speed = 5; public abstract void Cry(); public void Run() { System.out.println(speed + "km/hの速度で逃げ出した。"); }; } ```

元記事を表示

ポートフォリオ作成の過程で学んだ技術を振り返る ~Spring Boot編~

# はじめに
Javaのポートフォリオ作成の過程で学んだフレームワークやライブラリ等を、サンプルコードをもとに一言で説明したり要点をまとめてみました。
本記事は自身の振り返りのために作成した備忘録なので、第三者向けの説明が不十分な箇所があるかと思います。ご了承ください。

# Spring Boot
JavaでWebアプリを作成するためのフレームワーク。
アプリ(プロジェクト)作成時に使いたいフレームワークやライブラリを選択すれば、利用設定なしに最適な環境を構築できる。あとは必要に応じてConfigクラスを作成したり、XMLファイルに外部ファイルとの依存関係、プロパティファイルにDBアクセスの設定等を記述する。

## Spring Tool Suite(STS)
Springベースのアプリケーション開発を行うために提供される開発ツール。
https://spring.io/tools

## MVCアーキテクチャ
Webアプリケーションを設計・作成するときの考え方。

表1 MVCとその役割
|名前|役割|対応するファイル|
| —- | —- | —- |
|Mode

元記事を表示

OTHERカテゴリの最新記事