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

JAVA関連のことを調べてみた2020年10月13日
目次

Jmeterでグラフィカルに変幻自在なアクセス負荷を設定する(前編)

# はじめに

Jmeterは一般的にWebシステムに一定のアクセス負荷をかける試験ツールです。
通常機能ではアクセス負荷量の上げ下げが困難ですが、外部ライブラリ(Throughput Shaping Timer)を組み込むことでグラフィカルかつ簡単に実現できたので紹介します。

# Throughput Shaping Timer で実現できること

– 自由度の高いアクセス負荷の制御ができる
– 1台のJmeterで複数のスレッドグループ毎にアクセス負荷を制御できる
![sample_image](https://jmeter-plugins.org/img/wiki/throughput_shaping_timer1.png)
↑アクセス負荷量の制御イメージ 公式ページより

実際に負荷試験をする際に活用できるケースとして、以下のような例が当てはまると思います。

– 試験中に負荷量を定常量から急上昇(急降下)させてシステムの安定性を確認したい
– アクセス量に波があるシステムの試験をしたい
– スレッドグループ(アクセス導線)毎にきめ細やかな試験を同時に実施したい

アクセス負

元記事を表示

Mockitoと仲良くなろうとしたお話

# Mokitと仲良くなろうとしたお話
初投稿です。
皆さんは「Mockito」使っていますか?

業務でAndroid Studioを使用してアプリケーションを作成し、UnitTestを行う際にMockitoとケンカしたので、Mockitoと仲良くするため、そして自分の備忘録として投稿します。

# 使用環境
– macOS Catalina(10.15.6)
– Android Studio 4.0.1
– Android 9.0(sdk:28)
– Mockito Core 3.5.9
– Mockito Inline 3.5.9
– Robolectric 4.3.1

# Mockitoとケンカした部分について
作成していたアプリケーションはaidlでインターフェースの提供を受けており、サービスとのbindを行うアプリケーションでした。
初めはRobolectricの`ShadowApplication.setComponentNameAndServiceForBindService()`を使用してMock化したIBinderを渡していましたが、`IBinder.Stub.a

元記事を表示

mac vscodeでJava構築

https://qiita.com/aoyaman/items/fdbc1b35ce841f730afc

https://qiita.com/aoyaman/items/cd3ed987b8b704778144

元記事を表示

重複チェックロジックを書くにはどのようにすれば可読性が高くなるのか

重複しているか調べたいデータをList型で所持する。DBのレコードならSQLで取得してくる。
そのうえで例えば文字列の重複チェックなら、

“`Java:sample.java
String searchStr = ‘調べたい文字列’;
List dataList = ‘調べる対象のデータ’;

if(dataList.contains(searchStr)){
// 重複したときの処理

} else {
// 重複しなかったときの処理

}
“`
このように書くとあとで見たときにわかりやすいのではないだろうか。

元記事を表示

【Java】Java8から追加されたTime APIを使って10日後の日付を取得・表示

#今までのおさらい

#新しく追加されたTime APIを使用してみる

####新しく追加されたAPI

| クラス | 年 | 月 | 日 | 時間 | ゾーン | 用途 |
|:–|:-:|:-:|:-:|:-:|:-:|:–|
| ZonedDateTime | ○ | ○ | ○ | ○ | ○ | 厳密な日時情報 |
| LocalDateTime | ○ | ○ | ○ | ○ | X | 日常使う日時情報 |
| LocalDate | ○ |○ |○ | X | X |誕生日 |
| LocalTime | X | X | X | ○ | X | アラーム時刻など |
| Year | ○ | X | X | X | X | 著作発表年など |
| YearMonth | ○ | ○ | X | X | X | カード有効期限など |
| Month | X | ○ | X | X | X | 決算月など

元記事を表示

【自分用】JSPファイルとサーブレットクラスを使用したブラウザ表示

初めてJSPとサーブレットクラスの連結がうまくいったので記録。

【参考リンク】
・Html プルダウンメニューの表示について
(https://murashun.jp/blog/20200128-66.html)
・Html 複数行のテキスト入力フォーム作成
(http://www.htmq.com/html/textarea.shtml)

【JSPファイル】

“`java

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>




お問い合わせフォーム

<%--formを挿入する準備 --%>

<%--お名前入力タブ --%>
名前==とequals

コード作成時にちょっとしたミスを繰り返してしまうので
戒め的に備忘録として記事にします。

String型の変数のif文での確認で下記のミス

“`
<✕>
if(name == “minato”){
・・・処理
}

<〇>
if(name.equals(“minato”)){
・・・処理
}
“`

元記事を表示

java:総称型リストの書き方[メモ書き]

java:総称型のメリットは型の指定をしているところ。
コードの短縮にもなる。

“`java:demojava/demo14/Demo14.java

package demojava.demo14;

import java.util.ArrayList;
import java.util.List;

public class Demo14 {
public static void main(String[] args) {
List L = new ArrayList();
String hoge = “Hello List”;

char[] C = hoge.toCharArray();
for (int i = 0 ;i < C.length; i++){ L.add(String.valueOf(C[i])); } for (String val : L) { System.out.println(val); } } } ``` 実行結果 ![2020-10-12_15-05-52.png

元記事を表示

DI,Thymeleafの利点とは

#概要
現在のJavaの2大フレームワークの一つ「Spring」。
このフレームワークの大きな特徴であるDI(Dependency Injection)とThymeleafとは何か説明します。
※深くは説明しません。以降学びが深くなった際にコードベースでの説明を記事にします。

#DIの利点
DIとは、オブジェクトの成立要件に必要な情報を外部設定することです。
例えば以下のような状況があるとします。

“`
クラスA→クラスB
クラスAはクラスBと依存関係にある(クラスBはクラスAの依存性を持つ)
“`
DIを適用するとクラスAにとって必要なクラスBの情報は外部に切り出されているので、クラスBの状況を無視して、クラスAを実行することができます。

つまり「まだクラスBにエラーがあるから、クラスAのテストができない」ということがなくなります。
これがDIの利点です。

#Thymeleafの利点
ThymeleafとはSpring Bootで標準的に使われているテンプレートエンジン。
Thymeleafは変数の部分を属性値で記述しているため、ブラウザで表示しても崩れません。

なので

元記事を表示

PHP言語と違うところ。[メモ書き]

PHP言語と違うところ。
クラスの呼び出しやメソッドの呼び出しの考え方が違う。
同じパッケージ内にあるクラスを呼び出す場合、別にimportする必要がない(PHPのinclude等にあたる)。
あと、mainは特別な存在という考え方などもPHPではない考え方だと感じた。

“`java:demojava/demo13/Demo13.java
package demojava.demo13;

public class Demo13 {
public static void main(String[] args) {
Test1 test1 = new Test1();
System.out.println(test1.name());
}
}
“`

“`java:demojava/demo13/Test1.java
package demojava.demo13;

public class Test1 {
public String name() {
return “テスト1”;
}
}
“`

元記事を表示

【合格体験記】Oracle Certified Java Programmer Silver/Gold SE 11に合格しました.

この度,Java SE 11 認定資格 | Oracle Certified Java Programmer, Silver/Gold SE 11を取得しましたので,試験の概要・対策・感想について簡単にまとめたいと思います.勉強期間としては,SilverとGoldを合わせて1ヶ月半程度でした.

# はじめに

## Java SE 11 認定資格 | Oracle Certified Java Programmer とは?

[Java SE 11 認定資格 | Oracle Certified Java Programmer](https://www.oracle.com/jp/education/certification/jse11-5570635-ja.html) は,2019年6月下旬より開始された新しいJavaの認定資格試験です.Java 11以前の認定資格としては Oracle Certified Java Programmer, SE 7/8 が有名ですが,Java 11はJava 9以降で初の長期サポート (LTS: Long Term Support) 対象であり

元記事を表示

jarファイルの中身を、解凍せずに変更する方法メモ

## はじめに
Javaのプロジェクトの仕事の中で、ソースコードをjarファイルとしてビルドをして、それをサーバーにデプロイしていました。そのデプロイされたjarファイルの中身をテスト用に書き換えたくなった時に、少し嵌ったのでここに解決方法をメモしておきます。

尚、本記事ではSpringフレームワークのプロジェクトを例として扱います。jarファイルの解凍時のディレクトリは、以下のようになっています。

“`
┣ BOOT-INF/
┣ classes
┗ application.properties <- *このファイルを書き換えたい* ┗ lib ┗ {使用してるライブラリのjar} ┣ META-INF/ ┣ maven/ ┗ {pom.xmlとか} ┗ MANIFEST.MF <- マニフェストファイル ┗ org/ ┗ {classファイルがいっぱい} ``` 具体的には、`/BOOT-INF/classes/application.properties`を書き換えようとして、失敗しました。 ## 失敗例 ### 解凍してから、

元記事を表示

【Java】Calendarクラスで10日後の日付を取得

“`java:TenDaysCalendar.java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TenDaysCalendar {

public static void main(String[] args) {
// 現在の日付情報を取得
Date now = new Date();
// Calendarにセット
Calendar c = Calendar.getInstance(); // Calendarはnewを使わない
c.setTime(now); // 引数にはDate型

// 日付を表示してみる
System.out.println(“***********現在日時***********”);
System.out.println(“Calendar.DATE: ” + Calendar.DATE); // 5
System.out.println(“c.get

元記事を表示

【Java】Dateクラスでミリ秒を使って10日後の日付情報を取得する

#Dateクラスの扱いの練習

Dateについて勉強していましたが、
* エポックミリ秒についての理解
* 形式を指定して表示する方法

この2点においてあんまりちゃんと理解できていない部分があった感じがするのでまとめます。

本当はCalendarクラスのフィールドがよくわかっていないことで沼ってたというのもあるし、Java8からは新しい日付APIがありもう少し直感に近い扱いができるらしいですが、それについてもしっかり原始的なDateクラスの理解を始めた方がいいと感じたので、自分なりにいろいろ検証しつつ描いてみました。

__[Calendarクラスを使ったバージョン](https://qiita.com/mako0104/items/885ea7881486e2c67d98)も参考になれば__

#Dateクラスを使って10日後の日付情報を表示してみよう

“`java:TenDaysDate.java
import java.text.SimpleDateFormat;
import java.util.Date;

public class TenDaysDate

元記事を表示

指定した文字列が、対象の文字コードにおいてサポートされているかを調べたい

指定した文字列が、対象の文字コードにおいてサポートされているかどうかを調べたい場合、`CharsetEncoder.canEncode` を利用すると便利です。これは引数として与えられたメソッドが対象の文字コードでサポートされている場合true、それ以外はfalseを返すメソッドで、たとえば文字列`s`がShift_JISにおいてサポートされているかを調べたい場合は次のように書けばよいです。

“`java
String s = “…”;
Charset.forName(“Shift_JIS”).newEncoder().canEncode(s);
“`

実際に動いているかを検証する例として、「髙」という漢字を利用します。いわゆる「はしごだか」ですね。この漢字はShift_JISではサポートされていないのですが、その拡張であるWindows-31Jではサポートされています。これを確かめてみましょう。

“`java
Charset.forName(“Shift_JIS”).newEncoder().canEncode(“髙”); //=> false
Charset.f

元記事を表示

Java・ツイッタークローン・タスク管理システム④タスク一覧表示をする

##はじめに
Javaを使って初めてアプリケーションを作成する人にむけて記事を書いてみようと思います。
ポートフォリオや、会社の研修課題作成の参考にしていただければ幸いです。
今回は、タスクマネージャーを作成します。
これを応用することで、ツイッタークローンの作成にも活かすことができます。

アプリケーションの機能ごとに記事を投稿していきます。
1.データベース作成
2.ログイン機能
3.タスクの登録機能
4.一覧表示
  -ソート機能
  -検索機能
5.編集機能
6.削除機能
7.ログイン機能
8.排他制御について

*詳しい説明はコード内に書いてありますので、コピペする人は消して使ってください

##実行環境
eclipse4.16.0
Tomcat9
Java11

#目的
1.viewの作成
2.DAOの作成(一覧表示・ソート)
3.サーブレットの作成(一覧表示・ソート)
4.DAOの作成(検索機能)
5.サーブレットの作成(検索機能)
6.次回予告

#viewの作成
検索フォームとタスク一覧テーブルを作っていく

“`
<%@ page language="java"

元記事を表示

Spring CacheでキャッシュをRedisに保存する際の有効期間の指定について

# 経緯
Redisの有効期間指定を調べたが、記載が古くそのまま使える情報が少なかったため記事を作成する※20200827時点で調査

# Spring CacheでRedisにデータごとの有効期間指定ができることを確認する

##### build.gradle

“`
implementation ‘org.springframework.boot:spring-boot-starter-cache’
implementation ‘org.springframework.boot:spring-boot-starter-data-redis’
“`

##### 設定クラスを作成
“`java
@Configuration
@EnableCaching
public class RedisConfig {

@Bean
public CacheManager cacheManager(RedisConnectionFactory fac) {

// 1.キャッシュビルダーからキャッシュを作成する
RedisCacheManagerBuilder

元記事を表示

Java・ツイッタークローン・タスク管理システム③タスク登録機能をつける

##はじめに
Javaを使って初めてアプリケーションを作成する人にむけて記事を書いてみようと思います。
ポートフォリオや、会社の研修課題作成の参考にしていただければ幸いです。
今回は、タスクマネージャーを作成します。
これを応用することで、ツイッタークローンの作成にも活かすことができます。

アプリケーションの機能ごとに記事を投稿していきます。
1.データベース作成
2.ログイン機能
3.タスクの登録機能
4.一覧表示
  -ソート機能
  -検索機能
5.編集機能
6.削除機能
7.ログイン機能
8.排他制御について

*詳しい説明はコード内に書いてありますので、コピペする人は消して使ってください

##実行環境
eclipse4.16.0
Tomcat9
Java11

#目次
1.viewの作成
2.DAOの作成
3.サーブレットの作成
4.次回予告

#Viewの作成

こちらは、よくある入力フォームです。

“`task-insert.jsp


元記事を表示

Java・ツイッタークローン・タスク管理システム②ログイン機能をつける

##はじめに
Javaを使って初めてアプリケーションを作成する人にむけて記事を書いてみようと思います。
ポートフォリオや、会社の研修課題作成の参考にしていただければ幸いです。
今回は、タスクマネージャーを作成します。
これを応用することで、ツイッタークローンの作成にも活かすことができます。

アプリケーションの機能ごとに記事を投稿していきます。
1.データベース作成
2.ログイン機能
3.タスクの登録機能
4.一覧表示
  -ソート機能
  -検索機能
5.編集機能
6.削除機能
7.ログイン機能
8.排他制御について

*詳しい説明はコード内に書いてありますので、コピペする人は消して使ってください

##実行環境
eclipse4.16.0
Tomcat9
Java11

#目次
1.viewの作成
2.DAOの作成
3.サーブレットの作成
4.次回予告
#viewの作成
*今回だけスタイリングにBootStrapを使用しています。

“`login.jsp

OTHERカテゴリの最新記事