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

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

Javaでスタックトレースを出力する方法

# 記事の目的
Javaの開発をしていて、デバッグは環境的にできないが、コールスタックを知りたかったの、調べた備忘録

# やったこと
スタックトレースを表示したい、箇所で以下のコードを追加
“`
Exception e = new Exception();
e.printStackTrace();
“`

# 参考URL
[Java – Stack trace出力する方法 (Throwable、Exception)](https://codechacha.com/ja/java-print-stack-trace/)

元記事を表示

【Java】アルゴ式 標準出力 1-5(一日は何秒か)

アルゴ式の「[標準出力 1-5](https://algo-method.com/tasks/73)」を、
Java の Time API を使って解いてみた。

“`Java
import java.time.Duration;

public class Main {
public static void main(String… args) {
var dayInSeconds = Duration.ofDays(1).toSeconds();
System.out.println(dayInSeconds);
}
}
“`

/以上

元記事を表示

java初心者の日記(2)

スッキリわかるjava入門が13章まで終わったので12章と13章のまとめをしたいと思います。

毎日投稿するわけではないですがやる気があるうちに投稿したいと思います。

オブジェクト指向プログラミングを支える3つの機能

# 継承 

類似クラスがある場合に、元となるクラスを継承することで同じコードを書かなくて済む
元となるクラスの差分だけコードを書けば良い。

##### class クラス名 extends 元となるクラス{

        差分コード
}

また、複数の子クラスを持つことは可能だが複数の親クラスを持つことはできない。

#### 親クラスのコンストラクタの呼び出し
Super(引数)

# 多様性 
ざっくりとらえる

人や犬は生き物
→ 人クラスや犬クラスは生き物クラスになる。

子クラスのインスタンスは親クラスに代入可能

#### Life L = new Human();

どのような型でもいいわけではないので注意

# カプセル化

アクセス制御すること。
private や public 等がある。メンバに対するアクセス制御とクラスに対す

元記事を表示

<@readAllLines> FreeMarkerテンプレートがファイルをreadしてHTMLに埋め込むことを可能にするディレクティブ

## 解決したい問題

いまわたしが下記のような中身のCSVファイルを持っていたとします。

“`
Name,Address
Alice,alice@foo.bar.com
Bob,bob@asure.hal.com
Chris,chris@rio.grande.com

“`

わたしはこのCSVファイルの各行をペーストしたHTMLを生成したいと思いました。つまりこんなHTMLを生成したい。

“`

Name,Address
Alice,alice@foo.bar.com
Bob,bob@asure.hal.com
Chris,chris@rio.grande.com



“`

わたしはJavaプログラムのためのテンプレート・エンジン [FreeMarker]

元記事を表示

【java】ヒープメモリエラー

javaで下記エラーが出ました。
よくあるエラー。
**java.lang.OutOfMemoryError: Java heap space**

コードは下記

“`sample.java

//初期化
long n = 沢山;

//日付ループ
for(long i=0;i

元記事を表示

ibatisでThere is no WRITEABLE property named ”xx” in class xxのエラー

最近ずっとStrutsでiBatisを使ったプログラムの改修をしていて、このエラーに遭遇したのですが、地味にググってもちょっと解決に詰まったのでメモ書き。

エラーメッセージは以下のような形式で出ていました。
“`
com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named ‘xxx列名’ in class ‘パッケージ名.クラス名’
“`

で、原因はというとほぼ[このブログ](“http://blog.livedoor.jp/ron_lou/archives/50812489.html”)で書かれていた内容ではあったのですが地味に違っていて、なんとカラム名にアンダースコアが入っているときはgetterとsetterにも同様にアンスコを入れないと認識されない、でした。

例えば今回の場合、取得したいDBテーブルのカラム名が`prev_ansids`で取得用のDtoでは以下のような変数名にセットするようにしていた場合、以下のようなsetterとgetter名にするとこのエラーが出ます:

元記事を表示

java初心者の日記(1)

前まではRuby だったり Pythonでプログラミングを学んでいたのですが内定を頂いた会社の研修でjavaを使用するとのことなのでjavaを学ぼうと思います。3日坊主なのでどこまで続くかわかりませんが、、

# 使用する教材は「スッキリわかるjava入門」
https://sukkiri.jp/books/sukkiri_java

数日かけて12章まで進んだのでオブジェクト指向についてのメモを残します。

##### オブジェクト指向とはソフトウェアを開発するときの部品化のこと
だそうです。今まで学んできて少しは理解した気がしますがオブジェクト指向とは何か、という風に説明することは難しそうです。

教科書と同じような作品を自分なりに作ってみました。めちゃくちゃ簡単ですがやはり自分で作った方が理解につながりますね。

Main.java
“` java

public class Main{
public static void main(String[] args){
//名前の入力
System.out.println(“名前を入力してく

元記事を表示

Scalaの勉強はじめました 1 〜基本的な文法と素因数分解〜

## はじめに
N予備校のプログラミング入門コースでNode.jsを学び、その勢いのままScalaの勉強を同じくN予備校で受講し始めました。

## 用語
### JVM
:::note
Javaを動かすための、Java Virtual Machine (JVM)という仮想マシン
:::

### sbt
`Scala`で書いたコードをコンパイルしてビルドしてくれるツール

“`
sbt console
“`
`Scala`の`REPL`が表示される。
“`
sbt run
“`
`REPL`に入らずにプログラムの実行と終了を行う。

## 文法
“`scala:Main.scala
object Main extends App {
println(“Hello Scala”)
}
“`
`Main`というオブジェクトを宣言。
Appというトレイト(振る舞い)をミックスイン(振る舞いをオブジェクトに対して追加)する。

名前からするに、機能の継承というか拡張という感じ。
Appというのは基底クラスに当たるんだろうか。

`println`: プリントライン
コンソール

元記事を表示

Bean Validationで日付のフォーマット+存在チェックを行うアノテーションを作成する

# はじめに
Spring BootでREST API開発を行っている際に、パラメータの入力値が正しい日付であるか確認が必要になってきた。
nullチェックや最大値チェックなどは、チェックできるアノテーションがあらかじめ用意されているが、日付に関しては用意されていなかったためチェック方法を検討することに。
はじめは`@Pattern`でチェックできると思ったが、存在しない日付はチェックできなかったり、毎回正規表現を記載する必要があるため、他の方法を調査。
すると、独自のアノテーションを作成できることがわかったためその方法で実現してみることにした。

# アノテーションでやりたいこと
– nullの場合はチェックを行わない
– フォーマット(`yyyy/MM/dd HH:mm:ss`)に該当するかのチェックを行う
– 存在する日付かどうかチェックを行う
– フォーマット、存在する日付のチェックでそれぞれメッセージを変更する

# カスタムアノテーションを作成
[Hibernate Validatorのリファレンス](https://docs.jboss.org/hibernate/sta

元記事を表示

DefaultAzureCredential では環境変数を使うと便利です(Java on Azure)

## はじめに

Azure で Java アプリケーションを開発していたとき、認証方式の設計で悩む機会がありました。

本記事では、Java アプリケーションで実装可能な認証方式である `DefaultAzureCredential` を使った認証について、実開発でつまづきがちなポイントをまとめます。

この記事に記載の内容は、あくまで私個人の見解であり、所属する会社&組織の見解を必ずしも反映したものではありません。ご了承ください。

## DefaultAzureCredential

`DefaultAzureCredential` とは、開発環境・Azure デプロイ後それぞれで使用される資格情報を組み合わせて使用することができる認証方式です。

>DefaultAzureCredential は、アプリケーションが最終的に Azure クラウドで実行されるほとんどのシナリオに適しています。 DefaultAzureCredential は、デプロイ時の認証に一般的に使用される資格情報と、開発環境での認証に使用される資格情報を組み合わせたものです。

引用: [A

元記事を表示

Tomcat jasperはJSPからjavaコードに変換するトランスレーター技術です

Tomcat jasperはJSPからjavaコードに変換するトランスレーター技術です

このサーブレットに変換ルールだけ習得すればJSP攻略はバッチリ。

【JSPファイル】

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% for(int i=0;i<5;i++) { %>
	<p>Hello World</p>
<% } %>
</body>
</html>

【変換されたjavaファイル】

[workspaceフォルダ]\.metadata\.plugins\org.eclipse.wst.server.core\tmp

元記事を表示

コンピュータとオセロ対戦47 ~Javaで勝敗予測~

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

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

# 今回の目標
自作した深層学習ライブラリを用いて、Javaでデータ集めと学習を行う。
# 使用バージョン
* Java 17.0.1
* MyNet 1.2.0
# ここから本編
行なう学習の概要について、時間も空いてしまったので再度説明します。

私が行っていたのは、「盤面から最終結果を予測する」というものです。
その前は、マスの位置ごとに設定した評価値を用いた方法を考えていましたが、固定的な考え方では柔軟な対応が難しいのではないかと考え上記の方法を思いつきました。
最終結果というのは具体的に、「最終的な自分の駒の数-最終的な相手の駒の数」で、マイナスもあり得る数でした。しかし[45 ~最適化関数~](https://qiita.com/tt_and_tk/items/54c91a2ba0f5606d54b9)でReLu関数の有効性が示されたので、こ

元記事を表示

auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する

# はじめに

前記事
[auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
[auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
[auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)

前回で、残高照会のリストを取得できたので、日経225先物OPに限定して、トータルのdeltaを計算して表示する。

# 事前準備

前記事の残高照会の続きです。

# ツール

変わっていないので省略。

# PositionsSuccessの判定

getSide():1:売、2:買。deltaの符号となる。

元記事を表示

auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く

# はじめに

前記事
[auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
[auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)

2本の前記事は、REST APIに関する基本的なことで、これだけ知っていれば、だいたいどんなAPIでも使えるはずですが、もうちょっと続けてみます。
今回は、残高照会です。
実際、残高なんて、Webアプリで表示しても、専用Windowsアプリで表示しても、スマホアプリで表示しても、同じ金額なので、わざわざ自作アプリを作る物好きはいないですが、この次に先物OPのGreeks(デルタ、ガンマ、シータ、ベガ)の集計値を表示したいための準備です。

# 事前準備

前記事2本が動いていれば、本編は5分で終わります。

# ツ

元記事を表示

Wikipedia, Wiktionary のダンプからページを取り出す (Java)

Wikipedia, Wiktionary は定期的にダンプファイル(=中身を全部抜き出したもの.dump truck のダンプと同じ語)を出力しており,誰でもダウンロードできるようになっています.(すごい仕組みですね)

ダウンロード可能なファイルは「インデックスファイル」と「ダンプ本体のファイル」の二種類から構成されています.両方のファイルをダウンロードする必要があります.
「インデックスファイル」は本の目次に相当するもので「ここに内容が書かれている」という情報が書かれています.

# ダンプデータを利用するメリット

WikiPediaを検索するだけであれば「Media Wiki」というAPIが用意されており,REST APIを利用することでデータを取り出せるようになっています.
ただし呼び出し回数に制限があり,すべてのデータを取得するといったことは事実上不可能です.
ダンプデータの読み出しであれば制限はありませんので,自然言語処理の研究などに用いるような場合でもとても利用がしやすくなります.

# データの用意

以下からダウンロードします.直近の4か月分のみがダウンロード可

元記事を表示

Javaを使用してPowerPointテーブルを生成および操作する方法

テーブルを通してデータを表示することはプレーンテキストにより明確であるため、表はPowerPointプレゼンテーションに表示されることがよくあります。 この投稿では、無料のPowerPoint API(Free Spire.Presentation for Java)を使用してJavaアプリケーションでPowerPointテーブルを生成および操作する方法を紹介します。

### jarファイルをインポートします

開始する前に、jarファイルをインポートする必要があります。[Free Spire.Presentation for Java](https://www.e-iceblue.com/Download/presentation-for-java-free.html)をダウンロードして解凍し、jarパッケージをlibフォルダーからJavaアプリケーションにインポートします。

## コード一覧
1. テーブルを作成する

“`
import com.spire.presentation.*;
public class AddTable {
public static v

元記事を表示

【 Java switch文の利点と注意点 と補足】 

現在『スッキリわかるJava 入門』でJavaを学習中です。
この投稿はそのアウトプットと備忘録になります。

## ■switch文
以下のようなif文(式A)があります。
式として問題はありませんが、同じ変数に対して繰り返し比較していて、
冗長でスッキリしていません。
このような`else if`が重複するとき`switch文`(式B)に置き換えてスッキリさせることができます。
“`java
式A(冗長なif文)

public class App{
public static void main(String[] args){
System.out.println(“あなたの運勢を占います”);
int fortune = new java.util.Random().nextInt(4) + 1;
if (fortune == 1){
System.out.println(“大吉”);
} else if (fortune == 2){
System.out.println(“中吉”);
} else if (fortune == 3){

元記事を表示

auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く

# はじめに

前記事
[auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)

curlで叩くことが出来たら、やはりちゃんとしたエラー処理やループ処理も制御したいものです。
Excel, JavaScript, Python, C#しかサンプルがないので、javaで作ってみる。

# 事前準備

curlで叩いて、TOKENが取得できる状態にしてください。

# ツール

– java 8 (java 11はダメぽいよ)
– eclipse (テキストエディタでもなんでも可)
– maven 3 (gradleもあるけど、maven派なのだ)
– swagger editor (オンラインでもdockerでも)

# swagger editor

[swagger editor](https://swagger.io/tools/swagger-editor/)

むかしはオンラインで使っていたが、dockerでlocalhostに起動した。
“`do

元記事を表示

MyNetアップデート履歴

# MyNetとは
私が作成した深層学習モジュールです。
この記事にアップデート履歴を記録していくので、バージョン情報が違った際に参考にしてください。

https://github.com/TTaisei/MyNet

# 1
## 1.0
### 1.0.0
ミスにより動きません。
### 1.0.1
ミスを修正し、動くようにしました。
## 1.1
GitHubの操作が不慣れなため、新しいブランチを作成してしまいました。
### 1.1.0
Matrixクラスにappendメソッドを追加。
### 1.1.1
MatrixクラスにArrayList>を引数にとれるコンストラクタを追加。
### 1.1.2
Matrixクラスのdivメソッドを修正。
## 1.2
### 1.2.0
Optimizerクラス及びGradientDescentクラスにそれぞれログ出力を行うfitメソッドを追加。
### 1.2.1
1.2.0で追加したfitメソッドを変更。学習経過をプロンプト上へ出力するメソッドと、ファイル出力するメソッドに完全に分けた。
###

元記事を表示

JSONテキストをpretty printしたい — Gsonを使って

## 解決したい問題

Java8でプログラムを自作していた。 自作のJavaクラスにtoString()メソッドを実装しようとした。 どういう形式のテキストを出力 するのがいいかと考えて、JSONテキストを出力することにした。 たとえば自作のJavaクラスがこんなテキストを出力するとしよう。

“`
{ “key”: “profile”, “value”: “DevEnv_1.2.3-beta”, “ignoredByKey”: true, “identifiedByValue”: true, “semanticVersion”: “1.2.3-beta”}
“`

正しい形式のJSONになっている。しかし見づらい。このテキストをコンソールに表示しても役に立たない。 適切な改行と字下げを付け加えたい。 任意のJSONテキストを入力として、適切な改行と字下げを加えたJSONテキストに変換する、というメソッドを作りたい。 たとえば上記の横長なJSONテキストを下記のような形式に直したい。

“`
{
“key”: “profile”,
“value”: “DevEnv_1.

元記事を表示

OTHERカテゴリの最新記事