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

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

【java】基本構文(型編)

# ・はじめに
Java一年未満の方へ研修用
型、変数に関して少し掘り下げて紹介

# ・対象
・Java一年未満

# ・型
#### ◆型とは
 ・データを扱うためにその種類に応じた型が決まっている。
  その種類は、大きく分けてふたつある。プリミティブ型と参照型。

#### ◆プリミティブ型
 <特徴>
  全て変数のサイズ(bit)が決まっている。
  規定のサイズを超える値を格納することはできない。
  メモリのスタック領域に値が入っている

 <種類>
  short、byte、long、int、double、float、char、boolean

ABC277A~Eの解答[Java]

## はじめに
今回はC、Eはコンテスト後のもの、他はコンテスト中のものを載せようと思います。

では、見ていきましょう。

## A – ^{-1}
問題文は[こちら](https://atcoder.jp/contests/abc277/tasks/abc277_a)

$P_i$に重複はないので普通に先頭から見ていけば良いです。
“`A.java
class Main{

static final boolean autoFlush = false;
static final Library System = new Library(java.lang.System.in,java.lang.System.out,java.lang.System.err,autoFlush);

public static void main(String[] args){

//N、Xの受け取り
int N = System.in.nextInt();
int X = System.in.nextInt();

//indexを入れる変数
int ans =

SpringBootのテストスライスアノテーションについて

# 概要

SpringBootのテストスライスアノテーションについて、どのような実装になっているのか探ってみた。

# テストスライスアノテーションとは?

まず、ここでのテストスライスアノテーションは、アプリケーションの全量ではなく一部だけをテストしたい、といった場合に利用するアノテーションのことを指す。([このページ](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix.test-auto-configuration.slices)にSpringBoot公式で提供されている全量が記載されている)

テストスライスアノテーションを利用する動機としては、ユニットテスト実行時間は最小限に抑えつつ、意味のあるユニットテストをしたい、という希望を叶えることにある。
SpringBootで作成するWebアプリケーションであれば、リクエスト・レスポンスのバリデーションや変換を受け持つController層、ビジネスロジックを持つService層、DB等へのアクセスを受け持つReposito

SpringのCache機能をサクッと利用する

Spring(Spring Boot)のCache機能を使ってメソッドの呼び出し結果をキャッシュしておくサンプルです。

# 動作確認バージョン

* Spring Boot 2.7.5
* Spring Framework 5.3.23

# Cache機能の有効化

`@EnableCaching` を付与するとSpring Bootさんの自動コンフィギュレーション機能によってSpringのCache機能が利用できるようになります。

“`java
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;

@SpringBootApplication
@EnableCaching // ★★★アノテーションを追加
public c

【selenium】seleniumの設定~IEモードで実行をやってみた

# 概要
当記事では
  ・Seleniumの実行環境設定
  ・IEモードの実行
の方法について説明します。

# Seleniumの実行環境設定
## jarファイルなど準備
下記のサイトからzipをダウンロードし解凍。
https://selenium.dev/downloads/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33640/f728db4d-0165-1d93-0169-0fc2f7297596.png)

## eclipseのビルドパス設定
プロジェクトのコンテキストメニューから
  ビルド・パス > ビルド・パスの構成
を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33640/644ce540-0aac-56e5-f1b5-47f6aca0fd88.png)

ライブラリータブを表示後、「外部JARの追加」をクリックするとファイル選択を求められるので、

#6 SpringでOracleデータベースに接続する

# 前提条件

