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

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

Python,Ruby,PHP,Java,JavaScript,Perlの連想配列の比較

Python,Ruby,PHP,Java,JavaScript,Perlの連想配列の比較

# Python

https://qiita.com/hz1_d/items/407dd13f90a8a4533d23

# Ruby

https://qiita.com/ryouya3948/items/5ea2049abfd92eb1ded7

# PHP

https://qiita.com/shizen-shin/items/8383e27c7cf16c0ccb4a

# Java

https://qiita.com/taropon_wwwww/items/95477174ac16287c9744

# JavaScript

https://qiita.com/yrn03m/items/87e223acc6e733b50429

# Perl

https://perlzemi.com/blog/20161013147635.html

元記事を表示

【Java】Stream API 1000本ノック

# 環境
java 17 (amazon corretto)

# filter
リストの中から任意の条件に合致する要素だけをフィルタリングする。

“`java
Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
.filter(e -> e % 2 == 0)
.forEach(System.out::println);
“`

“`
2
4
6
8
10
“`

# map
リストの中身を加工して返す。

“`java
Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
.map(e -> e * 100)
.forEach(System.out::println);
“`

“`
100
200
300
400
500
600
700
800
900
1000
“`

# mapToInt
Stringのリストをintに変換して返す。
“`ja

元記事を表示

JavaでExcelをいじるメモ

# 先に結論

* Poiライブラリ を使う
* 日本語は文字化け・警告が出る
* csvファイルを使う
* ひとまず使える

日本語が入っていないファイルー>Poiを使う(警告は無視する)
日本語が入っている->csvで頑張る。

# Poi

を参考にIntelliJにPoiをインストールし

JavaでExcelファイルの読み込み・作成・出力方法を解説!

を参考に実行した。

結果

“`
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console…
value_name �F �c��
value_sex �F �j
value_age �F 26��
“`
Log4j2というロガーがないのか・・・よく

元記事を表示

Java Staticについて

# 初め
今回は、JavaのStatic変数のについて短くメモしていきたいと思います。
以下は自分のブログです。

https://anveloper.com/
# 特徴
– staticがついている変数やメソッドは全てのインスタンスが共有する。
– プログラム起動時に1回のみ、メモリに割り付けられる。
– クラス名前で直接に参照ができる。
– Person.nameのようにインスタンス化をしなくても利用可能になる。
– 静的ファクトリメソッドパターンやシングルトンパターンの構築に使われる。
– Java8の以前にはPermang generation area領域に保存されたが、Java8以降にはMetaspaceに保存し、できるだけGCされるように最適化している。
# Static変数
“`java:qiita.rb
class NakamuraFamily {
String lastname = “中村”;
}
“`
“`java:qiita.rb
public class Sample {
public static void main(Strin

元記事を表示

Javaでファイルを新規作成し処理する。

## 流れ
ファイル作成をする時、同名のファイルが存在することがあるので、それを考慮した流れになっています。

1. ファイル取得
2. ファイルが無ければ作成。既にあれば、処理へ。
3. 処理

## 説明
### ファイル取得
Fileクラスのコンストラクタにパス名を渡して、任意のファイルをFileオブジェクトに変換します。
“`java
String fileName = “任意のファイル名”;

//保存場所を指定している
String uri = “dir/”+fileName;

//ファイル作成のためのPathオブジェクトを作成
Path path = Paths.get(uri);

//ファイル参照
File file = new File(uri);
“`

### ファイル作成
“`java
try {
//ファイルの新規作成
Files.createFile(path);
} catch (IOException e) {

元記事を表示

Java と JavaScript の違い(TypeScriptもあるよ!)

突然ですが皆さん、こう思ったことはありませんか?

**結局、Java と JavaScript の違いってなんなの??**

人によって、ハムとハムスターだったり、そばと焼きそばだったりします。
(ついでにTypeScriptのことを「型焼きそば」と言ったり……)

でもそれって、ニュアンス的に正確じゃない気がします。
なので今回は、Java と JavaScript(ついでにTypeScript) の違いを適切に解説します!

一応、出来る限り正確に書きますが、間違いがあればコメントいただけると幸いです…

# Java と JavaScript の違い

### 使用用途

* Java
– 主にサーバサイドの言語。処理ロジックを担当することが多い。

* JavaScript
– 現状、どちらでも扱うことが出来る。[^1]
[^1]: サーバサイドでJavaScriptを扱うには、Node.js等が必要です

* TypeScript
– JavaScript 同様、現状はどちらでも扱うことが出来る。[^2]
[

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの配列の比較

Python,Ruby,PHP,Java,JavaScript,Perlの配列の比較

# Python

https://qiita.com/gouwan/items/c83b47ce1b7c77cce7c5

# Ruby

https://qiita.com/may88seiji/items/ce9396a4c267a3d449ae

# PHP

https://qiita.com/tokutoku393/items/ea2a61765eda1dee8f2e

# Java

https://qiita.com/sentral1110728/items/532de46714b7215a2e99

# JavaScript

https://qiita.com/takeshisakuma/items/b23b1a748098f30e2ff2

# Perl

https://perlzemi.com/blog/20161012147627.html

元記事を表示

Keycloakで認証したユーザー名を大文字にする

# はじめに
Spring Boot ベースのWebアプリケーションで、Keycloakを標準のまま(ユーザーストレージなどのカスタマイズなし)利用していると、大文字のユーザー名でも、小文字で保存されてしまう問題に直面しました。[他の方の記事](https://qiita.com/rururu_kenken/items/7b334275560e4520863f)にもあるように、これが標準の動きっぽい。
システムのユーザー名は大文字英数字で構成されており、トークンの「preferred_username」クレームの値を画面表示などに利用しているため、回避策を調べました。

## 実行環境
– keycloak 12.0.4
– Java11
– Spring Security 5.4.5
– Spring Boot 2.4.3

# 回避策
Spring Security のカスタマイズ箇所を利用し、ユーザ名を大文字に変換する[OidcUserService](https://spring.pleiades.io/spring-security/site/docs/current/api

元記事を表示

【Angularアプリケーション開発 #12】APIを作成しよう

# はじめに
タイトルにAngularと書いていますが、今回はAngularのことは出てきません。
java側で各リクエストに応じたAPIを作ってきたのでご紹介します。

## 前提
従業員テーブルに対してCRUDになります。
id,nameをカラムに持っています。
APIのメソッド名は適当につけています。参考にしないでください。

## 各種API

### 取得
テーブルに存在するレコードを全て取得

“`java
// 取得
@GetMapping(“api/getUserInfo”)
public List getHoge() {
List> userInfoListMap;

List userInfoList = new ArrayList();

userInfoListMap = jdbcTemplate.queryForList(“select id,name from userinfo”);

fo

元記事を表示

【Java / Kotlin】Entityでよく使うカラムを共通化する

## はじめに

Entityでよく使うカラムの共通化の仕方について、
考えたことをまとめておきます。

## Javaで共通化

各テーブルに共通して存在するカラム(たとえば `created_at`とか)は抽象クラスに切り出し。

– 抽象クラス

“`java:CommonEntity.java
/**
* 共通Entity(各テーブルで保持する項目)
*/
@MappedSuperclass
@Data
public abstract class CommonEntity {

@Column(updatable = false)
private String createdBy;
@Column(updatable = false)
private LocalDateTime createdAt;
private String updatedBy;
private LocalDateTime updatedAt;

// 登録前に共通的に実行されるメソッド(呼び出し不要)
@PrePersist
public void preInse

元記事を表示

Springのバリデーションで任意の順番(タイミング)で処理させる方法(@GroupSequence)

備忘です。苦労したのと色々よくわからないので。

例えば以下のように一つの項目にいくつかのバリデーションが設定されていたとします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631579/7e7312f8-a7ea-d1d3-2feb-947959669ef1.png)

このプログラムを起動させ、何も入力せずに、処理を行おうとするとバリデーションが働いて以下のような赤文字のエラーが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631579/773bdc66-4d18-80f4-ab5a-9d8d1a471591.png)

この社員番号ですが、何も入力していない場合は、「社員番号を入力してください(@NoBlank)」だけ表示させたい(「数字を入力してください」と「10文字以内で入力してください」は表示させない)場合の記事です。

以下方法。
こんな感じでインター

元記事を表示

RubyからJavaに移行する時の考え方

# 主な違い
今までrubyを学習してきて、仕事でjavaを使うことになりました。
rubyと違うところがあったので、自分なりにまとめてみたいと思います。

`Java`コンパイラによってコンパイルされる静的型付け言語
`Ruby`インタプリタによって解釈されるスクリプト言語で、動的型付け言語

上記が一般的に説明されている説明となります。

自分の言葉で説明すると、
`Java`は型を宣言するのでコードが長くなるが、大規模開発などたくさんの人が関わる開発に向いている。習得の難易度は`Ruby`よりも高め。`Ruby`は、型を宣言する必要がなく短くて直感的にコードを書ける。アジャイル開発に向いている。習得の難易度が低いことや、日本語のドキュメントが充実しているので、プログラム初心者に向いている。

# システムの違い

サーバーやデータベースの違いについて、表を作りました。(下記)

[]()![JavaとRailsの比較最終-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2661107/f5f88

元記事を表示

ABC266A~Eの解答[Java]

## はじめに
今回も4完で、Eはコンテスト後に解いた物です。

では、見ていきましょう。

## A – Middle Letter
問題文は[こちら](https://atcoder.jp/contests/abc266/tasks/abc266_a)

真ん中を出力する問題ですね。
たとえば5文字の時は3文字目なわけですが、3文字目のindexに着目しましょう。
先頭から0、1、・・・と数えるので、3文字目は2です。
ではN文字のときはどうでしょうか。文字列の長さは奇数だと制約にあるので、(N+1)/2文字目だとわかります。さらにindexは(N-1)/2になります。ということで、Sをchar型配列として受け取ってS[(S.length-1)/2]を出力すれば良いです。
なお、S.lengthは奇数なので、(S.length-1)/2もS.length/2も同じ値になります(小数点以下は切り捨てられるので)。
“`A.java
class Main{

static Library System = new Library(java.lang.System.in,java.

元記事を表示

ロケールによって小数点がピリオドかコンマかが変わるので数値⇔文字列変換に注意しよう

ロケールによって数値表現が変わるので注意しようってお話です
特にユーザー端末で実行されるアプリでは、様々なロケールでの動作を考慮する必要があります

日本語や英語では小数点に「.」(ピリオド)を使用するため、これ以外の表現が使われることを意識していない人も多いのではないでしょうか?イタリア、ドイツ、フランス、ロシア語などでは「,」(コンマ)が使われるため、変換時に「.」(ピリオド)が使われることを前提にしていると不具合になってしまう場合があります。

ということで、以下を実行してみましょう。

“`kotlin
fun main() {
Locale.setDefault(Locale.JAPAN)
println(“%.1f”.format(1.1))
println(1.1.toString())
println(“1.1”.toDoubleOrNull())
println(“1,1”.toDoubleOrNull())
println(DecimalFormat().parse(“1,1”).toDouble())

p

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの繰り返し構文の比較

Python,Ruby,PHP,Java,JavaScript,Perlの繰り返し構文の比較

# Python

https://qiita.com/atsui-ocha/items/5b8e4f973b36e78fdaf1

# Ruby

https://qiita.com/beanzou/items/6231d3d0a926765ddbb4

# PHP

https://qiita.com/rana_kualu/items/0abd2b6f69527b0b4b92

# Java

https://qiita.com/morioheisei/items/e686e33b60c6a60e87f0

# JavaScript

https://qiita.com/tetsuyakojima/items/fd63f91a4e34d6bad28b

# Perl

https://perlzemi.com/blog/20170521149524.html

元記事を表示

A problem tracing experience of application support

# Symptom
A user reported that in the saved report of a application, all fields related to time are changed, changed to 1 hour earlier to original value. This happened recently and there was no problem in the past.

Simple to say, the application is build by Spring Boot, and details are:
– Java 8
– Spring MCV
– Spring Data JPA
– JPA (By Hibernate)
– MySQL

# Investigation direction: Time zone
In the UK, time zone will be changed 2 times per year. And there is one hour difference between two time

元記事を表示

Javaの学習 ~String~

### Stringクラス
java.lang.Stringクラスのこと。配列を内部に隠蔽しているため、文字列操作が可能なメソッドを提供することができます。

#### Stringクラスのインスタンス生成

“`java
String a = new String(“こんにちは”); //newを使う

String b = “こんばんは”; //newは省略できる

//☆文字列であるため、ダブルクォーテーション!
“`
#### Stringオブジェクトは不変な(immutable)オブジェクト
オブジェクトに一度セットしたフィールドの値を、後から変更できるオブジェクトを「可変なオブジェクト」、変更できないオブジェクトを「不変なオブジェクト」と呼びます。
その「不変なオブジェクト」の代表例がStringオブジェクトです。

不変と聞くと全く中身を変えることができないように感じますが、
以下のコードで見てみると犬が猫に変わっていることが分かります。
“`java
String str = “犬”;
str = “猫”;
System.out.println(str);

元記事を表示

IBM Cloud Code Engineにアプリケーションをソースコードから直接デプロイしてみる

# はじめに

前回まででIBM Cloud Code Engine上にPlay Frameworkで作ったアプリケーションをデプロイしてみましたが、そのままだとコード開発の後にデプロイを行うまでかなりの手動ステップを必要とします。

– `sbt dist`でパッケージを作成
– zipファイルを展開
– dockerイメージを作成
– container registryへpush

これを解決する手段としてはまずCI/CDパイプラインを導入することが考えられますが、IBM Cloud Code Engineではアプリケーションをデプロイするのに作成済みのイメージを使用する他に、直接ソースコードからイメージをビルドしてデプロイする方法も提供しています。今回はそちらの機能を使って上記の手動ステップを行わずにアプリケーションをデプロイする方法を探ってみます。

# GitHubにリポジトリを作成

まずはGitHub上に空のリポジトリを作成します。Repositoriesのタブから”New”をクリックして以下の画面で名前をつけます。

![スクリーンショット 2021-12-24 1

元記事を表示

正規表現による複数行の置換(VSCodeでBuilderパターンをコンストラクタに置換)

# やりたいこと

“`java
// 現状
Foo.builder()
.hoge(“a”)
.huga(10)
.build();

// こうしたい
new Foo(“a”, 10);
“`

例としてJavaのコードを扱います。Builderパターン[^builder]をやめてコンストラクタでインスタンスを生成したいという設定です。
本記事はVSCodeで検証しました。(ツールによっては`\n`に非対応ということもあるかもしれません。)

# 「現状」とマッチングする正規表現(シンプルなケース)
“`text:「現状」とマッチングする正規表現
Foo\.builder\(\)[\s\S\n]*?build\(\);

(見やすさのために改行を入れると)
Foo\.builder\(\)
[\s\S\n]*?
build\(\);
“`

正規表現[^dotnet]がどう働いているかというと、
– `Foo\.builder\(\)`で始まる部分を指定します。
– `[\s\S\n]`は改行コード含む全文字を示します[^ref_q

元記事を表示

【Java】throwとthrowsの使い方を簡潔に説明してみる

# はじめに

今回の記事はthrow、throwsの解説を簡潔に書くことを目的としているため、検査例外・非検査例外とは何か等の細かい内容は省かせていただきます。お許しを。

# 実行環境
OS:Windows10 バージョン20H2
言語:Java 8
使用ツール:Spring Tool Suite 4

## 1. throw
### 1-1. throwとは

***例外を意図的に起こすことが出来る処理のこと。***

### 1-2. 使い方
throw new 例外クラス名();
### 1-3. 使用例
“`Sample.java
public class Sample {
public void hello(String name) {
if (name == null) {
throw new IllegalArgumentException();
}
System.out.println(name + “さん、こんにちは!”);
}
}
“`

“`Main.java
public class Main {
publi

元記事を表示

OTHERカテゴリの最新記事