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

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

EclipseでGitを使う方法

![スクリーンショット 2021-05-23 10.07.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1053584/ecc5d39a-2357-db1b-2633-c8f3e1d1db5a.png)
## まえがき

javaについて勉強しているので、アウトプットとして記述していきます。
今回は、Eclipseでgitを使う方法を記載していきます。

## gitにニューリポジトリを作る

[github](https://github.co.jp/)ログインし、ニューリポジトリを作成してください。
右上の+ボタンをクリックすると作成画面に移動します。

## 作成画面

![スクリーンショット 2021-05-22 17.32.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1053584/6cd993d0-faaf-dce5-2f99-3e56fbb0f986.png)

Repository name

元記事を表示

Java アプリで CPUプロファイリング

## 環境

– Vagrant 2.2.16
– Ubuntu 18.04
– OpenJDK 11
– https://github.com/jvm-profiling-tools/perf-map-agent
– https://github.com/brendangregg/FlameGraph

## Linux 環境準備

Vagrant を使って環境を作る。bento/ubuntu-18.04 を使うことにする。Linux perf tools が必要。

Vagrantfile

“`bash
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(“2”) do |config|
config.vm.box = “bento/ubuntu-18.04”
config.vm.synced_folder “./data”, “/vagrant_data”,create:true

config.vm.provider “virtualbox” do |vb|
vb.memory = “1

元記事を表示

【Java】AtCoderのABC-202に参加しました(レート:272→277)。

こんばんは。

2021/5/22に、AtCoderのABC-202に参加しました。
レートは以下の通りとなっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402487/9d4a93cd-a5f9-a356-040e-21978053067e.png)

C問題まで突破しました。
ただ、B問題が一度TLE、C問題は試行錯誤してしまったのと操作ミスで3回エラーになってしまい減点もあった模様です。
レートは272→277にアップ。しょぼいですね。最高レート(278)を次回は更新したい。

###A問題

さいころを3つ振る。
出た目の裏側の数を合計する。

おお、これは簡単だと思い、すぐ解けました。

“`Java

import java.util.Scanner;

public class Main{

public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int

元記事を表示

[Java]日付に関する型の変換まとめ

# はじめに
今回はJavaの日付に関する型の変換についてまとめようと思います。

# Date型とCalendar型
Date型は、日時を扱う際に使用する日付型のクラスです。日時に関するざまざまな処理が可能となります。
Calendar型は、Data型同様日時を扱う際に使用する日付型のクラスです。しかし、Date型よりも加算・減算、日時を比較するなどの処理に特化したクラスになります。

# String型とDate型
## String型→Date型
1. はじめにSimpleDateFormatクラスで日付のフォーマットを指定する。
2. parse(String型)メソッドにより変換
3. 例外処理する必要あり(ParseException)

“`Java
public class FormatChange {
public static void main(String[] args) throws ParseException{
// 日付の定義
String strDate = “2021/5/21”;
// SimpleDateFormatで日付フォ

元記事を表示

【Java SE 11 Programmer I】個人的メモ:総まとめ

#はじめに
私事だがJava SE11 Silverの試験をもうすぐ受ける。
個人的につまづきやすい部分や、「どういう挙動だっけ?」と
分からなくなるときがあるため備忘録として残す。
細かい説明は割愛

#第1章:簡単なJavaプログラムの作成
##クラスの実行コマンド(-cp)
カレントディレクトリ以外にあるクラスファイルを実行
`java -cp build ex.Main`

##import
`test.b.Sample.class`のクラスパスを`bin/test/b/Sample.class`としたとき、
`test.b.Sample.class`のimport文は…

* import test.b.Sample;
* import test.b.*;

binはクラスファイルの配置場所であり、
配置場所はコンパイル時や実行時にクラスパスで指定するものであり、
インポート宣言で指定するものではない

#第2章:Javaの基本データ型と文字列操作
##a = a * a;

“`java
public class Sample {
public static void

元記事を表示

RowやCellをイテレータで処理する場合は未定義の行やセルに気を付ける

# 発生した問題

Apache POIを利用するシステム開発プロジェクトでは「指定したシートを読み込み、2次元配列に変換する」というようなAPIを作成することがあります。自分がかかわっているプロジェクトでもそのようなAPIが提供されており、おおよそ以下のように実装されていました (読み込ませるシートはすべて文字列になっている想定)

“`java
try (Workbook book = WorkbookFactory.create(Paths.get(“target-book.xlsx”).toFile())) {
Sheet sheet = book.getSheet(“target-sheet”);

List> lists = new ArrayList<>();
for (Row row : sheet) {
List list = new ArrayList<>();
for (Cell cell : row) {
list.add(cell

元記事を表示

表示形式が設定された状態の値を取得したい

Excelにはセルの表示形式という機能があって、セルに同じデータを入力していても、セルの表示形式を変更することによって、任意の形式で表示することができます。Apache POIを利用してExcelブックを読み込む際、表示形式が設定された状態の値を取得したい場合、以下のように書けばよいです。

“`Java
DataFormatter formatter = new DataFormatter();
String formattedCellValue = formatter.formatCellValue(cell);
doSomeThing(formattedCellValue);
“`

**環境情報 (pom.xml抜粋)**

“`xml


org.apache.poi
poi
5.0.0

元記事を表示

正規表現メモ

# メモ
## 氏名のように全角のみ入力可としたい
文字プロパティを使う。

### Editor等
“`test.sh
# 漢字
\p{Han}
# カタカナ
\p{Katakana}
# ひらがな
\p{Hiragana}
“`

### Java
Isを付ければOK。

“`test.java
Pattern.compile(“\\p{IsHan}”);
Pattern.compile(“\\p{IsKatakana}”);
Pattern.compile(“\\p{IsHiragana}”);
“`

## 半角カナは拒否したい。
Unicodeのレンジチェックを行う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87538/1c4c69ee-ed77-7679-36cc-7857815a5159.png)

### Editor等
“`test.sh
([\x{ff66}-\x{ff6f}]|[\x{ff71}-\x{ff9f}])
“`

### Java
`

元記事を表示

【Java,AWS】自分のPCで動かしていたJavaのプログラムをAWSで動かしてモダナイゼーション(リプレース)を体験する。

こんばんは。

めっちゃ長いタイトルになった・・でも、件名がそのままやりたい事です。

現在、会社ではシステムリプレースのプロジェクトを担当しています。既存システムの基盤を再構築します。
当然自分の役割は限定的で(いや、それだけ規模が大きいという事ですよ)、自分でゼロから最後までやりたくなってしまいました。
先日の記事にAWS Lambdaを使ったハンズオンセミナーについて書きましたが、それからAWSで色々やってみたい欲も出てきたので、調べながらやってみました。
ソース1本を動かして一言メッセージを出すくらいならできるだろう、という気持ちで着手しました。

一番目的に沿っていそうな以下を参考にしました。

https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/sample-java.html

Lambdaに関数を作ってテストを実行してみたのですが、Javaはサポートされていないようでコードを書くことができませんでした。pythonは大丈夫でしたが、僕はpythonを書けないので一旦断念する事にしました。
結果、Cloud

元記事を表示

【Spring Boot】ローカルではちゃんと動いてたのでVirtualBox上でjarを実行するとTemplateInputException

###現象
* ローカルではSpringBootプロジェクトを実行するとエラーが発生することなくページが表示される
* jarファイルを作ってVirtualBox上のContOSでjarを実行するとログにTemplateInputException(ページはWhiteLabel)

###原因
* ビューの戻り値がおかしかった
* ローカル環境ではなぜかSpringBootが解決してくれてるってこと?

###ソース

“`
public String top(){

return “/sample/top”; // ここの最初の/が必要ない
}
“`

top.htmlがsampleフォルダに入っている。

最初の/があるのと無いのでは意味が変わってくるってことですね。

正しくは

“`java
return “sample/top”;
“`

気をつけよう・・・

元記事を表示

List内の全ての要素を編集、操作するメソッドの紹介、使い方(JAVA)

# List内の全ての要素を編集、操作するメソッドの紹介、使い方(JAVA)
Listの要素を編集する基本的なメソッドとしてremove(指定したインデックスの要素を削除)やset(指定したインデックスに第二引数の値を代入する)等がありますが、
今回はList内の全ての要素に大して処理を行うメソッドを紹介したいと思います。
___
1.[List内の特定の値の要素を削除したい場合](#anchor1)
2.[List内の要素を特定の条件で削除したい場合](#anchor2)
3.[リスト内の全ての要素を変更したい](#anchor3)
4.[List内の全ての要素に対して処理を行いたい場合](#anchor4)
5.[まとめ](#anchor5)
___
## List内の特定の値の要素を削除したい場合
・リスト内の値が”x”の要素を全て削除したい
こういった処理を行いたいときList内の特定の要素の値を削除する方法として、
`List.remove(インデックス)`
とIndexOfメソッドを組

元記事を表示

[Java, SpringBoot, JUnit] API呼び出しの処理をテスト時はスタブに置き換える

# はじめに

業務で以下のような対応をしたので記事にしてみました。

### 対象読者
「〇〇APIをコールする処理を作って!〇〇APIはまだ出来てないから、テストはスタブを作って対応して!」
と言われた経験浅めのJavaプレイヤー

### 概要
スタブを作成して、DIに注入することで「API呼び出しの処理をテスト時はスタブに置き換える」を達成します。
匿名クラス・ラムダ式の使い方とかも簡単にですが、説明します。

### 環境
OS: macOS Catalina 10.15.7
IDE: Pleiades All in One Eclipse 2021
Java: 8
SpringBoot: 2.5.0
JUnit: 5

### 注意事項
本記事執筆者は執筆時点でJava歴・プログラマ歴共に約1年のペーペーです。
もっといい書き方とかいっぱいあると思うので、全て鵜呑みにしてはいけません。
※間違いなどあればご指摘いただけると幸いです。

### 省略していること
1. JUnitの導入方法、書き方
1. APIをコールする具体的な実装
1. SpringBootに関する基礎

元記事を表示

Libertyの性能情報をJsoupで取得

https://qiita.com/sotoiwa/items/15cac258ed90d7861bdf
https://qiita.com/rinaxsumomo/items/9d0776f8a3e506fdebc4

Libertyの性能情報を取得する記事を見て、やってみたら、ハマったことをメモ。

* Jsoup で basic認識のやり方がわからない。
* Jsoup で https にアクセスするとエラーになる。
* Gson で配列の解析方法がわからない。

上記3つは、以下のソースで実現できる。
特に難しいことやってないので、説明は省く。

SSLHelper はこちらから:
https://stackoverflow.com/questions/40742380/how-to-resolve-jsoup-error-unable-to-find-valid-certification-path-to-requested

“`java:SSLHelper.java
package liberty;

import java.security.KeyManagemen

元記事を表示

? true : false構文

“` test.java
boolean ans = (a == 1) ? true : false
“`

(条件文) ? a : b
条件文がtrueを返したらa 取得、false返したらb取得

元記事を表示

文字コード(ASCIIコード)を取得するコードサンプル

# 動機

特定の文字を取り出したい時によくお世話になるコードをいちいち作るのが面倒くさいので備忘録

## 調査コード
“` 調査コード.java
class debug {
public static void main(String[] args) {
for (int i = 33; i < 128; i++) { System.out.println(i + ": " + (char) i); } } } ``` ## やりたかったこと ``` やりたかったこと.java class debug { // 与えられた文字列を1文字ずつ調べて一致するものを取得したい場合、matchやsplitで正規表現をすると遅すぎたのでシンプルに文字だけ比較する。 // 参考: https://blanktar.jp/blog/2015/11/java-character-count // mainから呼びたいのでstaticにしているが、実際に使う時は各クラスに合わせること final public static int searc

元記事を表示

Android Studio でチュートリアルアプリを立ち上げてみる

# この記事で出来る事
・Android Studio の公式ドキュメントにのっとって、「Hello, World!」と表示されるだけのアプリを、エミュレーター上で実行する。

※「そんなん言われなくてもわかるやろ」みたいな事も書きます。
kotlinやAndroid Studioの情報が比較的充実してないなあと感じたので、スマホアプリ初心者のうちから些細な事でも増やしていきたい次第です(普段使ってるrailsが情報に恵まれ過ぎ)。

## 環境
OS: mac OS Catalina
Android Studio のバージョン: 4.1.1
Android Studio はインストール済み
Kotlinプラグイン導入済み

## Android Studio の起動
こいつ(アイコン)をクリックしてアプリを立ち上げる。kawaii。
![asicon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/664322/d6458fe5-3042-64a1-5c9e-3e74b7111606.png)

起動し

元記事を表示

Solr 9.0をソースコードからビルドしてIntelliJでデバッグする

# ソースコードをclone

ソースコードをcloneしてくる。
https://github.com/apache/solr

IntelliJでCloneしたソースコードをプロジェクトとして開いておく。

# ビルド

READMEに書いてある通りビルドコマンドを実行。

“`
./gradlew assemble
“`

実行ファイルなどはルートディレクトリから見て solr/packaging/build/solr-9.0.0-SNAPSHOT/にできる。
ここによく見かけるbinディレクトリとかがある。

“`
$ ls
LICENSE buildSrc gradle.properties settings.gradle
README.md dev-docs gradlew solr
build dev-tools gradlew.bat versions.lock
build.gradle gradle help versions.props
$ ls solr/packaging/build/solr-9.0.0-SNAPSH

元記事を表示

[Java]誕生日と現在日から年齢を求める

# はじめに
今回はユーザ入力により誕生日を取得し、現在日と比較することで年齢を計算するプログラムを考えていきます。

# 計算の流れ
誕生日の計算の方法は様々あるようですが、今回は「驚き早技で求めました!」みたいなものではなく、地道に計算するものとなります。
それでは早速流れを確認していきます。
1. [現在年ー生まれ年]により基準となる年齢を計算する。
2. 今年誕生日を迎えているかを判断する。
  2.1. [現在月 < 誕生月]であれば年齢を−1する。   2.2. [現在月 = 誕生月]ではあるが[現在日 < 誕生日]であれば年齢−1する。 以上が、計算の流れになります。やること自体は簡単ですよね。 # 計算部分のコード それでは実際に年齢計算をするコードを確認していきましょう。 今回の年齢計算メソッドは、Date型で誕生日、現在日の2つの引数をとるものとします。 最初に引数で与えられたDate型の変数をCalendar型に変換します。 その後の計算部分は全てCalendar型で行っています。 実際にコードを動かす際は、Date型やCalendar型のパッケージをインポ

元記事を表示

【pythonとJava比較】ループでメソッド呼び出し

pythonをやり始めてrange()っていいなと思ったのでJavaと比較して書いてみた。
※対象の処理だけならpythonだと短く書けるがJavaと同じことができる状態にした。

# range()でメソッド呼び出し

#### python

“`python:test.py
import sys

class Test:
“””
テストクラス
“””

def main(args: list) -> None:
“””
メイン処理
:param args: コマンドライン引数
“””
[Test.test(i) for i in range(3)]
def test(intVal: int) -> None:
“””
呼び出すメソッド
:param intVal: パラメータ
“””
print(intVal)

if __name__ == “__main__”:
arg

元記事を表示

Listの要素を追加、削除する方法(JAVA)

# Listの要素を追加、削除する方法(JAVA)
今回はListの要素を追加、削除する方法を紹介させて頂きます。
___
1.[Listに要素を追加したい場合](#anchor1)
2.[Listの要素を削除したい場合](#anchor2)
3.[削除したい要素のインデックスが分からない場合](#anchor3)
4.[削除したい要素が複数存在する場合](#anchor4)
5.[List内の全ての要素を削除したい場合](#anchor5)
6.[まとめ](#anchor6)
___

## Listに要素を追加したい場合
配列と違い、Listは初期化後に要素数を増やすことが可能です。
Listに要素を追加する場合はaddメソッドを利用します。
` List.add(追加したい要素) `
使用例

“` JAVA
public class Main {
public static void main(String[] args) {
List list = new Arra

元記事を表示

OTHERカテゴリの最新記事