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

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

CustomVisionからRESTで予測結果を取得

# はじめに

前回の記事の続きになります。

https://qiita.com/MEGAERA/items/5e5f222839af57eaacb0

今回は、前回作成したモデルにRESTで画像データを送信し、予測結果の取得を行う。

# headerとbodyに設定する値を確認

CustomVisionのポータルから、Peformanceタブを選択。
Prediction URLを押下する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118127/645e72cb-e6eb-511d-793e-a74e8d83eda9.png)

※この際、作成したモデルが(compact)となっていると、Prediction URLが非活性となる。
 その場合はprojectSettingからDomainsを変更して、再度モデル作成を行う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

SpringBoot備忘録

# はじめに
たまに使用するコマンドとか忘れがちなので記録します。

# SpringBoot起動

“`bash
# maven
mvn spring-boot:run -Dspring-boot.run.profiles=dev,local -Dspring-boot.run.arguments=パラメータ

# gradle
gradle bootRun -Pprofiles=dev –args=’パラメータ’
“`

元記事を表示

Tomcatをコマンドラインで操作するのに必要なこと

主にホットリロード目的。
大抵のサイトには

“`
http://localhost:8080/manager/text/relaod?path=
“`

を叩けと書いてあります。ちなみにGETです。
Basic認証がかかっているなら

“`
curl -XGET -u : http://localhost:8080/manager/text/relaod?path=
“`

こんな感じです。
しかし私の場合403になってしまい、なぜ…と思っていたら tomcat-users.xml にユーザーの追加が必要でした。

