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

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

できるパイソニアはpass文をうまく使う +Javaの昔話

pass文がかなり便利そうなのでメモを残しておきます。
恐らく、ある程度経験があれば、コレが結構強力だと分かる・・・はず。

#pass文とは
「何もしない」ことを定義します

こんな感じ

“`hoge.py
class hoge:
def foo(self):
pass
“`

コレで何が出来るの、と思うでしょうが、コレかなり強力な文です。

一言で言うと、Javaの**インターフェース**に似ていますね。

ですが、実際にはコレの強力さが分かりづらいと思いますんで、
具体例を作っていきます。

#空のコンストラクタを指定する

例えばこんな感じに空のコンストラクタを書くのが有効です。

“`hoge.py
class someEntity:
def __init__(self):
pass
“`

何が有効かというと**仕様変更に強い**のです!

例えば、このクラスの仕様が変わって「引数が増えたよ~」と注文が来たとしましょう
その時には passを書き換えてこう書けます

“`hoge.py
class s

元記事を表示

JavaでRedis Streamを使う

https://paluch.biz/blog/174-a-first-look-at-redis-streams-and-how-to-use-them-with-java.html

Redis Streams have made it into Redis’ unstable branch since the beginning of this year, and the first clients start with the adoption of Redis Streams APIs. That makes it an excellent time to take a look what Redis Streams provide and how you can use them from a client perspective.

Disclaimer: Redis Streams are available as a first draft and are not part of a stable release yet. APIs are subject to ch

元記事を表示

【Java】string.formatの使い方

# string.format とは?

引数に指定した書式を元に文字列を整形して返すというメソッドです。

#書き方
第一引数は決められた書式に従って書く必要があります。第二引数以降は第一引数で決めた書式に割り当てるための変数を渡します。

“`java
public static String format(String format,Object… args)
“`

# 実装例

指定された書式の文字列と引数を使って、書式付き文字列を返します。
**書式は(%〜)と書いて指定**します。
**整数(10進整数)を整形する場合は`d`、文字列を整形する場合は`s`**を使います。

“`java
int year = 2021;
String str = String.format(“今年は%d年です。”, year);
System.out.println(str); //今年は2021年です。

