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

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

Javaで競技プログラミングをする際に見つけた面白いメソッド、演算子

#### **Java**で競技プログラミングを始めなければ、一生使わなかっただろうメソッド、演算子があったのでQiitaの練習を兼ねて記事にします。

[AtCoderに登録したら解くべき精選過去問10をJavaで解いてみた](https://qiita.com/0x841/items/0ce887c86cf081312a08)にて紹介されていた回答から興味を持ったメソッド、演算子をまとめます。

# [ABC 081 B – Shift Only](https://atcoder.jp/contests/abc081/tasks/abc081_b)

まずは以下の回答で使われていた、演算子の`|= `
メソッドの`Integer.numberOfTrailingZeros()`です。

~~~java
import java.util.*;

class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc

元記事を表示

Java3週目

第3週目 Jump to java 参照

コンソール入力と出力

生年月日(YYYYY/MM/DD)を入力してください:

このようにユーザーに上記のような文字列を見せるのがコンソール出力であり、上記の質問にユーザーが回答を入力することをコンソール入力という。

コンソールは環境によって変更されることがある。 もし、このプログラムをインテリジェイで実行したなら、インテリジェイのコンソールウィンドウがコンソールになり、ウィンドウ命令ウィンドウでこのプログラムを実行したなら、命令ウィンドウがコンソールになる。 すなわち、コンソールはユーザーの入力を受けたり、ユーザーに文字列を出力する役割をすることを通称する言葉だ。

IOException

上記の例題にmainメソッドを見ると、throwsIOExceptionを使った部分がある。 InputStreamから値を読み込む時はIOExceptionが発生する可能性があるため例外処理をしなければならないが、throwsでその例外処理を先送りさせたのだ。

ストリーム(Stream)とは?

ストリームを最も簡単に理解するには蛇口を考

元記事を表示

Javaでスクレイピングを行う方法(jsoupライブラリを使用する)

# 初めに
本記事は、jsoupと呼ばれるライブラリを使用してJavaでスクレイピングを行う方法について記載しています。
また、公式サイトやネットで調べたことを投稿者なりの理解をまとめた記事となっているのでご注意ください。
以下は、jsoupの公式サイトです。正確な情報はこちらを確認してください。

https://jsoup.org/

# 前提事項
本記事は、Javaを使用するのでJavaの開発環境が必要です。Javaの開発環境が整っていない方は事前に準備をしてください。既に環境が整っている場合は問題ありません。もし、開発環境が整っていない方は、以下に以前投稿者が作成した「Docker、Java、Gradle、VSCode」を使用した開発環境の構築方法について記事がございますので参考にしてみてください。
もちろんEclipse等を使用する方法でも問題ないと思います。また、ビルド自動化システムはGradleを使用していますがMavenに慣れている場合はそちらでも問題ないと思います。(ご自身の慣れている方法で・・・)

https://qiita.com/T-H9703EnAc/ite

元記事を表示

JavaとPythonのHello World(http getバージョン)

## ■前提
Javaのフレームワーク:spring boot
Pythonのフレームワーク:fastapi

## ■本題
### Java
ファイル
“`HelloApplication.java
package com.example.hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloApplication {

public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
}
“`

“`GreetingController.java
package com.example.hello;

import java.util.concurrent.at

元記事を表示

新卒業務未経験SEがJavaを研修で学んだ所感

# はじめに注記
セキュリティ保護の観点で、会社から研修内容については書いちゃ駄目と言われてます。
というわけで、その点への言及はしません。

# 書いている人のスペック
– 文系卒、ユーザー系SIer企業入社2ヶ月目
– 学生時代はVue.jsとpythonをいじって自動化だったり、サーバレスwebアプリを作ったりしてた。
– 故にサーバー周りやMySQLなど、スキル不足がチラつく。
– バックエンドよりもフロントエンドのスキルが好き。
– ぶっちゃけ、今までClassとかドキュメント見ながら書いてた。
– 最近はReactを勉強中Javaも復習しなきゃ…

# JAVAの基礎をサーッと学んでみて

### 最初の所感
今までインタプリタの言語ばっかやっていたこともあって、まず最初に思ったことは、
「コンパイル鬼だるいな、、、」
ってのが正直な感想です。
コンパイルで確認して実行コマンドをまた打って、、、って慣れないなぁと。

だから最初から新卒で入った会社がPHPだとかPythonだとかだと、
この点煩わしくなくて、プログラミングやったことない人は

元記事を表示

【Android】バックグラウンド(フォアグラウンド サービス)とマルチスレッド(Thread)の動きを簡単な事例で実験的に調査

# はじめに

日頃運転する自分の車の燃費を詳細に調べたくて「OBD2」とAndroidスマホを使ったアプリを探していたら自作も出来そうなので挑戦することにしました。簡単に説明すると、「OBD2」アダプタとAndroidスマホをBluetooth接続し、定期的に「OBD2」のアダプタへ問い合わせ、応答を処理(ループ処理)して車の内部情報を数値に変換する、という構成になります。
色々試していく中で、車の燃費を測定するには、ある程度の時間、データを取得しなければいけませんし、そうは言っても、取得開始/終了は画面から操作したいよね、とか、ほかのアプリ立ち上げたら取得が止まってしまう?とか疑問も出てきて調べていくうちに、”マルチスレッド”とか、”バックグラウンド”というワードが出てきました。

調べた結果をもとに簡単なソースコードで試した結果、

1. メインスレッドでループ処理を実行すると、アプリ画面の終了ボタン処理はループ処理の後になる(中断できない)
1. マルチスレッド(Thread)でループ処理を実施すると、アプリ画面の終了ボタン処理でループ処理を中断できるが、マルチタスクメニュー(

元記事を表示

AWS IoTのトピックにJavaプロジェクトからMQTTをpublishした(aws-iot-device-sdk-java使用)

# はじめに
– 結論だけ(何が必要なのかだけ)知りたい人は準備と出来上がったソースたちを読んで下さい。(~~でもできれば私の格闘様子も読んでほしい~~)
– aws-iot-device-sdk-javaを使用したくても公式ドキュメント(英語)しかなくて本当に辛かったので、私みたいな人を救いたくて自分用に残してたメモをほぼそのまま載せることにしました。救えるかは知りません。
– AWSの構築手順などは割愛してます。あくまでJavaプロジェクト側の話のみです。
– aws-iot-device-sdk-javaはv2でなく**v1を使用してます**。v2はまた少し違いそうなのでご注意を。

– 全体の参考ドキュメント
[https://github.com/aws/aws-iot-device-sdk-java](https://github.com/aws/aws-iot-device-sdk-java)

– APIドキュメント
[http://aws-iot-device-sdk-java-docs.s3-website-us-east-1.amazonaws.com](http

元記事を表示

ABC239A~Dの解答[Java]

## はじめに
今回のコンテストはAからDまで全て灰レベルの問題(ちなみにEから緑以上になります)なので、比較的簡単に実装できます。多分。
なお、今回のコードは私が競プロを初めてまだ一週間も経っていない(ratedでコンテスト参加をまだ経験していない)時のコードなので昔提出したものと(書き換えられる場所があれば)ちょっと書き換えたものを載せたいと思います。

では、解答を説明していきます。

## A – Horizon
問題文は[こちら](https://atcoder.jp/contests/abc239/tasks/abc239_a)

普通にdouble型で受け取って問題文の数式の通りに計算してやればACが取れます。
このコードでは誤差を恐れてちょっと面倒な処理をしています。
“`A.java
import java.io.*;
class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputS

元記事を表示

Javaでnullのフィールドをレスポンスに表示

調べてもすぐ出てこなかったのでメモ。

表示させないようにするのはこちらですが…

“`
@JsonInclude(JsonInclude.Include.NON_EMPTY)
“`

nullや空文字でも表示させたいときはこう書く。

“`
@JsonInclude(JsonInclude.Include.ALWAYS)
“`

元記事を表示

MVVM+hilt+LiveDataを使ったシンプルなアプリ(java)

# 概要
– ボタンを押すとAとBが切り替わるだけのアプリです.
– MVVM+hilt+LiveDataを使っています。
– Model側の値更新を元にViewを更新します。
– javaです。

![スクリーンショット 2022-05-27 14.25.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132514/daa6da1c-58aa-842b-b699-6c26b88fc08a.png)

# 構成
– MainActivity : 画面描画とボタン押下時のイベント定義等
– SampleDataModel : testValueを管理するだけのクラス
– SampleDataViewModel : シンプルなviewModel
※SampleDataModelのtestValueが真ならばA, 偽ならばBを画面に表示することを想定しています

“`mermaid
flowchart
SampleDataViewModel — Inject –> MainActivity
Sa

元記事を表示

保存した4本値チャートデータと、PUSH APIで受信したチャートデータをマージした4本値を出力する

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

「Android絵文字ポリシー」に開発者が対応する事

# この記事は
2021年10月の Google Play ポリシーアップデートにより「Android絵文字ポリシー」が追加されました。

追加されたポリシーに対応するためにAndroidアプリで開発者が実装しなければならないことがいくつかあるので記事にしてみます。

# 「Android絵文字ポリシー」について簡単に解説
Googleはこれまで絵文字の更新をOSのアップデートにより新しい絵文字を追加してきました。

最新のOSを搭載する高価格帯の端末ユーザーであれば、最新の絵文字を利用できていたが、それ以外のユーザーは最新の絵文字が送られてきても表示できず豆腐と呼ばれる小さな四角い箱(☐)や、間違ってレンダリングされた絵文字シーケンスとして表示される利用できない絵文字が生じていました。

今回の「Android 絵文字ポリシー」によりOS依存であった絵文字の更新が対応アプリの更新で絵文字をアップデートするようになりました。
最新のOSを搭載する高価格帯の端末ユーザーでなくても最新の絵文字を手に入れ利用できるようになったのです。

簡単に言うと、
**アプリ側で絵文字をサポートしてあ

元記事を表示

開発未経験の素人がSpringBoot & AWSでポートフォリオを作成したら

この度ポートフォリオとして、SpringBootで食事記録管理アプリを作成いたしました。
こちらの記事では、アプリの機能などを紹介していきます。
実際のアプリは下記のURLからご利用可能です。

https://www.boyaki-dining.com

# どんなアプリ?
健康に関する悩みやグチを相談,共有できる食事管理アプリです。
![MyVideo_1_AdobeCreativeCloudExpress (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2448205/002db64d-d41a-f899-1d64-ac6cbb0a01d4.gif)

# 何が出来る?
## 日々の食事の記録がつけられる
・食事の記録を投稿・編集・削除できる
・記録はカレンダー形式で表示されるので、いつ何を食べたかスグに振り返ることが出来る
![MyVideo_3_AdobeCreativeCloudExpress.gif](https://qiita-image-store.s3.ap-northeast

元記事を表示

auカブコム証券のkabuステーションPUSH APIで受信した気配情報対応

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

JavaのServlet(サーブレット)でHello World.

## 環境
– Windows 11
– eclipse 2022-06 [※こちらから日本語版がDownloadできます。](https://mergedoc.osdn.jp/)
– Java, Tomcatは任意のバージョンでどうぞ。
#### 1. プロジェクトの作成
– eclipseの「パッケージ・エクスプローラー」で「動的Webプロジェクトを作成します」を選択し、プロジェクトを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566009/608c7890-daeb-c19d-b430-1d35a7a0fad2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566009/1f1ae2e8-fd47-6540-5caf-611531a7f834.png)
![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

【Java】Hello, World!を出力する

## はじめに

最近、Javaの勉強をはじめました。
とりあえず、`Hello, World!`出力をやったのでメモ。

## 環境構築

まず、環境構築から。

コンパイルと実行を行うために、コンパイラとインタプリタが必要とのこと。
JDKをインストールすればOKみたいなので、インストールしていきます。

### JDKのインストール

JDKにも色々あるそうですが、今回は`Java SE Development Kit`を利用しました。
下記よりダウンロードできます。
[Java SE Development Kit](https://www.oracle.com/java/technologies/downloads/)

dmgがダウンロードされるので、手順に沿ってインストールすれば完了です。

ちなみに今回の環境は下記の通り。
– java: version “18.0.1.1”
– macOS: 12.3.1 (21E258)

## ソースコードの作成

`Main.java`を作成して、下記のコードを記述します。

“`java: Main.java
public

元記事を表示

【SAP BTP】CAP Service SDK for JavaでOData APIを作ってみる(2)

# はじめに

[CAP(SAP Cloud Application Programming Model)](https://cap.cloud.sap/docs/)を利用してBTP環境にデプロイするODataAPIを作ってみます。(Java)

前回の記事ではサンプルを使ってCAPアプリケーション開発の全体的な流れを確認できたので、今回は自分で定義したデータモデルをサービスとして公開してみます。
また、カスタムロジックでODataリクエスト処理(CRUD処理)を試してみます。
【前回】
[【SAP BTP】CAP Service SDK for JavaでOData APIを作ってみる(1)](https://qiita.com/yonekura-h/items/594de263631726b8881a)

# 前提
(1)があるので事前準備等は参考にしてください
[CAPプロジェクトの作成](https://qiita.com/yonekura-h/items/594de263631726b8881a#cap%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%

元記事を表示

1回だけ発動するClickEventを作る

# 1回だけ発動するClickEventを作る ~Spigot~

ちょっとしたメモ程度に書くことにします。
初めての投稿なので読みにくくなってしまっているかもしれませんがどうぞ。

## ClickEventが何度も発動してしまう
「一度だけクリックして処理を行うことのできるチャットメッセージ」を送信できるようにしたいなと思い様々なところのスレッドを覗いてみて、どうにかこうにか
* クリックしたら様々な処理が実行されるメッセージ

を作成することができた。
しかしそのメッセージはクリックされると何度でも処理を行ってしまう。
一度だけ行いたい処理を任せようと思っていたがこれではいけない。
「only once」など私の貧相なボキャブラリの中から絞り出した英単語を並べて検索をしてみるも、Javaに触れ始めて1週間も経っていない私にはなんだか難しい魔法の解説をしているようにしか見えなかった。
早い話が理解することができなかったのだ。

というわけで、無い頭からアイデアを絞りだしてどうにかこうにか形になるものを作ってみたので書き残してみる。

## ClickEventと独自コマンドのリレ

元記事を表示

Java on Azure 実践開発【Blob Upload ④: 署名付き URL を使ったアップロード編】

## はじめに

本記事は、『Java on Azure 実践開発 Blob Upload』シリーズの第4回「期限付き URL を使ったアップロード」編です。
サンプルコードは、[kohei3110/JavaOnAzure-BlobStorage](https://github.com/kohei3110/JavaOnAzure-BlobStorage) に上がっています。

## シナリオ概説

本シリーズでは、Blob Storage へのファイルアップロードについて、Azure を使った Java アプリケーションのサンプルコードを使用しながら、開発方法をご紹介します。

一口にファイルアップロードといっても、あらゆる方式があるかと思います。例えば、以下のようなものがあります。

| No. | シナリオ | 概要 | 記事 URL |
| :— | :— | :— | :— |
| 1 | サーバー経由でのストリームライクなアップロード | SAS の流出を懸念する場合、サーバー経由でのストリームライクなアップロード | [Java on Azure 実践開発

元記事を表示

Java on Azure 実践開発【Blob Upload ③: 定期アップロード編】

## はじめに

本記事は、『Java on Azure 実践開発 Blob Upload』シリーズの第3回「定期アップロード」編です。
サンプルコードは、[kohei3110/JavaOnAzure-BlobStorage](https://github.com/kohei3110/JavaOnAzure-BlobStorage) に上がっています。

## シナリオ概説

本シリーズでは、Blob Storage へのファイルアップロードについて、Azure を使った Java アプリケーションのサンプルコードを使用しながら、開発方法をご紹介します。

一口にファイルアップロードといっても、あらゆる方式があるかと思います。例えば、以下のようなものがあります。

| No. | シナリオ | 概要 | 記事 URL |
| :— | :— | :— | :— |
| 1 | サーバー経由でのストリームライクなアップロード | SAS の流出を懸念する場合、サーバー経由でのストリームライクなアップロード | [Java on Azure 実践開発【Blob Uploa

元記事を表示

OTHERカテゴリの最新記事