“`

Java 基礎知識① オブジェクト指向と変数宣言(データ型)について

## Javaとは
サーバーサイド言語の一つで、大規模開発に使用されることが多い言語です。
オブジェクト指向に対応している言語であり、プログラミングの基礎が詰め込まれた言語になります。

## オブジェクト指向とは
簡単にいうとソースコードを部品化して、プログラムを組み立てやすくする考え方です。
Javaでは機能ごとのソースコードをクラスごとに分けて、実装や保守などをしやすくなります。
大規模開発では必須の開発方法です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2613586/f998ec95-7eba-4bcf-6570-477e658cc3c2.png)
この画像では、剣、敵、銃を部品化してクラス別のファイルで管理をしています。
こうすることで、例えば剣の攻撃力を上げる修正が入っても、剣クラスの内容だけ修正すれば良いので管理もしやすくなりますし、実装もしやすくなるのです。

## Javaプログラムの基本構造
Javaプログラムを動かすMainクラスは以下のようになります

元記事を表示

Javaのメール送信について (2パターン実装してみた)

実務の中で初めて触れたjavaのメール送信について、簡単に備忘録として書き残しておこうと思います。

メール送信に困っている方の参考にもなれば嬉しいです。

## 利用するメールサーバー等の設定

今回は、springを利用しているので、ymlファイルを利用しています。
また、Gmailのサーバーを利用してGmailからメール送信します。

※ springを利用していない方はpropertyファイルに記載が必要になります。

“`yml:
spring:
mail:
host: smtp.gmail.com
port: 587
username: ユーザー名
password: パスワード
properties:
mail:
smtp:
auth: true
starttls.enable: true
“`

gmailにログインする時のパスワードではないので、注意が必要。


送信依頼をしてきたメールサーバが正規のクライアントかど

元記事を表示

【Java】「文字の出力」 ――サンプルコード

備忘録として、他の言語に慣れすぎて書き方を忘れた人に。

“`java:Main.java
public class Main {
public static void main(String[] args) {
System.out.println(“Hello World!”);
}
}
“`

“`:実行結果
Hello World!
“`

mainの書き方もご参考に。

元記事を表示

Spring Bootでクライアントから画像ファイルをアップロードしてDBに保存・表示する方法

SNSアプリを作る際は、ユーザーのアイコン画像をアップロードして保存・表示する機能が不可欠である。あまり難しい処理ではないので記事化。

![スクリーンショット 2023-02-01 21.43.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982162/2b3d6470-0041-d473-8431-243ede32cbe0.png)

現在筆者もSNSアプリを作っており、ログインに成功するとこのような画面になる。

![スクリーンショット 2023-02-01 21.43.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982162/3803fd88-b441-4fa3-a95a-d604b15e4c47.png)

左上の自分のアイコンをクリックすると自分のプロフィールを編集する画面になる。今回はこちらから、アイコン画像を変えていきたい。
※CSSは面倒なので適当です

この画面のHTMLは次の

元記事を表示

FizzBuzz問題のちょっと改良版

いつもならifでi%3==0 %% i%5==0を入れてから
3で割り切れる場合と5で割り切れる場合を判定したが
今回は3でも5でも割り切れる場合を記述せずに両方を判定するコードを記述する。

“`java
//今回はelse ifを使わずif使う。
//3で割り切れる場合でも次の条件判定if(5で割り切れるかどうか)がスキップされないので、else ifで15入れなくてよい
public class Main {
public static void main(String[] args) throws Exception {
String output;//println使わずに出力するメンバ変数を決めておく。
for (int i = 1; i <= 30; i++){ output="";//初期値 if (i%3==0) { output="Fizz"; } if (i%5==0){

元記事を表示

for文, 拡張for文, イテレータの3種類の方法を使用してArrayListの中身を順に取り出してみた。

# 1.はじめに
ラーメンの提供している姿をみていたらArrayListのことを思い出してしまった。
JavaのArrayListクラスに慣れるために3つの方法を使用して中身を順に取り出す練習をすることにした。
ArrayListクラスは実務でも非常に多く使用されており、平然と使えるようにならないといけない。

# 2.3種類の方法

for文

一般的な繰り返し方法。__変化式を記述できるのが特徴__
“`java
for (int i; i < リスト変数.size(); i++){ // 変数iがリスト変数の要素数未満の場合に繰り返す処理 ... } ```

拡張for文

for文を可読性の高いものにした方法。**すべての要素を順番に処理していくのが特徴**
“`java
for (リスト要素の型 i : リスト変数){
// リスト変数の要素数まで繰り返す処理

}
“`

元記事を表示

ARサンプルアプリ

https://github.com/iwata-koji/AR_Sample

元記事を表示

FileReader

FileReader is subclass of InputStreamReader
read() returns char value or -1 if eof occur.

“`java
public class Outer {
public static void main(String[] args) {
FileReader r = null;
try {
r = new FileReader(“C:\\dirtest\\testmakefile.txt”);
while(true) {
int i = r.read();
if(i!=-1) {
System.out.print( Character.toChars(i));
} else {
break;
}

元記事を表示

File class

indicate directoryの配下のfile/directoryを表示するプログラム
Fileはfile path , directory pathをmanageする
listFiles()は指定ファイルの配下のファイルをarrayとして返す
listFiles()にFileFilterを指定するとfilterをかけた結果を返す

“`java
public class Outer {
public static void main(String[] args) {
File f = new File(“C:\\dirtest”);
FileFilter ff = pf -> {
if(pf.isDirectory()) return true;
if(pf.getName().endsWith(“.java”)) return true;
return false;
};
method(f, “”,null);
Sy

元記事を表示

Windows Javaインストール

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

元記事を表示

ラッパークラスJava.lang.IntegerをArrayListに格納して出力してみた

コレクションのArrayListの練習をしてみた。

今回はラッパークラスJava.lang.IntegerをArrayListに格納して出力してみる。

“`javascript:HerroRamen.js
import java.util.ArrayList;

public class HelloRamen {
public static void main(String[] args) {
ArrayList numbers = new ArrayList();

numbers.add(17);
numbers.add(43);
numbers.add(65);

for (int number : numbers) {
System.out.println(number);
}

}
}

“`

ArrayListはjava.utilパッケージに属し、コレクションフレームワークである。
ジェネリクスと呼ばれる「<>」記号を使った表現が特徴だ。
配列とは違い、データを追加

元記事を表示

stream peek()

peekはimediate processの途中で値を出力したりするときに使う
値を変更はしない
stream lineはeach elementについてfilter,peek,map,forEachされるイメージ

“`java
public class Outer {
public static void main(String[] args) {
List l = List.of(
“sato-a”,
“sato-b”,
“sato-c1”,
“sato-d1”
);
Stream s = l.stream();
s.filter(x -> x.length() == 6).peek(System.out::println).map(x -> x.toUpperCase()).forEach(System.out::println);
}
}

元記事を表示

Collectors#partitioningBy(), groupingBy()

groupingBy()はgrouping keyとなるものをFunctionとして指定
Map(key, List)をreturnする。
partitioningBy()はtrue/false conditionとなるものをPredicateとして指定
Map(key, List)をreturnする。
Collectorをsecond argumentに追加すると、Listに対してさらに処理してくれる。

“`java
class SampleClass {
String name;
int price;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public SampleClass(String name, int price) {
this.name = name;
this.price = price;

元記事を表示

JavaのMapを値(int)でソートする

Mapを値の降順で出力したかったのだけど、
調べてもよく分からないAPIを利用する方法しか見つからなかったので、
普通の制御文だけでソートするコードを書きました。

“`Main.java
//キーはString、値はint
Map map = new HashMap();

//中身の格納は省略

//値の最大値と最小値を求める
int max_v=-2_147_483_648;
int min_v=2_147_483_647;
for(String key:map.keySet()) {
max_v=Math.max(max_v, map.get(key));
min_v=Math.min(min_v, map.get(key));
}

//最大値から最小値まで降順に総当たりしてヒットしたら出力
int i=max_v;
while(i>=min_v) {
for(String key:map.keySet()) {
if(map.get(key)==i) {
System.out.printl

元記事を表示

Spring boot で ダウンロード機能 memo

# 非同期通信
エラーも吐かないし、正常にレスポンスしている。
なぜか、ダウンロードが開始されない。

**非同期通信 (ajax) でダウンロードをするとブラウザのダウンロード機能が死にます。**

# ブラウザの仕様
POST メソッドでダウンロードできない。
**ブラウザにもよるが仕様により GET メソッド じゃないと ブラウザのダウンロード機能が死にます。**

元記事を表示

method refference of particular type

# type::methodのメソッド参照
instance::methodではなく、type::methodを渡すタイプ。
instanceを渡さないので、method発行する側が
first argumentにtypeのinstanceを指定する。
下記のsampleで、SampleClass#apply(String u)は、single argumentだが
SampleClass::applyのようにメソッド参照指定した場合、apply発行側が
SampleClassのinstanceを指定する。instanceは、first argumentに追加される
もともとfirst argumentであるString uは、押し出される形でsecond argumentになる。最終的にapply(SampleClass s,String u)。
そして、methodは、double argumentとなり、発行側としてはBiFunctionとなる

この仕組みはqiitaで以下のQ&Aを起票し、@uasi氏より回答をいただき、理解することができた
https://qiita.com

元記事を表示

BitbucketPipelinesでCI/CDに挑戦する その2:テスト結果をS3にアップロードする

## 概要
既にある程度の開発が進んでいるBitbucket上のプロジェクトにPipelinesを使って継続的あれこれする機能を追加しようという、解説というよりも私の挑戦の記録です。

前回は初のPipelinesの利用として「[手動でテストを実行](https://qiita.com/talesleaves/items/99a75ca0b831f92be34f)」しました。
その2では「オープンソースの開発で、生成されたテスト結果を開発リソースとして共有する」シーンをを想定して、テスト結果をAWS S3にアップロードするまでを扱います。記事の分量から、CloudFrontでの配信やビルドステータスへのアーティファクトの公開URLの追加は次回以降に扱います。

### 記事内で使用している環境
– Java17
– Gradle7.6
– JUnit,JaCoCoでテストのレポートを作成
– BitbucketのリポジトリでPipelinesを有効化している([その1](https://qiita.com/talesleaves/items/99a75ca0b831f92be34f)を

元記事を表示

OTHERカテゴリの最新記事