// はじめに0を追加
System.out.println(String.format(“%05d”,

元記事を表示

【Java】フォルダの作成方法

#プログラミング勉強日記
2020年1月3日
フォルダの作成方法について簡単にまとめる。Java7から機能を改善した`java.nio(NEW I/O 2)`でのフォルダ作成についてまとめる。

#フォルダを作成する方法
 作成するフォルダのパスの指定にはjava.niofile.Pathsクラスのgetメソッドで行う。フォルダを1つだけ作成する場合は、java.nio.FilesクラスのcreateDirectoryメソッドを使う。親フォルダを含めたすべてのフォルダ階層をまとめて作成する場合にはcreateDirectoriesメソッドを使う。

#サンプルコード
 ファイルがすでに存在する場合は、FileAlreadyExistsExceptionの例外が発生する。

“`java
try {
// 絶対パスで作成
Path path1 = Paths.get(“c:\\Test1”);
Files.createDirectory(path1);

// 親フォルダを含めて作成
Path pat

Java + SpringBoot + Gradle + thymeleaf で 簡易DRUDアプリ作成 ( 1 )

## はじめに
エンジニアに転職してから1年半が経とうとしているのでそろそろ、JavaとSpringBootで基本的なアプリ開発ができるようにならないといけないと思い始めました。現在使用している参考書は[Spring Boot 2 プログラミング入門](https://www.amazon.co.jp/Spring-Boot-2-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798053473/ref=tmm_hrd_swatch_0?_encoding=UTF8&qid=&sr=)です。まだ全て手を動かしながら実践できていませんが簡易的なアプリを作成するまではできたので纏めておきます。ところどころ自分オリジナルのコードも入れながら作成したので良い勉強になりました。何回かに分けて復習がてら書いていきたいと思います。

github: https://github.com/

元記事を表示

JavaでのスレッドとCallableの基本【初心者】

## JavaでのThreadの基本
マルチスレッドを使えば複数処理を並列に走らせたりできる。
こういう処理の一つ一つをスレッドと呼ぶ。
Javaにおいてスレッド処理をするには継承(`extends`)を使う方法とインターフェイスを実装(`implements`)して使う方法がある。
前者の場合は`Thread`クラスを継承して`start()`メソッドを呼び出す。
後者の場合は`Runnable`インターフェイスを実装して`run()`メソッドを呼び出す。
Javaでは多重継承ができないため、`Thread`を使う方法だと他のクラスを継承できないが、インターフェイスを使った方法であれば可能。
後者の場合は`Callable`インターフェイスを実装して`call()`メソッドを呼び出す方法もある。

## RunnableとCallableの違い

`Runnable`の場合は返り値の指定ができず、例外も飛ばせない。

“`Java:Runnable_interface
public interface Runnable {
public abstract void run(

元記事を表示

破損している画像ファイルを一括でまとめて探してくれるソフトの紹介~もうサムネイルを全て確認しなくていい~

#はじめに
画像をスクレイピングしていると、たまに通信エラーで途中までしかダウンロードされず、変な画像になっていることがある。

こんなのや
![KQI1j.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/993303/6162969c-2240-e19c-0ccd-ea5a98d2efd3.jpeg)

こういうの
![U7Q3A.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/993303/f1cbfcc7-3b88-26c2-84c7-2fb54780925e.jpeg)

破損した画像ファイルを修復するソフトはたくさん出てきたが、
破損しているかどうかを見つけるソフトがぱっと出てこなかったので
BadPeggyというソフトを紹介する

#環境
windows10
Ryzen 3700x
[WD Blue™ SN550 NVMe™ SSD(1TB)](https://shop.westerndigital.com/j

元記事を表示

【Java】Optionalの使い方②

#プログラミング勉強日記
2020年1月2日
[昨日の記事](https://qiita.com/mzmz__02/items/dc19895fc608d0ae87a3)同様にJavaのOptionalクラスの使い方について簡単にまとめる。昨日扱っていないメソッドでの使い方を紹介する。

#orElseThrowメソッドの使い方
 orElseThrowメソッドは、引数の有無で処理が異なる。

 引数がない場合は、nullのときにNoSuchElementExceptionをスローして、nullでないときは値を返す。

“`java:引数なしの場合
import java.util.NoSuchElementException;
import java.util.Optional;

public class Sample {
public static void main(String[] args) {
String str = null;
Optional value = Optional.ofNullable(str)

元記事を表示

Javaで正規分布・対数正規分布の乱数を生成する

# はじめに

Javaで乱数を生成したい場合、まず思いつくのは `Math.random()` かと思います。
ただし、これで得られる値は一様分布であり、どの値もおなじ確率で現れるため、以下のようなダミー値を作りたい場合には適しません。

– テストの点数…平均点が最も現れやすく、平均点から離れるほど現れにくくなる分布 → **正規分布**
– 世帯年収…グラフ中心から右側に長く広がる分布 → **対数正規分布**

それぞれ頑張って計算式を書いても良いのですが(頑張って書いてしまったのですが)、ライブラリがあったのでそれを使いましょう。

# 正規分布

`java.util.Random` の `nextGaussian` を使います。

[Random.html](https://docs.oracle.com/javase/jp/6/api/java/util/Random.html)

“`java
import org.junit.jupiter.api.Test;

import java.util.List;
import java.util.Random;
imp

元記事を表示

[Java]Androidでスプラッシュ画面を実装する4手順

こんにちは、momoritoです。
今回はAndroidアプリを作る際の**スプラッシュ画面を実装する手順**をまとめておきます。

スプラッシュ画面を実装する際、考えられる方法として

* スプラッシュ画面用styleを設定してActivityのThemeを差し替える(**Theme差替型**)
* スプラッシュ画面用のActivityを作成して遷移させる(**Activity遷移型**)

等がありますが、今回は前者の**Theme差替型**で実装します。

#1 はじめに
## (1)完成形
下gifのように、アプリをタップ→スプラッシュ画面を表示→数秒後に元のテーマを適用してMainActivityを表示することを目指します。
qiita-square

## (2)スプラッシュ画面表示の大まかなイメージ

元記事を表示

SWING入門

###メソッドの種類


####drawLine(x1, y1, x2, y2)
点 (x1, y1) から点 (x2, y2) へ直線を描く.


####drawString(“文字列”, x, y)
点 (x, y) を左下とする位置に文字列を配置する.


####drawRect(x, y, w, h)
点 (x, y) を左上とし,横幅 w,高さ h の長方形を描く.


####fillRect(x, y, w, h)
点 (x, y) を左上とし,横幅 w,高さ h の長方形を描き,内部を塗りつぶす.


####drawOval(x, y, w, h)
点 (x, y) を左上とし,横幅 w,高さ h の長方形に内接する楕円を描く.


####fillOval(x, y, w, h)
点 (x, y) を左上とし,横幅 w,高さ h の長方形に内接する楕円を描き,内部を塗りつぶす.


####drawPolygon(x, y, n)
x 座標の配列 x と y 座標の配列 y で定義した n 点で構成する多角形を描く.

元記事を表示

VSCodeのMetalsプラグインでScala(sbt)環境をIDEっぽくする

# やること

– Scala用のビルドツールsbtを入れる
– VSCodeでIDEっぽくするためにMetalsプラグインを入れる

# あらかじめ用意するもの

– JDK (versionは8か11が推奨)
– Scala
– VSCode

# sbtの導入

### [sbt](https://www.scala-sbt.org/)とは

Scala用のコマンドラインビルドツールです。一応、GradleやMavenでもScalaのコンパイルを行うプラグインは提供されていますが、sbtはLightbend社(Scalaを提供している会社)に所属するエンジニアがScalaコアチームと連携しながら精力的に開発しているツールらしいです。

### インストール

[こちらの公式DLサイト](https://www.scala-sbt.org/download.html)からダウンロードできます。

– Windowsでインストール
上記のDLサイトにzip、tgz、msiインストーラが置いてあります。

– MacOSでインストール
Homebrewを使って`brew in

元記事を表示

SpringBoot(gradle)にOpenAPI(Swagger)の導入をしていろいろ設定してみた

## はじめに
昨年[精算くんという個人開発のアプリケーション](https://seisan-kun.netlify.app/#/)を作成したのですが、バックエンドAPIの仕様書を作成していなかったので、手っ取り早くOpenAPI(Swagger)を利用して作成していこうと思い利用するに至りました。
その際の導入方法や、個人的に気になった設定について触れていきます。

## 環境
– Java 11.0.3 (Amazon Corretto)
– gradle 6.0.1
– SpringBoot 2.2.3
– Seisankun-api https://github.com/nooboolean/seisankun_api
– SwaggerUI 2.9.2

## OpenAPI(Swagger)とは
>The OpenAPI Specification, originally known as the Swagger Specification, is a specification for machine-readable interface files for

元記事を表示

【Java】フォルダ内のファイルパスをListで取得

引数のフォルダ内にあるファイルの一覧をStringのListにしてみるメソッド。
※再帰的に呼び出してListにaddAllしてみた
※Java8~15で動作検証済み(不具合あっても責任は取らない方向で

“`java:FileUtils

import java.io.File;
import java.util.LinkedList;
import java.util.List;

public class FileUtils {

/**
* 引数のディレクトリ内にあるフォルダやファイルのPathを文字列のListで返す
*
* @param root
* @return
*/
public static List getFileList(String root) {
return getFileList(new File(root));
}

/**
*
* 引数のディレクトリ内にあるフォルダやファイルのPathを文字列のListで返す
*
* @param root
* @return
*/
publ

元記事を表示

Spring Boot + Java でfileとStringデータを同時にform送信して処理する

File型とString型を一度にForm送信するやり方がわかったので備忘録として残しておきます。

##実現したいことのイメージ
こんな感じのフォームがあり、送信ボタンをクリックすると更新した情報にページが更新されてアラートが表示される

![スクリーンショット 2021-01-01 19.31.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637360/8e781aa8-f0a9-18c2-642c-d43de7f66607.png)
![スクリーンショット 2021-01-01 19.36.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/637360/ca0d50a1-2cfd-56cc-95d9-98c1a06743ab.png)

“`html

【Java】for文についてまとめ

#はじめに

現在Java Silver受験に向けて勉強中です。
勉強の中で、for文について間違えて覚えていたり混乱することが多かったので、自分の言葉で基本からまとめていこうと思います。

#基本
for (初期化文; 条件文; 更新文) {
  /// 繰り返し処理
}

“`
for(int i = 0; i < 10; i++) { System.out.println(i); } ``` ①初期化文 ②条件文 ③繰り返し処理 ④更新文 ⑤終了 ※②~④を繰り返す #拡張for文 for (型 変数名 : 集合) {   /// 繰り返し処理 } ※ ;(セミコロン)ではなく:(コロン)であることに注意 ``` int[] array = {1, 2, 3} for(int num : array) { System.out.println(num); } ``` 集合の中身を最初から最後まで一つずつ取り出すイメージ。 #繰り返し処理の中断 ##break 例: for (初期化文; 条件文; 更新文) {   if (条件文) {     break

元記事を表示

【Java】Optionalの使い方①

#プログラミング勉強日記
2020年1月1日
JavaのOptionalの使い方について簡単にまとめる。

#Optionalとは
 メソッドの戻り値としてnullを返す可能性があることを明示的に示したいときに使う。メソッドがnullを返す可能性があるということを示すことで、より安全に実装することができる。

#Optionalの書き方
 Optionalクラスを使うにはjava.util.Optionalをインポートする必要がある。一般的にはオブジェクトを定義して利用する。Optionalのオブジェクトはダイヤモンド演算子(‘<>‘)ないのType Parameterにnullの可能性があるオブジェクトの型を指定して宣言する。
 ofNullableメソッドの引数にはnullの可能性があるオブジェクト名を指定する。

“`java:基本的な書き方
Optional オブジェクト名 = Optional.ofNullable(nullの可能性があるオブジェクト名);
“`

“`java:サンプルコード
String str = null;
Optional

元記事を表示

(Java、JavaScript、Python)文字列処理の比較

# Java、JavaScript、Pythonの処理比較

最近JavaScriptとPythonの勉強を始めました。
学んだことの整理として、Java、JavaScript、Pythonの3言語の処理比較を記事にしていこうと思います。
今回は文字列処理です。

## 文字列処理の比較一覧

|処理内容|Java|JavaScript|Python|
|—|—|—|—|
|文字列長|length()|length|len(文字列)|
|一致比較|equals(比較文字)
equalsIgnoreCase(比較文字)|==比較演算子
===比較演算子|==比較演算子|
|検索|indexOf(検索文字列)
lastIndexOf(検索文字列)
contains(検索文字列)
startsWith(検索文字列)
endsWith(検索文字列)
|indexOf(検索文字列)
lastIndexOf(検索文字列)
includes(検索文字列)
startsWith(検索文字列)
endsWith(検索文字列

元記事を表示

SpringBootで作成したWebアプリをEC2にデプロイするときに躓いた話

###はじめに
自分用のメモです。

###開発環境
・Windows10
・OpenJDK 1.8
・SpringBoot 2.2.4
・Gradle 6.3
・MySQL5.7
・AWS(EC2・RDS・VPC)

###作業の流れ
1.デプロイ用のSpringBootアプリを用意
2.EC2・RDS・VPCを準備する
3.Amazon Linux2で必要ツールをインストール
4.Buildしてデプロイ

####1.デプロイ用のSpringBootアプリを用意する
こちらは何でも構わないので自身で作成しているアプリで可

####2.AWS(EC2・RDS・VPC)の用意
ここは後日投稿する予定です

####3.Amazon Linux2で必要ツールをインストール
EC2にログインしyumを最新にします

“`
# yum update
“`
Gitのバージョンを確認とインストール

“`
# yum search git
# yum install git
“`
Gitがインストール終わったら一応確認

“`
# git –version
“`
Java8をイ

元記事を表示

JavaでLibreOffice Calcのfodsファイルを読み書きするサンプル 2021

https://github.com/sonota88/libreoffice-java-sample/tree/20210101

以前書いたこれ↓のアップデート版。細かい修正と「2021年初でも動きましたよ」という動作確認の報告です。

[JavaでLibreOffice Calcのfodsファイルを読み書きするサンプル 2019](https://memo88.hatenablog.com/entry/2019/12/02/070925)

ちなみに上記は 2019年末の記事なのでだいたい1年ぶりのアップデートになります。

# 変更内容

– 使用範囲内での行インデックス・列インデックスの最大値を取得するサンプルコードを追加
– mvnw を使うように変更
– JUnit のバージョンアップ: 4.x => 5.7.0

# 環境

“`
Ubuntu Linux 18.04
LibreOffice 6.0.7.3
OpenJDK 1.8.0_275
“`

# 参考

– [Java LibreOffice Programming (Calc)](https://five

元記事を表示

OTHERカテゴリの最新記事