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

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

[速習] Spring 第3回 ソフトウェアのプロフェッショナルへの道 (Spring BootとSpring Frameworkのサポート情報)

![c03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521573/ec287ad0-1a9c-7f2b-c3e0-1ea785d9d33f.png)

https://qiita.com/ShigemoriMasato/items/754363ffd4335251c438

前回の記事では、Springの中心的な特性である依存性注入(Dependency Injection, DI)とAOP(Aspect Oriented Programming)について説明しました。今回は、Spring BootとSpring Frameworkのサポート情報について深堀りしていきます。

## サポートについて

フレームワークやライブラリのサポート期間は、その製品が安全で、信頼性が保証されている期間を示します。サポート期間中は、セキュリティアップデートやバグ修正が提供され、アプリケーションは新たに発見された脆弱性やバグから保護されます。

しかし、サポート期間が終了すると、これらの更新が停止します。この結

元記事を表示

【JAVA・学習ログ①】プログラムの基本構造/変数・定数の宣言

無知識・未経験の事務系OLによるプログラミング学習備忘録です。

≪使用教材≫スッキリわかるJava入門 第3版 スッキリわかるシリーズ

## ■プログラムの基本構造
![スクリーンショット 2023-07-31 224854.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520365/508ccef8-5691-c964-d6cc-61a78760f3db.png)
【実行】
![スクリーンショット 2023-07-31 231046.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520365/4a361f26-c11c-d4a5-8cec-6ae96e51b7d8.png)

*文末の「;(半角)」は忘れがちになるので気を付ける

## ■変数宣言

