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

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

JavaとPythonの比較

ごくごく簡単なまとめですが、JavaとPythonを比較してみました。

|項目|Java|Python|
|:———–|:———– |:———– |
| クラス | 必ず必要 | 書かなくてもいきなり処理のベタ書きでも良い |
| 変数定義時の型指定 | 必要 | 不要(動的型付け) |
| long型 | あり | なし(整数値はすべてint型でOK) |
| 複数戻り値 | 不可 | 可 |
| インデント | 任意 | 強制 |
| 空のオブジェクト | null | None |
|多重継承| 不可| 可 |
| switch文 | あり | なし |
| 定数定義構文 | あり | なし |
| if文での変数スコープ | if文内でスコープ形成する | if

元記事を表示

Java基礎編

# Java基礎編

————————————————————

## プリミティブ型
– byte型:8ビット整数 -128~127
– short型:16ビット整数 -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
– float型:32ビット単精度浮動小数点数
– double型:64ビット倍精度浮動小数点数
– boolean型:true or false
– char型:16ビットUnicode文字 \u0000~\uFFFF

————————————————————

## 参照型
– Object型:すべてのクラスは暗黙的にこのクラスを継承して作られる
– Byte型:8ビット整数 -128~127
– Sho

元記事を表示

thisを使う!!

▪️ thisとは
 PHPでスコープ外で定義された変数を利用するための擬似変数。
 簡単に言うなら英語の省略に近いイメージ。

例えば、あなたは長い映画を見るのが好きですか?と聞かれ、私は長い映画を見るのが好きです。と答えているとめんどくさいと思います。
好きです!と省略したいですよね?
その感覚で使うのがthisになります!

<書き方>
下記のようになる:writing_hand_tone2:

public class Monster {
int hp = 100;
int mp = 20;
Monster(int hp ,int mp){
this.hp = hp;//1
this.mp = mp;
}

コード引用元:https://qiita.com/kajirikajiri/items/85b911688155f9fc251a

今日の投稿は以上です。

wagaでした!!

元記事を表示

2021年Spring設定備忘録

初期設定はたまにしかしないから、よく忘れる。

# Database作る
仮にdebian系でPostgreSQLを使うものとする。
“sudo apt install postgresql
sudo -u postgres psql
CREATE DATABASE demodb;
ALTER ROLE postgres WITH PASSWORD ‘postgres’;“
マイグレーションツールを使うにしてもデータベースの設定は自分でやる。

# STSを持ってきて展開する
Spring Tool Suite を https://spring.io/tools からダウンロード。
/optあたりに置くのがよいかも。

# STSを起動してプロジェクトを作る
File -> New -> Spring Starter Project
デフォルトは Maven だけど Gradle のほうが好きだ。
Jar ではなく War を選ぶとよいかも。
ミニマムだと依存関係は以下のようなものか。
– JDBC API
– Spring Data JPA
– Flyway Migration

元記事を表示

汎用デシジョンテーブルIMSが新たに追加になりました。

#はじめに
ifLinkマイクロサービスを開発している八教と申します。
新たにデシジョンテーブルにより判定して結果を送信するフィルターIMS
「汎用デシジョンテーブルIMS」が追加されましたので、紹介させていただきます。

#ifLinkとは
https://iflink.jp/

#汎用デシジョンテーブルIMSについて
IMSのデータがデシジョンテーブルに合致するか判定し、
最初に合致したデシジョンテーブルの結果を返却します。

デシジョンテーブルってなに?という方は以下参照
https://medium-company.com/%E6%B1%BA%E5%AE%9A%E8%A1%A8/

例えば入力に乗車駅、降車駅、支払いを出力するIMSがあった場合、
それらの入力を受け取ってデシジョンテーブルより運賃を算出。
算出結果をトーストに表示することができます。

IF-THEN のイメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1780474/f5ea05a6-b607-e1ff-

元記事を表示

java:5: エラー: この文字(0x98)は、エンコーディングwindows-31jにマップできません

#はじめに
はじめまして。
駆け出しJavaエンジニアです。
研修中初歩的なところで躓きまくっているので、アウトプットとして駆け出しエンジニアの方々のお力になれたらうれしいです。
環境はwindowsで、

#今回のエラーと直し方
java:5: エラー: この文字(0x98)は、エンコーディングwindows-31jにマップできません
というコンパイルエラーが発生しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1302414/7dca4bd2-f3b1-c290-e46e-9118a6484c14.png)

