- 1. 僕のDOM(Java)
- 2. 【資格】Java Silver SE11 合格体験記
- 3. Go/Java は Windows の MAX_PATH(260) を超えるファイルにアクセスできるのか
- 4. Ruby と Perl と Java と Python で解く AtCoder ARC 086 C ハッシュのソート
- 5. Listを利用した組み合わせパターンの列挙
- 6. Selenium + REST-Assured を組み合わせた自動 API テスト
- 7. Visual Studio CodeによるSpring Boot2 Webアプリ開発 SQLServer接続編
- 8. Ruby と Perl と Java と Python で解く AtCoder ABC 107 B 文字列操作
- 9. UbuntuでJAVA_HOMEの設定
- 10. バージョン違いによるSpring Bootの機能について
- 11. Resilience4j の RateLimiter を用いた Rate-Limitting
- 12. Ubuntuで、複数のJavaをインストールして切替を行う
- 13. 【Mac】VSCode 開発環境構築 (Java、Gradle、Node.js)
- 14. javaとpythonの違い(メモ)
- 15. micronautドキュメント目次メモ
- 16. List を任意の数に分割する
- 17. Java Springで検索フォームを作るシンプルな書き方 | クラスを理解する
- 18. Visual Studio CodeによるSpring Boot2 Webアプリ開発 HelloWorld作成編
- 19. macのEclipseで補完機能を使う
- 20. 【Java】 String型の正しい比較
僕のDOM(Java)
自分用の備忘録
##DOMライブラリは何に使うの?
XMLを解析するためのライブラリ##今回使用するサンプルのXML
[こちら](http://www.sotechsha.co.jp/xml/sample.xml)のサイトにあった和歌のXMLを拝借させていただきます。“`xml
<万葉集>
<巻 no="1"><歌>
<歌番号>8歌番号>
<原文>熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜原文>
<作者>額田王(ぬかたのおおきみ)作者>
<読み>
熟田津(にきたつ)に、船(ふな)乗りせむと、月待てば、潮もかなひぬ、今は漕(こ)ぎ出(い)でな
読み>
<イメージ>image/m0008.jpgイメージ>
<意味>熟田津(にきたつ)で、船を出そうと月を待っていると、いよいよ潮の流れも良くなってきた。
さあ、いまこそ船出するのです。意味>
歌>
<歌>
<歌番号>20歌番号>
<原
【資格】Java Silver SE11 合格体験記
#はじめに
2020年の2月にJava Silver SE11に合格したので、受験動機や勉強期間、勉強方法など合格までの流れを書いていこうと思います。###受験概要
|受験日|合格ライン|正答率|結果|
|:-:|:-:|:-:|:-:|
|2020年2月27日|63%|85%|合格|#目次
1. 筆者のレベル感
2. 受験動機
3. 勉強期間と勉強方法
4. 受験当日
5. まとめ#1.私のレベル感
某専門学校卒の2年目プログラマー(受験当時)
1年半ほど業務でC#の開発案件を経験#2.受験動機
私の所属する部署の上長に「年度内にせめてJava Silverを取得してね」と言われ、
基礎を勉強する良い機会だと思い受験を決めました。
~~資格取得の一時金目当てじゃないよ(小声)~~#3.勉強期間と勉強方法
期間は2ヶ月間、勉強方法は主に黒本の問題をひたすら解き、
問題のコードを読んだだけで実行結果のイメージがしづらいコードについては実際にコードを書いて動かしてみるという流れで行いました。使用した黒本↓(
Go/Java は Windows の MAX_PATH(260) を超えるファイルにアクセスできるのか
調査した結果、特に何もしなくてもアクセスできるようだった。
Windows の場合 CreateFile API を通じてさらにパスのプリフィクスに \\?\ をつける(「\\?\C:\Windows\test.txt」みたいに)必要があるが、Go/Java だと内部でやってくれる模様。まずは Go の場合のテスト
“`go:main.go
package mainimport (
“fmt”
“io/ioutil”
“os”“github.com/blono/win” // Fork of lxn/win see https://qiita.com/manymanyuni/items/c41f5bf0fd141e299336
)func main() {
longPath := `C:\Users\manymanyuni\Desktop\long\loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong\loo
Ruby と Perl と Java と Python で解く AtCoder ARC 086 C ハッシュのソート
# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder Regular Contest 086 C – Not so Diverse](https://atcoder.jp/contests/arc086/tasks/arc086_a)*
Difficulty: 431今回のテーマ、ハッシュのソート
# Ruby
重複したリストと言えば、ハッシュですよね。“`ruby.rb
n, k = gets.split.map(&:to_i)
a = gets.split.map(&:to_i)
h = Hash.new(0)
a.each do |x|
h[x] += 1
end
puts n – h.values.sort.reverse[0, k].inject(:
Listを利用した組み合わせパターンの列挙
#1.概要
これまで組み合わせの全パターンを取得する際には、1文字単位でのアナグラム方式で順列の列挙を行っていた。
例、A.B.C では以下の 3! (= 6) パターン“`java
ABC
ACB
BAC
BCA
CAB
CBA
“`
参考:全組み合わせの列挙 Javaしかし、上記の方法だと2文字以上の値をひとつの要素として扱いたいときに上手くいかなかった。(※例えば、4.8.10 の場合、10をひとつの要素としたいが、1文字単位で組み換えが起こるため、以下のように4.8.1.0 の 4! パターンで列挙されてしまう)。
“`java
4810
4801
4180
4108
4081
4018
8410
8401
8140
8104…
以下略
“`そこで、文字数に関わらない順列の列挙をどうにかして実現できないかと考えた。
#2.Listを利用した要素の列挙
上記参考ではcharの集合であるStringを利用して組み合わせパ
Selenium + REST-Assured を組み合わせた自動 API テスト
Web API を開発しているときに、API 単体のテストであれば様々な UnitTest ツールを使用してテストの自動化を行う事ができますが、Web サイトとのインタラクションが必要な場合にちょっと困ります。
一例としては、OAuth などの認証が前提のAPI処理を書く時などです。SPA などで構築されていてブラウザで表示しないと意図した動作にならないケースなどでは、どうしてもブラウザ経由でアクセスする必要があります。今回、Webの自動テストに **Selenium** 、API のテストに **REST-Assured** を用いてテストの自動化を行ってみたので、簡単にまとめてみます。
# Tools
## Selenium
https://github.com/SeleniumHQ/selenium
言わずと知れたWeb Testツールです。
Java の API も存在するので、Java から直接操作することが出来ます。## REST-Assured
https://github.com/rest-assured/rest-assured
Method Chain 的
Visual Studio CodeによるSpring Boot2 Webアプリ開発 SQLServer接続編
#はじめに
[こちら](https://qiita.com/t_skri/items/4e3c11050f93e4761dda)で作成したSQLServer接続WebアプリのSpring Boot版です。#環境
OS:Windows 10 Pro 64bit
DB:SQL Server 2019(Cent OS 8 on Hyper-V)
Editor:Visual Studio Code 1.44.2
JDK:AdoptOpenJDK 11.0.6+10 x64#ひな型作成
spring initializr[(https://start.spring.io/)](https://start.spring.io/)で、以下の設定で作成しました。![2020-05-05 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591423/6fc9fd3f-c0f8-d796-829c-9ac19fa0d896.png)
作成したひな型を「D:\JAVA\Project」に展開します。
#
Ruby と Perl と Java と Python で解く AtCoder ABC 107 B 文字列操作
# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder Beginner Contest 107 B – Grid Compression](https://atcoder.jp/contests/abc107/tasks/abc107_b)*
Difficulty: 434今回のテーマ、文字列操作
# Ruby
“`ruby.rb
h, w = gets.split.map(&:to_i)
a = []
h.times do |i|
s = gets.chomp
a.push(s) if s.index(‘#’)
end
(w – 1).downto(0) do |i|
if a.all?{|x| x[i] == ‘.’}
a.each do |x
UbuntuでJAVA_HOMEの設定
UbuntuでJAVA_HOMEの設定方法について記載する。
– javaは、alternativesを経由している前提。
– /usr/bin/java -> /etc/alternatives/java -> (実際のjavaのロケーション)
– PATHは、/usr/binに通っているので、特に対応しない。
– 複数のjavaを切り替える場合もsourceコマンドを実行することで対応できるようにしておく。
– 切り替え方は、こちらを参照。「 [Ubuntuで、複数のJavaをインストールして切替を行う](https://qiita.com/yochapan/items/af86a320035f8db7daf4)」# やり方
### /etc/profle.d配下にjava_home.shを作成– /etc/profile.d配下のshellは、ログイン時に実行される。
“`sh
sudo vi /etc/profile.d/java_home.sh
“`### JAVA_HOMEのエクスポートを記載
– javaコマンドの絶対
バージョン違いによるSpring Bootの機能について
[前回](https://qiita.com/wataru908/items/239404926f926743e65b) の続きです。
今回はSpring Boot2になったことで、使用できるメソッド等が変更されていることについてです。#変更点
##1.findOne
教材には、findOneメソッドを使用しているが、これをそのまま使用すると、
findByIdメソッドへの変更を促されます。
また、戻り値もOptional型になっています。“`java:教材(以前のバージョン)
public MeetingRoom findMeetingRoom(Integer roomId) {
return meetingRoomRepository.findOne(roomId);
}
“`“`java:SpringBoot2変更点
public OptionalfindMeetingRoom(Integer roomId) { return meetingRoomRepository.findById(roomId);
}
“`Opt
Resilience4j の RateLimiter を用いた Rate-Limitting
https://github.com/resilience4j/resilience4j
resilience4j は主に Java 向けの Circuit Breaker 実装として著名なものになる。Rate-Limitting 関連の機能も存在している。
https://github.com/resilience4j/resilience4j#ratelimiter
以下では以下のサンプルプログラムをベースに検証を行っている。
https://github.com/resilience4j/resilience4j-spring-boot2-demo
# Configuration
## build.gradleSpring Boot と連携をする場合は `io.github.resilience4j:resilience4j-spring-boot2` を使用する。
“`
dependencies {
compile(‘org.springframework.boot:spring-boot-starter-webflux’)
Ubuntuで、複数のJavaをインストールして切替を行う
– 複数のjavaをインストールして切替を行う方法について記載する。
– Ubuntu 16.04で実施。
– java8とjava9をインストールして切り替えてみる。# やり方
## インストールするjavaの検索“`sh
$ sudo apt search openjdk-.*-jdk$openjdk-8-jdk/xenial-updates,xenial-security 8u252-b09-1~16.04 amd64
OpenJDK Development Kit (JDK)openjdk-9-jdk/xenial 9~b114-0ubuntu1 amd64
OpenJDK Development Kit (JDK)
“`## javaのインストール
### java8のインストール
“`sh
$ sudo apt install openjdk-8-jdk
“`
### java9のインストール
“`sh
$ sudo apt install openjdk-9-jdk
“`## javaバージョンの確認
“`sh
$ java
【Mac】VSCode 開発環境構築 (Java、Gradle、Node.js)
## 1. Java、Gradle、Nodeインストール
### brewインストール
1)以下を実行してインストールする。“`shell:ターミナル
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
“`### Javaインストール
1)下記のサイトからJava SE Development Kit *u*** → Mac OS X → jdk-*u***-macosx-x64.dmg をダウンロードし、インストーラを実行する。
[Java8(Archive)](https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html)
[Java9(Archive)](https://www.oracle.com/java/technologies/javase/javase9-archive-downloads.html)2
javaとpythonの違い(メモ)
#はじめに
小生はこれまで書いてきたステップ数、時間ではJavaが圧倒的に多いです。
昨今、Pythonがかっこいいので勉強しています。
Javaとの違いをわかりしだいメモしていきたいです。#インクリメント
pythonにはインクリメント演算子(++)が無い。#オーバーロード
pythonはオーバーロードしたメソッド(同名だが引数の構成が異なる
メソッド)が作れない。#for文
“`java:Java
for(int i=0;i<10;i++){ //処理 } ``` ```Python:Python for i in range(10): #処理 ``` #クラスメソッドの引数 pythonはクラスメソッドの第1引数は自分自身のオブジェクトであり、 慣習的にselfが使用される。 #インスタンス変数 pythonはインスタンス変数を使う時は、クラス内であっても明示的に クラスオブジェクトを示す変数名で修飾しないといけない。(インスタンスメソッドも同様) ```java:Java class Hoge{ int arg1; p
micronautドキュメント目次メモ
# これは何?
micronaut の[ユーザーガイド](http://docs.micronaut.io/latest/guide/index.html)のどこをを読めばいいかのメモ。
対象は ver1.3.4 のドキュメント。# 1 Introduction
いわゆる「説明」。背景の説明あり。
## 1.1 What’s New?
過去バージョンからの変更履歴。依存ライブラリの記述あり。
# 2 Quick Start
2章全体で、 Hello world アプリを作るまでの手順を解説。
## 2.1 Build/Install the CLI
さまざまなインストール方法の解説。
### 2.1.1 Install with Sdkman
中略。
### 2.1.2 Install with Homebrew
中略。
### 2.1.3 Install with MacPorts
中略。
### 2.1.4 Install through Binary on Windows
中略。
### 2.1.5 Building from Source
List を任意の数に分割する
#結論
org.apache.commons.collections4.ListUtils#partition() を利用する。
##Javadoc
https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/ListUtils.html#partition-java.util.List-int-##Maven
https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.4“`xml
org.apache.commons
commons-collections4
Java Springで検索フォームを作るシンプルな書き方 | クラスを理解する
シンプルな検索フォームを作る書き方です。クラスを理解するためのものです。
GitHubでコードは公開しているので気になる人はクローンしてみてください。
[GitHubリポジトリはこちら](https://github.com/megumi-622/responseDB)## こちらの環境
– PC: macOS Catalina 10.15.4
– IDE: [Eclipse](https://mergedoc.osdn.jp/) 2020-03(4.15.0)
– SQL: [PostgreSQL](https://www.postgresql.jp/download) 12.2
– SQLツール: [DBeaver](https://dbeaver.io/) 7.0.3.202004191823ツールは全て無料で使えます。
ターミナルでSQLを操作できるのであれば、SQLツールはなくても大丈夫です。## データベース
GitHubにデータベース作成用と検索用データのsqlファイルを用意してあります。
環境に合わせて実行してください。## HTML
HTMLタグに`
Visual Studio CodeによるSpring Boot2 Webアプリ開発 HelloWorld作成編
#はじめに
Visual Studio CodeでSpring Boot2のWebアプリ開発をしていきます。
以前[こちら](https://qiita.com/t_skri/items/24d0d353771735b453f7)で作成したHelloWorldのSpring Boot版です。#開発環境構築
[こちら](https://qiita.com/t_skri/items/b16cd5a8868398ca0fc2)を参考に開発環境を構築して下さい。
Maven、Tomcatは不要です。
拡張機能の「Spring Boot Extension Pack」を追加します。
![springex.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591423/ecf34820-40e7-bcc0-0936-a7c22fb48878.jpeg)#環境
OS:Windows 10 Pro 64bit
Editor:Visual Studio Code 1.44.2
JDK:AdoptOpenJDK 11.
macのEclipseで補完機能を使う
今回はJavaの勉強を始めようとEclipseをMacに入れた時には補完機能が使えなかったため記録
Eclipseにデフォルトで設定されている補完機能は、contorol + スペース なのだがMacでは使えず、、、
調べた結果記事はいっぱいあったのですぐに解決。
一応やり方を載せとくEclipseの環境設定 → 一般 → キー → コンテンツ・アシストで検索 すると下記のように
今回は、シフト + スペース で設定したかったため
バインディングと書かれているところに、シフト + スペース と記入。これで補完機能使えるようになっている。
他にもやり方があると思うが参考に!!
【Java】 String型の正しい比較
#String型比較を深堀してみる
String型の値の比較について、整理しました。##等比較の方法
###1. ==
・プリミティブ型では値の比較を行う。
・オブジェクト型ではオブジェクトの参照値を比較し、オブジェクトが同一か判断する。###2. equals()
オブジェクト型でのみ使用可能で、オブジェクトの内容比較を行い、オブジェクトが同値か判断する。
※Objectクラスにequalsが定義されている。
Stringクラスではoverrideしている。つまり、Strng型は参照型のオブジェクトだから、equalsを使えばOKですね。
##検証(==だと本当に比較できないのか)
“`java:StringSample.java
String str1 = “A”;
String str2 = “A”;
String str3 = new String(“A”);
System.out.println(str1.hashCode());
System.out.println(str2.hashCode());