変数…データ値を代入できる箱のようなもの。
![スクリーンショット 2023-08-01 004233.png](https://qiita-image-sto

元記事を表示

Javaのフラグの利用について学習してみた

# 概要
Javaのフラグの利用について学習してみました。以下のページを参考にしました。

フラグの利用

正規表現でフラグを有効にする

https://www.javadrive.jp/start/regex/index16.html

CASE_INSENSITIVEフラグ(大文字と小文字を区別しない)

https://www.javadrive.jp/start/regex/index17.html

MULTILINEフラグ(複数行モードを有効にする)

https://www.javadrive.jp/start/regex/index18.html

DOTALLフラグ(ドット(.)が行末記号とマッチする)

https://www.javadrive.jp/start/regex/index19.html

UNIX_LINESフラグ(\nのみ行末記号として認識される)

https://www.javadrive.jp/start/regex/index20.html

COMMENTSフラグ(パターンの中にコメントを記述する)

https://www.javad

元記事を表示

【自作アプリ】実装機能④

【画面レイアウト】
![集計画面➀  実装機能④.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918178/34ca9d7f-f3ae-5ebc-fa41-8e629daf0787.png)

![集計画面➁ 実装機能④.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918178/fef29be1-d95a-cfba-97d4-1d3a15f5e253.png)

![集計画面➂ 実装機能④.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918178/044e59d9-4503-47e6-a24e-896786dee4b9.png)

![集計画面④ 実装機能④.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918178/8f6ee053-a14

元記事を表示

【Assertj】あまり知られてないアサーションメソッドPath編

# はじめに
みなさん、単体テストを書くときにどのアサーションを使うか考えていますか?
おそらく多くの方がしっかりと考えて書いていると思います。
~~まさかisEqualToしか使ってないなんてことはないですよね?~~
ここではPathインターフェースを対象としたアサーションメソッドを紹介します。

:::note warn
ここではアサーションメソッドのみを紹介します。
テストに関するベストプラクティスなどには触れません。
:::

## 環境について
– Java17
– SpringBoot 3.1.2
– spring-boot-starter-test
– JUnit 5.9.3
– assertJ 3.24.2

# AbstractPathAssert
assertThatにPathを指定するとこのAssertクラスが返されます。
java.nio.file.Pathに含まれるメソッドに近いものを一通りカバーしています。

## exists()
対象のパスが**存在すること**をテストするアサーション。
“`Java:exists/doesNotEx

元記事を表示

【Java】LinkedListの使い方

# はじめに
## LinkedListとは
* コレクションの1つ(他のコレクションには[ArrayList](https://qiita.com/smartPG/items/07d8bd8540eb160e78c8)もある)
* `連結リスト`
* ArrayListと作りは同じで、クラス内部の作り(内部実装)に違いがある
## ArrayListとの違い
ここのでの`速い`はメリットで、`遅い`がデメリットです。
### 1.内部実装の違い
#### 内部構造
* ArrayListとは、それぞれの箱が整列されている。
* LinkedListは、それぞれの箱自体はバラバラ。箱は「次はどの箱に繋がるか」という`連結`情報を持っている。(数珠つなぎ)

### 2.要素の挿入や削除に対する違い
#### 要素の挿入・削除 add(),remove()
* ArrayList…`遅い`
途中の要素が削除されると、それより後ろのにあった要素を1つずつ前に移動させていく処理が遅い理由(後ろの要素すべてを`「玉突きコピー」`)
* LinkedList…`速い`
remove()を行ったと

元記事を表示

Javaのパターンの記述について学習してみた

# 概要
Javaのパターンの記述について学習してみました。以下のページを参考にしました。

パターンの記述

文字クラスを使って色々な文字にマッチするパターンを記述する

https://www.javadrive.jp/start/regex/index8.html

文字列の先頭や末尾などの位置にマッチするパターンを記述する

https://www.javadrive.jp/start/regex/index9.html

最長一致数量子、最短一致数量子、強欲な数量子の違い

https://www.javadrive.jp/start/regex/index11.html

直前の文字を繰り返す文字列にマッチするパターンを記述する

https://www.javadrive.jp/start/regex/index10.html

複数の文字列のいずれかにマッチするパターンを記述する

https://www.javadrive.jp/start/regex/index12.html

正規表現グループを設定してパターンの一部にマッチした文字列を取得する

https://

元記事を表示

java アウトプット 変数

こんにちは。yukaです。
javaを勉強し始めました。自分の備忘録用として投稿しています。
今回はjavaの変数について簡単に要点だけを書いていきます。

# 基本データ型の種類
Javaの基本データ型は以下の8種類あります。

| データ型 | bit数 | 値 |
|:———–|————:|:————:|
| boolean | 1bit | true あるいは false |
| char | 16bit | 文字 |
| byte | 8bit |整数(扱える範囲は -128~127) |
| short | 16bit | 整数(扱える範囲は-32,768~32,767)|
| int | 32bit | 整数(扱える範囲は-2,147,483,648~2,147,483,647) |
| long | 64bit |整数(扱える範囲は-9223372036854775808~92233720368547758

元記事を表示

java アウトプット 繰り返し処理

# 拡張for文を理解しよう
配列から要素を取り出すために、拡張for文を使ってみましょう。
“`
class Main {
public static void main(String[] args) {
int[] scores = {1, 5, 10};

for(int score : scores) {
System.out.println(score);
}
}
}
“`

コードを実行すると以下の通りになる。
“`
1
5
10
“`
# 拡張for文の使い方を理解しよう
拡張for文を使用する際の構文を確認しましょう。
“`
for ( 要素を格納する変数宣言 : 配列あるいはArrayListの変数名) {
取り出した要素を使用して行う処理
}
“`
この記述を行うと、以下のように動作します。

① 配列、あるいはArrayListから要素を1つ取り出す
② 取り出した要素を変数に代入する
③ {}内の処理を行う
④ 配列、あるいはArrayListの要素数分だけ処理を繰り返す

先ほど以下のようにコ

元記事を表示

Spring-GraphQL with WebMVC で Resolver を並列化して応答時間を短縮する

# はじめに
Spring GraphQL で実装した GraphQL API を WebMVC と組み合わせて動かしていると、
すべての Resolver が直列で動いているため、 全 Resolver の実行時間が累積して応答が遅くなっていることに気付きました。

今回は、 Resolver の実行を並列化するために行った内容を記載します。

# 環境
– java 11
– spring-graphql 1.1.5
– spring-webmvc 5.3.29

# 遅くなる例
例えば、以下のようなデータ構造をホストする GraphQL API があるとします。

“`mermaid
erDiagram

pull_requests ||–o{ tags : tags
pull_requests ||–o{ reviewers : reviewers

pull_requests {
id int PK
title varchar
}
tags {
id int PK
pull_request_id int
name varchar
}
review

元記事を表示

java アウトプット 条件分岐

# if文を使ってみよう
“`
class Main {
public static void main(String[] args) {
int value = 3;

if (value > 0){
System.out.println(“値は正です”);
}
}
}
“`
記述できたらコードを実行しましょう。
`「値は正です」`と出力されます。

# if文の使い方を理解しよう
if文は以下のように記述します。
“`
if ( 条件式 ) {
条件式を満たす時に実行する処理
}
“`
Rubyでの記述方法と異なるのは以下の点です。

・条件式を()で囲む必要があること
・行いたい処理を{}で囲む必要があること

さらに細かい条件を指定するためのelseやelsifについて、RubyとJavaで大きな違いはありません。
“`
class Main {
public static void main(String[] args) {
int value = 3;

if (value > 0){

元記事を表示

java アウトプット 配列

Javaの配列は、格納する要素の数を最初に決める必要があり、かつ後で要素数を変更することができません。
要素を増やす場合は、サイズの大きな配列を新たに作成して元データをコピーするか、ArrayListというリストの一種を使用します。

ArrayListは要素の数を変更できる配列のようなもので、ウェブアプリケーション開発ではよく使用されます。

# 配列を使ってみよう

“`
class Main {
public static void main(String[] args) {
int[] scores;
scores = new int[3];

scores[0] = 1;
scores[1] = 5;
scores[2] = 10;

System.out.println(scores[0]);
System.out.println(scores[1]);
System.out.println(scores[2]);
}
}
“`

以下のように結果が表示されます。

“`
1
5
10
“`

元記事を表示

SpringBootTestでテスト時のみ使用するRestControllerを作成

@SpringBootTestの際にmockなどではなくテスト時のみ有効になる“`@RestConroller“`を使いたい場合のやり方について。“`@TestConfiguration“`で“`@RestConroller“`を定義する。

# ソースコードなど

“`gradle:build.gradle
plugins {
id ‘java’
id ‘org.springframework.boot’ version ‘3.1.2’
id ‘io.spring.dependency-management’ version ‘1.1.2’
}

group = ‘com.example’
version = ‘0.0.1-SNAPSHOT’

java {
sourceCompatibility = ’17’
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()

元記事を表示

[速習] Spring 第2回 ソフトウェアのプロフェッショナルへの道 (SpringにおけるDI/SpringにおけるAOP)

![c02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521573/b852ac8a-c0f8-4529-1075-b2386ac2c51c.png)

https://qiita.com/ShigemoriMasato/items/c0e015098730d93a188b

前回の記事では、Springの全体像とその魅力、そしてWebアプリケーションの基本について説明しました。今回は、Springの中心的な特性である依存性注入(Dependency Injection, DI)とAOP(Aspect Oriented Programming)について深堀りしていきます。

## SpringにおけるDI

DI[^1]とは、オブジェクト[^2]間の依存関係を外部から注入する手法で、オブジェクトの生成とそのライフサイクルの管理をSpringのコンテナ[^3]が担当します。このDIの仕組みにより、コードの結合度を下げ、テストや再利用が容易な設計を実現することが可能になります。

“`mermaid

元記事を表示

【SpringBoot】JavaでCRUDアプリを作る

# はじめに
Java言語の学習目的で今回はCRUD機能を持ったアプリを制作します
CRUDとはデータベース操作の基本的な4つの機能を表し、「Create(作成)」「Read(読み取り)」「Update(更新)」「Delete(削除)」の頭文字を取っています。
作成するアプリは`商品管理アプリ`になります
データベースと連携して商品情報が載った一覧ページを作成したり、一覧から商品を検索したり、商品情報の削除、更新などができるWEBページを作成することが目的になります
知識はGPT4によるチャット形式で必要な情報を引き出し作成を実行しているため2021年9月までの情報をもとに作成しています

## ログイン機能について
以下の記事ですでに実装済みなので興味があればこちらを参照ください

https://qiita.com/EasyCoder/items/3a717db1761ddd9d3ae0

## 環境要件

Javaのバージョン: 17
Spring Bootのバージョン: 2.5.4

MacOS
Eclipse(IDE)
MAMP(MySQL)

プロジェクト名:Product

元記事を表示

初心者の初心者による初心者のためのJava入門【Part1】

# はじめに
はじめまして!
私はIT企業の内定を獲得した化学工学専攻の24卒です。
研修の一環としてJavaを学ぶ必要があったので、学んだことを備忘録代わりに残していきたいと思います!

# 標準出力
標準出力を行うメソッドには以下の3つがあります。
| メソッド | 特徴 |
|:————|————:|
| print | 改行なしの出力 |
| println | 改行ありの出力 |
| printf | 書式設定の出来る出力 |

言葉だけではわかりにくいと思うので実際の出力を見ていきます。

## printメソッド
“`java:Sample.java
public class Sample{
public static void main(String[] args){
int year = 2023;
int number = 3;
System.out.print(year + “年は” + nu

元記事を表示

DJI Mavic 2 Pro を自作Androidアプリで自動操縦させる(3)~サンプルプログラムの実行(実行編)~

今回はMobile SDK(Android版)のサンプルプログラムを動かすための準備をします。
[前回の記事](https://qiita.com/shiiiinnooooo/items/32f59f62fdc3ec3f98c0)では、サンプルプログラムを実行するための準備を行いました。

# サンプルプログラムのダウンロード

[このサイト](https://github.com/DJI-Mobile-SDK-Tutorials/Android-ImportAndActivateSDKInAndroidStudio)からサンプルプログラムをダウンロードしましょう。
今回実行するサンプルプログラムは、DJI SDKが正常に実行されることを確認する、というだけのアプリです。

早速ダウンロードしていきます。
下記画像の右上にある緑色の「Code」というボタンを押すと、zip形式でダウンロードできます。
![スクリーンショット 2023-07-31 11.57.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

[備忘録][GCP][Datastore] datastorecallbacks.xml を Maven で出力する

# 1. はじめに

この記事は Google Cloud Platfrom (GCP) の Datastore 処理のフック呼び出し(データストア コールバック)の設定が定義された構成ファイル『datastorecallbacks.xml』を Maven で出力する方法の備忘録になります。
事の発端は App Engine アプリケーションのソースコードを Maven でパッケージビルドした時に、datastorecallbacks.xml ファイル が期待する場所(*~/WEB-INF/classes/META-INF*)に(正確にはどの場所にも)出力されていないことに気づいたからですが、これを解決するための情報が見つからず、とても苦労しました。
私と同様にハマる人がいるかもしれないと思いましたので、記録としてここに書き残します。

なお、データストア コールバックの内容についてはここでは説明しません。詳細については以下サイトをご覧ください。

データストアでのコールバック  |  Java 8 の App Engine スタンダード環境  |&nbs

元記事を表示

OpenCV for Java at Scilab

:::note warn
**この記事は執筆時点の環境に基づいています。その他の環境では状況が異なる場合があります。ご留意ください。?**

環境:
– Scilab 2023.1.0 ( windows x64 )
– IPCV 4.1.2 ( ATOMS package )
– OpenCV for Java 4.6.0 ( official release build )
:::

## はじめに

唐突ですが皆さんScilab使っていらっしゃいますか?
自分は割と昔(ver.2か3の頃)から使っていますが、使用頻度自体はそれほどでもなく、また用途も「簡単なプログラム電卓代わり」のライトユーザーです。?
そんな自分ですが、たまたまScilabでOpenCVを使う機会があったのでちょいと足跡を残しておきます。
なお、**「OpenCVならPythonでしょ!」** というツッコミはご勘弁ください w

## OpenCV at Scilab

ScilabでOpenCVを使用するなら、ATOMS ( AuTomatic mOdules Management for Scilab

元記事を表示

DJI Mavic 2 Pro を自作Androidアプリで自動操縦させる(2)~サンプルプログラムの実行(準備編)~

今回はMobile SDK(Android版)のサンプルプログラムを動かすための準備をします。

[前回の記事](https://qiita.com/shiiiinnooooo/items/21689dff1ffcf1b91104)では、AndroidStudioでDJI Mobile SDKを使用できるようにしました。

# 手順
1. DJI Developerの登録
1. App Keyの取得

# DJI Developerの登録
まずはじめに、DJI製品を使用する際に必要となるDJIアカウントを作成する必要があります。
[DJIの公式サイト](https://www.dji.com/jp)からアカウントを作成します。

登録の際には[このサイト](https://sekido-rc.com/blog/technical/210329_002/)を参考にさせていただきました。

[DJIの公式サイト](https://developer.dji.com/)から、登録を行います。
まずはじめに、サイトの右上から「Register」を押してください。
![スクリーンショット 202

元記事を表示

OTHERカテゴリの最新記事