結論を言ってしまうとサクラエディタの文字コードが間違っておりました。
右下の文字コードのところクリックで他の文字コードに変えることができます。
デフォルト設定がUTF-8で、その部分をSJISにしたら無事コンパイルされました。

以下の@HachiwareWorks様が書いた記事のやり方でも無事コンパイルできたので、参考として張らせていただきます。

#参考にしたサイ

元記事を表示

続・GradleでCodeArtifact自動化

結論だけ読みたい人は[こっち](#利用例)

## はじめに
一応、[前回](https://qiita.com/TAC_yacht/items/eb4ca035491dc9a2b77f)それなりにコピペで済むようにはしたものの、冗長であると言わざるを得ない。
そこでプラグインにした。

## プラグインの設定

“`groovy:build.gradle
plugins {
id “io.github.tac-yacht.codeartifact-repository” version “0.1”
}
“`
ほかのプラグインも使ってるときは真ん中の行だけ追加
※“`settings.gradle“`で“`pluginManagement.repositories“`を設定してる時は“`gradlePluginPortal()“`の追加を忘れずに

ポータルで各種プラグインごとに例示されてるのと同じではある

## レポジトリの設定
3種類から選べる。

### style A
“`aws codeartifact get-repository-endpoint`

元記事を表示

【初見者向け】Javaのリファクタリングツール OpenRewriteを少し検証

# はじめに
こんにちは。
少し前に、「OpenRewrite」というJavaのリファクタリングで使える?ツールの存在を知って
どのようなものか興味を持ったので、簡単に検証してみた記録です。

# OpenRewriteとは
### OpenRewriteの概要
>OpenRewriteは、Java言語に早期に焦点を当てて、フレームワークの移行、脆弱性のパッチ、およびAPIの移行のための大規模な分散ソースコードのリファクタリングを可能にします。

### OpenRewriteは何をしますか?
>OpenRewriteは、ソースコードを表す抽象構文木(AST)に変更を加え、変更されたツリーをソースコードに出力することで機能します。その後、コードの変更を確認してコミットできます。ASTの変更はビジターで実行され、ビジターはレシピに集約されます。OpenRewriteレシピは、元のフォーマットを尊重する最小限の侵襲的な変更をソースコードに加えます。

>たとえば、手動で行うのではなく、すべてのテストファイルで静的インポートを一貫して使用する場合は、OpenRewriteが提供するUseSt

元記事を表示

エンドロールムービーをprocessingで作る #2 【文字スクロール・画像表示】

**Processing**と**ffmpeg**を用いた結婚式風エンドロールムービー作成方法紹介の**2回目**です。
今回は**文字のスクロール**と**画像表示**について紹介します。
1回目に紹介した**連番画像作成・アニメーション**については[こちらをご覧ください](https://qiita.com/takenoko300/items/538f5c3a3fb94758ba03)。

https://qiita.com/takenoko300/items/538f5c3a3fb94758ba03

# 今回作成した動画
![out3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873853/19af64dd-e7ad-fcdc-809a-148644b749b2.gif)

## プログラミング内容説明

### 文字のスクロール
文字のスクロールはループごとにY座標の位置を少しづつ変化させていくことで実現します。
そのため、ループごとにカウントアップされるグローバル変数(下記プログラム

元記事を表示

Javaでファイルから設定値を読み込む(簡易的な方法)

今回ご紹介するのはファイルから設定値を読み込む方法です。
XMLを使ったりいろいろ方法はあると思いますが、
今回は比較的簡易な方法をご紹介します。

#今回読み取りたいファイルの形式
例えば以下のようなファイルを読み取りたいとします。

“`:mysettings.env
#読み取りたいファイルです
UserID = 1234
Gender = Male
“`

\#から行末まではコメントとみなされます。
=の左が設定名、右が設定値となっており、一行一つ設定が書かれます。
=の前後に空白が入っている場合は、それらを取り除いて読み取ります。
つまり、設定名や設定値が「UserID 」、「 1234」などにはならないということです。

#使用するメソッド
今回使用するのはjava.util.Properties.loadです。
このメソッドを用いるとwindowsのiniファイルのような
key=value型の書き方をするファイルから設定値を読み取れます。
また、今回はご紹介しませんが、Propertiesクラスにはxmlからファイルを読み取るメソッドもあります。

[公式のリファレン

元記事を表示

toStringメソッドの実装がToStringBuilderクラスを使えば楽になる

# はじめに

クラスのメンバ変数の値をログに出力する際に、toStringメソッドを実装して各メンバ変数の値を含めてString型の値を返すような実装をしていると思う。
メンバ変数が少ないと楽だが、メンバ変数が多い場合は実装するにも手間がかかる。
そのような場合、ToSTringBuilderクラスを使用するとtoStringメソッドの実装が楽になるのでどのように出力されるのか簡単に試してみる。

https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/builder/ToStringBuilder.html

# ToStringBuilderを試してみる

## プリミティブ型のメンバ変数を持つクラス

プリミティブ型のメンバ変数を持つクラスを用意してToStringBuilderを実行してみる。

“`java
public class Student {

int student_number = 0;

String firstName = null;

元記事を表示

XSSF(xlsx)を扱う3種類の方法とメモリ消費量について

注意: 基本的にはこのあたりのドキュメントを読めばよい話ですが、自分用に簡単にまとめておきますね(´・ω・`)

– https://poi.apache.org/components/spreadsheet/
– http://poi.apache.org/components/spreadsheet/how-to.html#xssf_sax_api

JavaでExcelを操作するライブラリであるApache POIでは、HSSFとXSSFという2種類に対応しています。ざっくりいうとHSSFは拡張子がxlsのファイル、XSSFは拡張子がxlsxを扱います。Excel 2007以降はxlsxが標準となっているので、ここではXSSF/xlsxについて記述します (新規システム構築でHSSF/xls対応が必要なことはない…よね?)。

さて、XSSF/xlsxの読み書きに際して、Apache POIは大きく分けて3種類のAPIを用意しています。

① User API

読み書き両方が可能。Google検索でよく引っかかるのは大体これ。いかにもJavaらしいオブジェクト指向的なAPIで

元記事を表示

javaで2つのSetの要素を足したい時の書き方あれこれ

2つのSetの要素を足したい時があり、その時に実装悩んだので共有です。
オススメ度順に上から並べています。

## GuavaのIterablesを使う

一番スッキリしてる気がする

“`java
return Sets.newHashSet(Iterables.concat(hashSet1, hashSet2));
“`

https://guava.dev/releases/21.0/api/docs/com/google/common/collect/Iterables.html#concat-java.lang.Iterable-java.lang.Iterable-

## それぞれStreamにしてからStream.concat()でつなげる

王道な気がする

“`java
return Stream.concat(
hashSet1.stream(),
hashSet2.stream())
.collect(Collectors.toSet());
“`

## SetのStreamをflatMapでStreamをつくる

ちょっとぱ

元記事を表示

WindowsのXAMPPでTOMCATを起動する方法

## 1. 事前準備
– [【初心者でもできる‼】Windows10にJava環境を作る方法(JDK14.0.1)](https://qiita.com/ryome/items/30135570954e36196821)
– 環境変数に `JAVA_HOME` が存在すること

事前準備として、上記リンクの内容が必要です。

## 2. 環境変数設定
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449867/55033dea-262a-99fb-3d4a-2add6a764075.png)

– windowsボタンを押して、`システム環境変数の編集` を検索
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449867/5229790f-24b8-011d-d68a-ab6e9c8a1086.png)

– `環境変数(N)…` をクリック
![03.png](https://qiita

元記事を表示

【Java】Stringクラスでの文字列結合にStringBuilder使わなくてもいいと思う

`+`演算子による`String`の結合が遅いのは、Javaを少しでもかじったことある方であれば皆さんご存知でしょう。
では、次のコードはどちらの方が実行速度が速いと思いますか?

1. `String s = “a” + “b” + “c”`
1. `String s = new StringBuilder(“a”).append(“b”).append(“c”).toString()`

答えば1であり、`StringBuilder`が`+`よりも遅くなる数少ない例です。

# 結論から
大抵の場合はどっち使ってもいいけど、個人的には迷ったら`+`がおすすめです。

# `StringBuilder`と`+`を選択するときの観点
`+`を`StringBuilder`に置き換えたくなったときは、次の観点から考えてみて下さい。

## 可読性
これが一番の理由になってくると思います。
可読性自体は極めて主観的なものであり、人によって見解はどうしても割れてきます。
それでも、`+`よりも`StringBuilder`の方が文字数が多く、多くの場面で可読性は`+`が優位と思います。

#

元記事を表示

Java データ型

#データ型

データ型とは、変数に入れるデータの集類のことです。

データ型は、4つに分かれます。

* 整数
* 小数
* 文字
* ブール型(真偽値型)

#整数系のデータ
整数系のデータ型は,byte,short,int,longの4つ。
__数値の範囲が異なる__

| 型名 | 扱える整数値の範囲 |
| :—: | :—:|
| byte | -256~255 |
| short | -32768~+32767 |
| int | -約20億~+約20億 |
| long | 「京」の桁以上 |

__※longの場合、最後に小文字か大文字の「L」をつける必要がある。__

“`java:
public class Lesson07_01 {
public static void main(String[] args) {
byte var01 = 1;
short var02 = 12345;
int var03 = 1234567890;
long var04 = 123456789000

元記事を表示

様々な言語での日時表記

#背景
日時表現は割とよく使うけど、言語で書き方統一されてなくて正直やり辛いな~~
似てるけどちょっと違う、が多くてよくミスってしまうな〜〜
と思ったので覚書程度にまとめます。

というわけで、いろんな言語で現在の年月日・時刻を「2021年10月02日 23時00分00秒」の形式で出力します。
とりあえずはJava, Ruby, Python3, Go, php。適宜更新します

#Java(8以上)
SE8から加わったDate and Time APIのおかげで実装がぐっと楽になりました。

“`Java:Main.java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
public static void main(String[] args) {
// SE8から加わったクラス。現在の日時を取得
LocalDateTime dateTime = LocalDateTime.now();

// 独自のフォーマットを準

元記事を表示

【Java】継承したクラスをインスタンス化した時のイメージ

##はじめに
Javasilver勉強中に????になったことを自分に刻むためのメモ

##今回の????となった問題
※著作権とかあるかわからないですが、怖いのでそのままではないです。

パッケージ構成
test1
┗Human.java
test2
┗Engineer.java
┗Main.java

“`java:Human.java
package test1;

public class Human {
private String name;

protected String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}
“`

“`java:Engineer.java
package test2;

import test1.Human;

public class Engineer extends Human {
}
“`

“`java:Main.java
package test2;

publi

元記事を表示

Java基本的なまとめ

#クラス
クラスを組み合わせて一つのプログラムを作るイメージ。
クラスが集合体になってJavaの土台となっていくイメージ

![10285001417.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1572216/d299cde8-3c2e-a472-77cf-ac9e7fbfa142.jpeg)

__クラスを定義する__

“`java:Greeting.java
class Greeting{
public static void main(String args[]){

}
}
“`

①class Greetingと定義する。クラスを定義する際、最初にclassと記述しなければならない。

②classの次は、どんな名前のクラスを決定する。クラスの名前のことを「クラス名」という。

__※ファイル名とクラス名は同じにする必要がある。__
__※クラス名の最初は大文字にするのが鉄則。__

③クラス名の後は波括弧を記述する。波括弧で囲まれた部分をブロックと呼ぶ。
波括弧の中に、プロ

元記事を表示

Beanstalk+Docker+JavaアプリでタイムゾーンをJSTに変更したかった日

微妙に嵌ったのでメモ

* AWS Elastic Beanstalk web applications
* Multicontainer Docker
* Java8 Spring Boot

# .ebextensions で設定する方法

“`yml:.ebextensions/timezone.config
# Dockerホスト(EC2インスタンス)のタイムゾーンを変更
commands:
timezone:
command: ln -f -s /usr/share/zoneinfo/Japan /etc/localtime
“`
– EC2インスタンスのタイムゾーン: 変更される
– Dockerコンテナのタイムゾーン: 変更されない
– Javaアプリのタイムゾーン: 変更されない

# Dockerfile に RUN を記述する方法

“`dockerfile:Dockerfile
# ゲストOSのタイムゾーンを変更
RUN ln -f -s /usr/share/zoneinfo/Japan /etc/localtime
ENTRYPOINT [“

元記事を表示

OTHERカテゴリの最新記事