1\. 必要インストール
 (1) [Eclipse 2022](https://mergedoc.osdn.jp/)
 (2) [Oracle SQL Developer 21.2.1](https://www.oracle.com/jp/database/sqldeveloper/technologies/download/)
 (3) [Oracle Database 21c Express Edition](https://www.oracle.com/jp/database/technologies/xe-downloads.html)
 (4) [Oracle Database JDBC driver](https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html)

2\. プロジェクトの設定内容
 (1) Eclipseでプロジェクトを立ち上げる(ファイル > 新規 > Spring スターター・プロジェクト)
![image.png](https://qiita-im

【Java】toCharArrayメソッドで2バイト文字が渡ったときの扱い

# はじめに
Java問題集を解いていて、疑問に思ったことを調べたメモ書き
基本情報技術者試験H27年度春期午後問11「セキュアプログラミング」の設問1,dについて

## 1. char型からint型へのキャスト
この問いでは、char型からint型へのキャストも気になったので触れる。
### 1. 以下の記事を参考にした
https://qiita.com/nkojima/items/d358f99efa71655911ea

char型は1バイト文字を扱うための型で、intは通常2バイト以上らしい。
小さいほうから大きい方へキャストするだけなので、可能とのこと。(符号ありの場合など例外あり)

## 2. toCharArrayメソッド
String型の変数でtoCharArray()メソッドを使用し、
`char[] chars = s.toCharArray();`

のように使用して、文字列を文字配列に置き換えたあと、1文字ずつに対して何らかの処理を行う際に用いる。
この時に、String型の変数の中に漢字などの2バイト文字が入っていたらどうなるか?と迷ってしまった。

Javaで何か作ってみる(2022/11/11 Day22)

## 今日やった事
– Mac環境で、VSCodeでJavaプログラムが実行出来るように開発環境を構築した。
## 参考にしたもの
– [Visual Studio CodeでJavaプログラム開発環境構築](https://qiita.com/jsj05543/items/da54e5db258bc9d2538a)
– [Java環境構築(Adoptium(旧:AdoptOpenJDK))](https://zenn.dev/sasakiki/articles/54f68ee1576380)
## 所感
– やり方は、Windows環境と同じように、JDKインストール、VSCodeの拡張機能の追加、PATHの追加で出来ると思ったが、PATHの追加がうまくいかなかった。
## 明日の予定
– 明日以降も、Mac環境でのJava開発環境構築を進めて行こうと思う。

minikube(kubernetes) でコンテナを動かしてみる

# はじめに

記載情報は CI/CD に関連します。
実務上関わった環境・機能を身近な情報としてお届けしたく、投稿をはじめました。
各学習上、お金のかからない方法を選択していきます。

以下の手順を実施することで、アプリケーション開発者が minikube(kubernetes) でコンテナを動かしてみる工程を模倣します。

## 対象者と関連環境・機能

この記事は下記のような人を対象にしています。

– CI/CD 初学者
– プログラミング初学者
– 駆け出しエンジニア

記載している環境・機能は以下です。

– Java
– Spring Boot
– Spring Web
– minikube(kubernetes)

## リリース環境の検討

ここまでは Azure Devops の利用にて無料で繰り返し利用可能な内容でこれたのですが、コンテナレジストリに登録したイメージをもって kubernetes 環境へリリースしていく上では方法が限定的となってきます。
ここでは無償で利用可能な minikube を活用することとし、また実際のところ実務で困り次第、家で

Azure Devops (Pipelines) でテスト、ビルド、イメージプッシュをする

# はじめに

記載情報は CI/CD に関連します。
実務上関わった環境・機能を身近な情報としてお届けしたく、投稿をはじめました。
各学習上、お金のかからない方法を選択していきます。

以下の手順を実施することで、パイプラインからのテスト、ビルド、イメージプッシュをできるようにします。

## 対象者と関連環境・機能

この記事は下記のような人を対象にしています。

– CI/CD 初学者
– プログラミング初学者
– 駆け出しエンジニア

記載している環境・機能は以下です。

– Azure Devops
– Azure Pipelines
– Java
– Gradle
– Docker

## 本記事の趣旨

必要処理をべた書きしているのみにつき、あくまでも動かす過程の参考程度の情報です。
本記事では「こんなこといちいち手順みながらサーバ上でシェル叩くのか?」といったあたりについての解消の一助になれば、といった意図でのご紹介とさせていただきます。
最終的に「Azure-Pipelines がベストな方法か?」といえば、必ずしもそうではないです。
利用までのハ

LocalDateを使用した経過日数の求め方

経過日数を計算するためのコードを勉強していたのですが、
GitHubに上げるほどではないなと思ったので、こちらにメモ書きします。

# 指定した日までの日数を計算するコード
`.plusDays(1)`の部分で今日から〇日後の指定ができるみたいですね。
経過日数は`ChronoUnit`で計算してます。

“`Java
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class today {

public static void main(String[] args) throws Exception {

//現在の日付を取得
LocalDate now1 = LocalDate.now();
LocalDate now2 = now1.plusDays(1);
System.out.println(“今日の日付は”+now1);

プログラミング学習総括(半年)

## はじめに
プログラミング学習を始めて半年が経ちました。非常に大変でしたが、自分も驚くほど成長できたと思います。

## 1.学習成果
| | 項目 | 時間(h) |
| —- | —- | —- |
| プログラミング言語 | java, spring boot | 90 |
| プログラミング言語 | php | 100 |
| プログラミング言語 | javaScript | 30 |
| プログラミング言語 | HTML&CSS | 20 |
| 資格 | ITパスポート | 70 |
| 資格 | 基本情報技術者試験 | 120 |
| その他 | Git, GitHub, AWS, Linux, SQL(MySQL, oracle), 環境構築等 | 70 |
| 合計 | ー | 約500 |

## 2.感想
未経験からWeb系会社へ転職するには1年間(**1000時間の学習時間**)が必要だと言われています。
私は最初何もわからない状態からスター

FizzBuzz問題を初心者向けにわかりやすく解説

# 1.はじめに

こんにちは。
今日はJavaでよく出る問題の「FizzBuzz」を解説付きコードで初心者向けに解説します。
僕がJavaの学習をはじめたときに詰まった点を中心に説明するので最後まで読んでもらえたらうれしいです。

# 2.解説付きコード
以下が解説付きのコードになります。
この問題には別の解き方も存在するので回答の1つとして見てもらえたらと思います。

“`FizzBuzz.java
public class FizzBuzz{
public static void main(String[] args) {

// for文を使って1から100までの数字を表示
for(int i = 1; i <= 100; i++) { /*if文を使って3と5のどちらでも割り切れる数を 求めてFizzBuzzと表示させる。*/ if(i % 3 == 0 && i % 5 == 0) { System.out.println("FizzBuzz"); /*if文を使って3で割り切れる数を求めてFizz

Java enum型とは

PHPerがJavaを触る機会をいただけたので備忘録として

## enum型(列挙型)とは
複数の定数を一つのクラスとしてまとめておくことができる型。

enum型はクラスとして定義されるので、フィールドやメソッドも定義できる点が大きな特徴。
enumのインスタンス化は、enum内部で行う1回のみ。
これにより、enumの各インスタンスは、プログラムの中で1つであることが保証される。
なので、enumは定数として利用できる。

## 基本の書式

“`enumTest.java
public enum enum型名 {
定数1,
定数2,
定数3
}
“`

初期値に数字や文字列の値を定義する場合は、以下のようにフィールドやコンストラクタの定義を行う。

数値の値を定義する場合
“`enumSports.java
public enum Sports {
BaseBall(0),
Tennis(1),
HandBall(2),

private int id; //フィールドを定義

private Sports(int id) {

Junit4 を自作してみた

## JUnit4 を作ってみた

Qiita に [Junit を作る記事](https://qiita.com/torutakefusa/items/1cc7cba5842a5128b9bc) はあったが、アノテーションを使っていなかったので、今回はアノテーションを使った JUnit を自作してみた。

参考にしたコードは、[junit4/src/main/java/org/](https://github.com/junit-team/junit4/tree/9ad61c6bf757be8d8968fd5977ab3ae15b0c5aba/src/main/java/org/junit) 以下です。成果物は、

https://github.com/YmBIgo/my_junit4

にあります。

簡単に使い方を説明すると、以下のようなファイルを作り、実行すると、

“`java:SampleTest1.java
import myjunit4.JUnitCore;
import myjunit4.Test;
import myjunit4.Before;
import m

【java 三項演算子】

## 【三項演算子】

“`java:標準
[型][変数] = [条件] ? [TRUEの場合] : [FALSEの場合] ;
“`

➀基本的なString型を判定して出力結果をString型に出力するタイプ。
判定:String  出力:String
“`java:三項演算子
String str = “sanko”;
String yes_no = str == “sanko” ? “YES” : “NO”;
System.out.println(yes_no);
“`
出力結果:’YES

三項演算子を使わずに書くと
“`java:通常
String str = “sanko”;
if (s == “sanko”) {
yes_no = “YES”;
} else {
yes_no = “NO”;
}
System.out.println(yes_no);
“`

➁int型を判定して出力結果をString型に出力するタイプ。
判定:int  出力:String
“`java:三項演算子
int num =

Leetcode 231. Power of Two

# 231. Power of Two

https://leetcode.com/problems/power-of-two/description/

“`java
class Solution {
public boolean isPowerOfTwo(int n) {
if(n == 0){
return false;
}
if(n == 1){
return true;
}

while(n != 1){
if(n % 2 == 0){
n /= 2;
}else{
return false;
}
}
return true;
}
}
“`

JavaでExcelをWordに変換する方法

Microsoft Excelは大量のデータを保存するために、Microsoft Wordはリッチテキスト文書を作成するために広く使用されています。あなたがWord文書に書式付きテキスト、画像、および他の要素を挿入するために、Word文書にExcelワークブックの情報を追加する必要があることがありますオケージョン。この記事では、無料の [Free Spire.Office for Java](https://www.e-iceblue.cn/Introduce/Free-Spire-Office-JAVA.html) の助けを借りて、Javaアプリケーションで**ExcelワークブックをWord文書形式に変換する方法**を学びます。

– **[ExcelをPDFに変換し、そのPDFをWordに変換する](#excelをpdfに変換しそのpdfをwordに変換する)**
– **[ExcelをHTMLに変換し、そのHTMLをWordに変換する](#excelをhtmlに変換しそのhtmlをwordに変換する)**
– **[Excelのワークシート上のすべてのデータを抽出し、それらをW

Leetcode 1894. Find the Student that Will Replace the Chalk

# 1894. Find the Student that Will Replace the Chalk

https://leetcode.com/problems/find-the-student-that-will-replace-the-chalk/description/

例を確認して考えている通り実装

“`java
class Solution {
public int chalkReplacer(int[] chalk, int k) {
int index = 0;
while (0 < k - chalk[index]) { k -= chalk[index]; if (index < chalk.length - 1) { index++; } else { index = 0; } } return index; } }

JavaでWord文書の編集を制限する方法

Word文書を他の人と共有する際、Wordドキュメント上の情報を保護するために、Word文書の一部または全部の編集を制限したい場合があります。この記事では、無料の [Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html) を使用して、**Wordドキュメントに編集制限を設定する方法**を学びます。それは、ユーザーが保護の正確なタイプを選択できるように **ProtectionType** 列挙パラメータを提供しています。

– **[Word文書権限を閲覧のみに設定する](#word文書権限を閲覧のみに設定する)**
– **[Word文書権限をコメントのみに設定する](#word文書権限をコメントのみに設定する)**
– **[Word文書権限をフォームへの入力のみに設定する](#word文書権限をフォームへの入力のみに設定する)**
– **[Word文書権限を編集のみに設定する](#word文書権限を編集のみに設定する)**
– **[Word文書の権限設定

データ型 表現できる値や範囲 ビット
boolean true,false 1
byte -128 ~ 127 の整数 8