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

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

コンピュータとオセロ対戦49 ~AI実装と性能評価~

https://qiita.com/tt_and_tk/items/068f2afde6db637e189f

[前回](https://qiita.com/tt_and_tk/items/d8f662c430ac277a4d20)

# 今回の目標
前回作成したネットワークを使用して対戦AIを作る。
また、[34 ~性能評価~](https://qiita.com/tt_and_tk/items/13be9077d3b136c20375)のように、その強さを客観的に評価する。
# 使用バージョン
* Java 17.0.1
* MyNet 1.2.4
# ここから本編
## 対戦AIを作る
まずは前回作成したネットワークを使えるようにしていきます。
なお、ここではそのネットワークを「oseroAI.net」という名前に変更しています。
### クラス構成
四つの引数を受け取り、倍精度実数を返す関数を格納するFourFunctionクラスも使用しています。
OseroBaseとOseroクラスについては、前回から変更していません。

“`
OseroBase // オセロの基本機能

元記事を表示

オブジェクト指向をガンプラに例えてみた

# **初めに**

IT未経験者でjavaを学習していて演算子やら配列やら繰り返し文…。
最初の内はプログラムの動くを知る意味でも基礎を身に着ける意味でも
ちょっと考えて動かせる様なとこから始まると思いますが慣れてきたとこで
いきなり**オブジェクト指向**…何か概念的なやつが出てくると思います。

正直言って頭に入ってこない人も居ると思いますし自分もそうです。
なので自分なりに分かりやすくまとめてみました。
今回は
 1.そもそもオブジェクトとは?
 2.説明書(クラス)を読もう
 3.組み立てよう(インスタンス化)
この3つに絞りたいと思います。

## 1そもそもオブジェクトとは?
ざっくり言いますとモノ、言うなればガンプラですはい。
こいつを今から組み立てる訳ですね、では箱を開けていざ組み立て!

の前に先ずはやることがありますよね?
そうです説明書を見ますね、これが無いとガンプラは組めません。
なので次にやることは…

## 2説明書(クラス)を読もう
実際に説明書を見ると
 -脚部
 -胴体
 -腕部
 -バックパック
 -ビームライフル
 -シールド
 -頭部
の作

元記事を表示

java初心者の日記(3)

最近すごい寒いので外に出たくないですね。

今日はFizzBuzz問題を解いてみました。javaのオブジェクト指向をどうたらこうたらって言うよりもただのアルゴリズムって感じですね。

#### for文
“` java
for (int i = 1; i<100; i++){ if(i%15==0){ System.out.print("FizzBuzz "); }else if(i%5==0){ System.out.print("Buzz "); }else if(i%3==0){ System.out.print("Fizz "); }else{ System.out.print(i+" "); } } ``` #### while文 ```java int i = 1; while(i<=100){ if(i%15==0){

元記事を表示

【Kotlin】定数で定義する

Kotlinの定数定義をする場合
## 結論
CompanionObjectを利用し、constを付けて定義する
“`定義の方法.kt
class Hoge {
companion object {
const val NAME = “hoge”
}
}
“`

## companion objectとは
クラス内では、objectキーワードの前にcompanion修飾子を付与することでクラスに属する**Singletonが作成**できる。これをcompanion objectと呼ぶ。

companion objectは**1クラス内に1つだけ宣言可能**。また、オブジェクト名は省略可能。

元記事を表示

Javaの上位互換性を信じすぎてはいけないとか

# クイズとか
いつものとおりクイズからスタートです。
以下のプログラムを**実行**して、得られる**結果**を答えてください。
“`java
import java.util.stream.IntStream;
public class Peeker {

public static void main(String[] args) {
long i= IntStream
.rangeClosed(1,3)
.map(x->x*2)
.peek(System.out::print)
.count();
System.out.println(i);
}
}
“`
ちなみにあまり見たことないかも知れませんので書いておきますと、peekは要素を渡すだけ、好きにしてね!という動きをします。
たぶんデバッグ用途以外で使うことはないです。てかJava APIリファレンスにもそう書かれてますし。
>This method exists mainly to support debugging,

# 答えとか
答えは **「Javaのバージョンによる

元記事を表示

blastengineのJava SDKを使ってメール送信を行う

[blastengine(ブラストエンジン)](https://blastengine.jp/)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。

現在、Java向けに、blastengine SDKを開発しています。この記事では、その使い方を解説します。まずはテキストメールの即時送信についてです。

[blastengineMania/blastengine-java: Java SDK for blastengine](https://github.com/blastengineMania/blastengine-java)

## ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b

元記事を表示

Java: JUnit 例外が発生することを確認するテストの書き方の変遷

# はじめに

JUnitでは、バージョンによってテストの書き方が異なります。

この記事では、例外が発生することを確認するテストの書き方を比較します。

# JUnit 3

[failメソッド](http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/Assert.html#fail())が呼ばれるとテストに失敗するという仕様を利用します。

下記のサンプルコードの場合、getメソッド内でIndexOutOfBoundsExceptionが発生した場合は、catch句に入り、[failメソッド](http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/Assert.html#fail())は呼ばれません。このため、テストに成功するという仕組みになっています。

JUnit 4/5でもこの書き方は可能ですが、後述の書き方のほうが読みやすいでしょう。

“`java
public void testOutOfBounds() {
t

元記事を表示

java.awt.image.BufferedImage.getType()が0:TYPE_CUSTOMの場合、インスタンス化時にIllegalArgumentExceptionが発生

# はじめに

## 記事を書いたきかっけ

長年運用している古いシステムにて、外部システムから送信される画像ファイル(JPEG)をリサイズして保存するという処理をしているのですが、外部システムの更改に伴いエラーが発生するようになり、その原因を調査しました。

同じ現象で困っている人はいないかもしれないですが、もし手助けになれば幸いです。

## 対象読者

java.awt.image.BufferedImageをインスタンス化しようとして、IllegalArgumentExceptionに遭遇した人(いるのかそんな人?)

## 環境

Java 1.6

Javaのバージョンが1.6の時点でお察し。クローズドな環境の塩漬けシステムです。

# 事象

処理部分のコードは以下のようなイメージです。

“`java
String strFilePath = “ファイルパス”;
File file = new File(strFilePath);

BufferedImage image = ImageIO.read(file);
int orgWidth = image.getWi

元記事を表示

javacでリリースバージョンを指定する

# 概要
Javaの外部ライブライりのバージョンUPを行った際に、実行環境のJavaよりライブラリのリリースバージョンが上だったので、実行環境のJavaのバージョンUPをすることになったときのメモです。

# リリースバージョンの確認
リリースバージョンの確認は、対象のクラスファイルをjavapで逆アセンブリすることで確認出来ます。javapコマンドの詳細な説明は[こちら](https://docs.oracle.com/javase/jp/17/docs/specs/man/javap.html)をご覧ください。

まずはクラスファイルへコンパイルするためのJavaファイルを準備します。
“`java:HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello World.”);
}
}
“`

javacコマンドでコンパイルします。javacコマンドの詳細な説明は[こちら](https://docs.oracle.

元記事を表示

【LINE BotをAPI連携させたいだけなのに #1】エラー祭りへようこそ

# LINE Botを思い通りに動かしたーい!!
LINE Botでプッシュメッセージとリプライメッセージ(おうむ返しと固定テキスト)返すところまではできた。(やっとのことで。息も絶え絶えで。)
そして息切れしながら向かった先は、
## 脳みそに新たなひらめきをくれるAPI連携Botが作りたい
仕事ではプランナーとして企画制作の1000本ノックを日々行い、大学院ではアート作品を作る私。__煮詰まった時に脳みそをリフレッシュさせたい!自分の思考の外から新たな風がほしい!!__
そんな時のお助けアイテムとして、**「デザインに関してのインスピレーションを与える名言」** というステキAPIからお言葉を頂戴しようと思った。

### まずは単純なオウム返しBot
“`php5
‘use strict’;

const express = require(‘express’);
const line = require(‘@line/bot-sdk’);

const PORT = process.env.PORT || 3000;

const config = {
channelSe

元記事を表示

Java民から見た時のKotlinのギャップまとめ

# 経緯
社内PJでKotlinを使ってコードを書くことになりました。
メンバーには自分含めJava民が多いです。Kotlinへの移行がちょっとでもスムーズになるように、Java民から見た「Kotlin特有の書き方だなぁ」ってところをまとめました。

## Kotlin慣れに良いサイト(たぶん)

[(公式)イディオム](https://kotlinlang.org/docs/java-to-kotlin-idioms-strings.html)
[(公式)コレクションタイプ](https://kotlinlang.org/docs/java-to-kotlin-collections-guide.html#operations-on-any-collection-type)
Javaでこう書いてたものがKotlinだとこう、みたいな感じ

[公式リファレンス](https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/basic-types.html)
コレも公式。
右上の「TRY ONLINE」からオンライン環境で

元記事を表示

Nablarchを使ってみよう

# はじめに
こんにんちわ、きりと申します。

お仕事でJavaのフレームワークであるNablarchを利用する機会があったので、
その特徴や開発の癖のようなものを整理して皆さんに共有できればと思い記事にしました。

[Nablarchの良いところと悪いところ](#Nablarchの良いところと悪いところ)でも触れますが、お世辞にもわかりやすいフレームワークではないため、
私のようにNablarchを使った保守・開発を携わる人の助けになればと思います。

整理する中で思いの外、ボリュームが出てきてしまったので、「Nablarchを使ってみよう」シリーズとして
一覧化しましたが、記事の大部分はNablarch開発に関係なく参考にできると思いますので、
気になる記事を閲覧頂ければと思います。

なお、記事の内容や構成は定期的に見直しを行う予定ですので、
情報の誤りや誤記がありましたら優しくコメント頂ければ幸いです。

# Nablarch(ナブラーク)とは
Nablarchとは、かなりざっくり言うなら、Spring FrameworkのようなJavaアプリケーション開発/実行基盤です。

元記事を表示

JDKリンク集(OpenJDK, Amazon Corretto)

# JDK
## OpenJDK
https://jdk.java.net/archive/

## Amazon Corretto
https://aws.amazon.com/jp/corretto/?filtered-posts.sort-by=item.additionalFields.createdDate&filtered-posts.sort-order=desc

元記事を表示

「Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty」の対処方法

# まえがき

環境構築時にこの問題にでくわし、4時間ほど時間とられたので記録として残しておく( ´_ゝ`)

# 参考

[java][play1]依存性解決でnot foundエラー

# 原因
・OpenJDK8では`trust store($JAVA_HOME/lib/security/cacerts)`が空。

# 対処方法
・OpenJDK11からとってくる。

元記事を表示

Javaのclassを逆コンパイルする

# 公式
https://github.com/skylot/jadx

# 動作環境
– MacOS BigSur
– Java8

# Jadのインストール

“`terminal
brew install jadx
“`

# 使い方

“`terminal
jadx hello.class
“`

# オプション

|オプション|概要|
|:–|:–|
|-d, –output-dir|出力先|

元記事を表示

コンピュータとオセロ対戦48 ~勝敗予測、改善~

https://qiita.com/tt_and_tk/items/068f2afde6db637e189f

[前回](https://qiita.com/tt_and_tk/items/22641b036d3b1e5fdbca)

# 今回の目標
勝敗予測の精度を上げる
# 使用バージョン
* Java 17.0.1
* MyNet 1.2.4
# ここから本編
## ディレクトリ構成

“`
48
├── data // 学習データの保存
└── pic // グラフ保存
// プログラムなどはここに置いてある
“`

## 01 とりあえず、様々なパターンのネットワークを試してみる
まず、[前回](https://qiita.com/tt_and_tk/items/22641b036d3b1e5fdbca)の記事のRun.javaのみ変更して、様々な条件で学習させてみました。
データ集め部分は前回と全く同じです。
学習の際、誤差の意味が分かりやすくなるよう64で割らず、平均絶対誤差を使用しました。
あてずっぽうで調べたところある程度の精度があった3層で、ノード数や

元記事を表示

Spring bootのプロジェクト作成はSpring Initializrを使おう

昔からある Spring Framework のプロジェクト作成ツールとしては Spring Tool Sweet (STS) が有名ですが、それとは別に Spring 公式ツールとして Spring Initializr があるのでそれを使うと便利です。

# Spring Initializrとは
Spring Initializr (スプリング イニシャライザ、で読み方合ってる?) は Spring boot プロジェクトのひな形を簡単に作ることが出来るサービスです。
[Spring Initializr](https://start.spring.io/) からアクセスして利用を開始できます。

# Spring Initializrの使い方
[Spring Initializr](https://start.spring.io/) にアクセスすると以下のようなページが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2387604/4da126ba-0fa2

元記事を表示

[Set Up] Java + Selenium4 WebDriver + Chrome E2E test automation in windows by Eclipse

# Outline
Selenium Webdriverをもちいて、WEB (Chrome) のE2E テスト自動化を始めるにあたっての
環境構築のメモである

# App List

| APP | Version | Objective |
|:———–|:————|:————|
| Java | Version 8 Update 321 | Java
| Eclipse | 2021‑12 | Java Programing Editor |
| Selenium Client | 4.1.2 (January 30, 2022) | Selenium |
| Chrome | 99.0.4844.74 | Web Browser |
| OS | windows10 | execution environment |

# Java

Javaの実行環境をダウンロードし、インストールする

### download
https://www.java.com/ja/download/ie_manual.

元記事を表示

Java 18新機能まとめ

Java 18が2022/3/22にリリースされました。

https://mail.openjdk.java.net/pipermail/jdk-dev/2022-March/006458.html

機能的に多くのプログラマに関係ありそうな変更はUTF-8がデフォルトになったくらい。あとは簡単なWebサーバーが入ったことかな。

詳細はこちら
[JDK 18 Release Notes](https://jdk.java.net/18/release-notes)
[Java SE 18 Platform JSR 393](https://openjdk.java.net/projects/jdk/18/spec/)
[OpenJDK JDK 18 GA Release](https://jdk.java.net/18/)

APIドキュメントはこちら
[Overview (Java SE 18 & JDK 18)](https://docs.oracle.com/en/java/javase/18/docs/api/index.html)

変更点まとめはこちら
https://

元記事を表示

Java Silverの資格勉強で学んだことをアウトプットしていく

訳あってJava Silverの資格勉強をしているのだが、勉強していて
「これってこういうふうにしても動くんだ~」という発見や驚きがあったので
そういうのを忘れない為に書き留めていこうと思う。

・記事の対象者
①Javaの初学者
②Java Silverの資格勉強をしている人

## ①制御文(if、for、while等)の中括弧を省略しても動作する
Java Silverの勉強をしていて一番驚いたのがこれ!!
例えば以下のコードの場合でもエラーにならず動作する。
この場合はif文の次の1文がif文の条件に合致した時の処理として使われる。

“`java:例①
if(i = 3)
 System.out.println(“処理1ですー。”);
System.out.println(“処理2ですー。”);
“`
上記のコードは、下記のコードの動きと同一になる。
“`java:例②
if(i = 3) {
 System.out.println(“処理1ですー。”);
}
System.out.println(“処理2ですー。”);
“`

どちらを使っても動くには動く

元記事を表示

OTHERカテゴリの最新記事