JAVA関連のことを調べてみた

JAVA関連のことを調べてみた

【初心者向け】Java変数のデータ型~基本データ型~

## :ledger:基本データ型(プリミティブ型)

整数や実数といった`値`を格納するための仕組みです。
Javaでは基本データ型に属するのは8種類しかありません。

| 型 | 概要 | サイズ |
|:-:|:-:|:-:|
| byte | 整数 | 8ビット |
| short | 整数 | 16ビット |
| int | 整数 | 32ビット |
| long | 整数 | 64ビット |
| flort | 浮動小数点数 | 32ビット |
| double | 浮動小数点数 | 64ビット |
| char | Unicodeが持つ1文字
「’」(シングルクォーテーション)で
囲むことでchar値を指定できる | 16ビット |
| boolean | true、もしくはfalseを表す真偽値 | 1ビット |

## :ledger:整数と浮動小数点数
数値型にはまず`整数`と`浮動小数点数(実数)`の2タイプがあります。
`整数`と`小数`は、その構造が異なるため小数を使いたいときは明示しない限り使えません

元記事を表示

javaで電卓を作る方法の解説(初心者向け)(サンプルコードあり)

# この記事の対象者
javaの条件分岐や四則演算、繰り返しや変数などを学び、それらのまとめがしたいという人向けです。
# 使用環境
### javaを実行している環境
eclipsを使って作りましたがほかの環境でもたぶん大丈夫です。
ただしメモ帳で実行している人は最初の
“`
package test;
“`
は、いりません。
# プログラム
“`ruby:電卓.java
package test;//場合によってはいりません
//インポート
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class 電卓
{
public static void main(String[] args) throws IOException
{
//変数定義
int i = 1;
while(i <= 5) { System.out.println("足し算ですか?引き算ですか?掛け算ですか?割り算ですか?足し算ならT、引き算ならH、

元記事を表示

[Google Sheets API] 重複した行を削除する

Google Sheets API v4(Java)を使用して、
スプレットシートの重複した行を削除する方法
についてご紹介します。

メニュー:「データ」 ⇨ 「データ クリーンアップ」 ⇨ 「重複を削除」
で実行できる内容と同じです。

コードを実行する際は、
[⧉[Google Sheets API] Google Sheets API v4をJavaで操作する](https://qiita.com/doran/items/3d43f776188b2281044c)
を参照ください。
“`
例:requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定
“`
|No||目次|
|—|—|—|
|1||[重複した行の削除](#1-重複した行の削除)|
||1|[行全体が重複](#11-行全体が重複)|
||2|[指定した列の値が重複](#12-指定した列の値が重複)|

## 1. 重複した行の削除
列の値が同じ行を削除できます。

・行全体が重複している場合
・指定した列の値のみが重複している場合
の削

元記事を表示

Enum の toString() と name() の違い【Java】

# toString()
オーバーライド可能なので、より見やすい形に成形された文字列が返ってくる可能性がある。

# name()
final で宣言されているためオーバーライド不可であり、Enum で宣言されたそのままの文字列を取得することが出来る。

# 状況に依りけり
公式 [(Java 8 Enum JavaDoc)](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Enum.html) によれば、 `name()` が(宣言部分を書き換えない限り)常に同じ文字列を返すことを利用したプログラムのような特殊な場合でのみ利用を推奨し、それ以外の場合は `toString()` の利用を推奨、ということらしい。

大抵の場合、Enum には何かしらの値が設定されているだろうからそれを取得しようとする場合は toString をオーバーライドして実装するのが一番手っ取り早く、そのように用途に合わせた小回りを利かせられることから「ユーザーフレンドリ」と言われているのだろう。
> **ほとんどのプログラマは、このメソッドよりもt

元記事を表示

Intellij IDEA で自作ライブラリの作成方法とその設定方法

## ライブラリの自作手順
開発環境
– Windows 7 ( x86 )
– Intellij IDEA 2018.2.8
– Java 8

(例として「mySwingUtils」というライブラリを作るとする)
※内容は既に完成しているものとする。

1. [プロジェクト設定] の [成果物] をクリック
1. [+]をクリックして出たポップアップの中から [Jar] – [空] を選択
![myLibraryCreate2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3552853/11fbe2bf-0e25-6429-5755-efec63c59774.png)
1. 名前には設定したいライブラリ名(例えば「mySwingUtils」)を入力(デフォルトでは生成されたJarファイルのディレクトリ名にもなる)
1. [出力レイアウト] – [+] をクリックして出たポップアップの中から [モジュール出力] を選択
1. 同じく [出力レイアウト] – [+]をクリックして [モジュールソース]

元記事を表示

Leaning TechnologiesのCEO、2023年末アップデート

![leaningtechlogo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486144/d419ef63-6893-229f-7b41-658dc70e8f7e.png)

# Leaning Technologies の目覚ましい業績の年
2023年の終わりを迎えるにあたり、Leaning Technologiesが今年達成した素晴らしい業績をご紹介させていただきます。皆様の継続的なパートナーシップとサポートが、これらの成功に重要な役割を果たしてくれました。

# CheerpJにとって大きな一年
CheerpJ 3.0のリリースを発表できることを大変嬉しく思います。CheerpJは、ウェブ・ブラウザでJavaアプリケーションを活用するための主要なソリューションであり続け、この最新バージョンでは、さらに多くの機能、パフォーマンスの向上、互換性の改善をもたらしました。ユーザーコミュニティーからのポジティブなフィードバックは圧倒的で、CheerpJ 3.0はJava-to-WebAssembly

元記事を表示

Spring BootにおけるJava Junit Mockitoまとめ (1)

## 1.最初の導入 — スタッブ(stub)の考え方
Unit テストで、テストしたいメゾっどやクラスが他のクラスAに依存している時、クラスをスタッブで替わる。

BusinessクラスにServiceクラスのexecute()に依存する時、以下のコードでServiceのスタッブを作成する
“`java
public class ServiceStub implements Service{
@Override
public int execute(){
return 0;
}
}
“`

## 2.MockitoでMockingする
導入のスタッブ使用する際に、依存するクラスが多い際、作成するスタッブが多く、コード量も増え、非効率となる。そこで、JunitのMockitoを使用し、Mockを作成する。
以下になる
“`java
import org.mockito.Mockito.mock;
//Serviceのmockを作成する
Service serviceMock = mock(Service.class)

//Mock

元記事を表示

コンテナ環境でのJVMメモリサイズの設定

# はじめに

株式会社セゾン情報システムズの松本です。
HULFT Square(以降 [HSQ](https://www.hulft.com/service/hulft-square)) という iPaas の開発プロジェクトでインフラを主に担当しています。

この記事は、数年前にJava8/11を対象に調査しため内容を元に記載していますので、少し情報が古いかもしれません。

# 背景など

`HSQ`ではマイクロサービスアーキテクチャを採用し、Backendのサービスは主にJavaアプリケーションで構成しコンテナ化しています。
コンテナ上では一つのサービスを動作させるのが[基本原則](https://docs.docker.com/config/containers/multi-service_container/)です。
そのサービスは複数のプロセスで構成されることもありますが、`HSQ`の各Backendサービスはコンテナ上の一つのJVMプロセスで構成されます。
そのため、コンテナの利用可能なメモリをほぼ全てを一つのJVMプロセスに割り当て可能です。

Backendサービ

元記事を表示

SpringBoot MVCモデル設定方法

# MVCモデル
MVCはモデル(Model)、ビュー(View)、コントローラ(Controller)の頭文字をとった言葉。
《相関図》
![スクリーンショット 2024-02-21 13.57.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570384/d6493750-7286-3618-e041-5db0d41ca9cf.png)

《各部署の役割》
アプリの機能を役割によって以下の3つに分割し、それぞれのファイルにコードを記述する。

| | 役割 |
|:-:|:-:|
| モデル |アプリの「処理」を担当。データベースとやりとりし、データの作成、読み取り、更新、削除といった処理を行う。|
| ビュー | アプリの「表示」を担当。コントローラから受け取ったデータを使って動的にHTMLを生成する。 |
| コントローラ | モデルとビューを制御する。ユーザー、モデル、ビューの橋渡し役。 |

# モデル(Model)「処理」担当
* 具体的には、**データベースとやりと

元記事を表示

オーバーロード

オーバーロードはコンストラクタやメソッドを同じ名前で多重定義する事です。

ただし、オーバーロードには条件があります。
その条件とは引数の型、数、それらの順番のいずれかが異なっている事です。
逆に、全く同じ引数を用いたオーバーロードは出来ないとも言えます。

元記事を表示

【Java】駆け出しエンジニアが`Override`と`Overload`を勘違いしてChatGPTに助けられた話

## はじめに
なぜ、タイトルのような状況に陥ったのか…

Springフレームワークの勉強をしようかなと思い、公式ドキュメント「[spring公式webページ](https://docs.spring.io/spring-framework/reference/core/beans/dependencies/factory-collaborators.html)」をパラパラと覗いていたところ「依存性の注入(DI)」という概念(?)があることを知りました。

そこで参考にさせていただいたのが、こちらのサイト「[プログラミングTIPS!](https://programming-tips.jp/archives/o/25/index.html)」
依存性の注入について、とても分かりやすく書かれているのですが、私のJavaへの理解が浅かったために沼にはまってしまいました。

## この記事の対象者
* 初心者の沼を眺めたい方
* 私と同じ初学者の方
* 温かい目で見守っていただける方

## どこではまったのか
参考にした「[プログラミングTIPS!](https://progra

元記事を表示

Apache Maven 再入門

Zenn にも書籍として公開しています.
読みやすい方で読み進めていただけたらと思います.
Zenn の方が最新版です.

https://zenn.dev/caunus/books/apache-maven-introduction

## この記事の目的

入社当時に簡単にしか勉強していなかった Java 開発周りの知識を確かにするため,自分で Apache Maven のドキュメントを読んで動作確認 & まとめます.

読み返しやすいように,公式ドキュメントと記載順を若干変えて補足しています.

:::note info
こちらの記事を参考にして Apache Maven を活用した開発を行うことができます.
:::

:::note warn
こちらは[公式ドキュメント](https://maven.apache.org/index.html)をさらって記録に残した記事です.
Apache Maven の Tips 等に関する記事は既に世の中に多々ありますので,必要に応じて調べてみてください.
また,Apache Maven プロジェクトのアーキテクチャ[^MAVEN/REF]

元記事を表示

Java Silverを受験しての所感

## はじめに
Java Silverに合格したので、合格までの道のりを記録として残します。(正答率89%で合格したので、わりと効率的な学習方法ではないかと思っています)
アウトプットする機会が少ないので、それに危機感を感じて記事にしてみることとしました。
最後に試験直前に確認していた確認リストも公開するので、ぜひ参考にしてみてください!

## この記事の内容
1. Java Silverとは
2. 受験のきっかけ
3. スケジュール感
4. 学習方法
5. 受験しての感想
6. 直前に確認していた内容
7. 最後に

## Java Silverとは
Java Silverとは、プログラミング言語Javaの技術レベルをOracle社が認定する資格で、正式には「Oracle Certified Java Programmer, Silver SE SE 11」と言います。

Javaアプリケーション開発のためのプログラミング知識や、さまざまな状況への対応能力を有していることを証明される、開発初心者を対象とした資格です。

## 受験のきっかけ
転職を考えるようになったのですが、その際

元記事を表示

for文と拡張For文の備忘録

### はじめに
エンジニア歴1年目。
業務でJavaを触り始めて3か月程度の駆け出しエンジニア。
Javaには苦手意識があるが、技術力、実践力を身に着けたい。
学んだことや調べたことなどの備忘録。

### javaのfor文とは
繰り返し処理の中でも、繰り返す回数が決まっている場合に用いる構文。
“`
for(初期化処理; 繰り返し条件; 繰り返し時処理) {
// 条件式がtrueの時に繰り返す処理
}
“`
“`
for(i = 0; i < 10; i++) { System.out.print(i); } // 実行結果 0 1 2 3 4 5 6 7 8 9 ``` #### 初期化処理 for文の最初に1回だけ実行される。 #### 繰り返し条件 ブロックの内容を実行する前に評価される。 ループを継続するか否かを判定する条件式。 #### 繰り返し時処理 for文内のブロックを最後まで処理し、ブロックの最後まで処理が終了した後に自動的に実行される文。 ### javaの拡張for文とは JDK5から、拡張for文が利用可能。 配列を渡すと、全ての要

元記事を表示

【初心者向け】Javaソースコード解説②

### :pushpin:前回の記事

https://qiita.com/nukoxo/items/47b7bd001c3a6b542043

こちらの記事の続きとなっております。

### :ledger:メソッドの定義

メソッドとは一連の処理をまとめたものと説明しました。
mainメソッド以外にもメソッドは自分でつくることが出来ます。

メソッドの定義
~~~
[アクセス修飾子] [その他の修飾子] 戻り値のデータ型 メソッド名( [引数リスト] ) {
// メソッドの処理内容
}
~~~

こちらをもとにサンプルコードを見てください。
~~~java
public static void sample(int num1, int num2) {
int result = num1 + num2;
System.out.println(result + “sample”);
}
~~~

記入内容 意味<

バックオフ戦略 (Backoff Strategy)について

## はじめに
とあるリトライ処理するとき徐々にリトライの間隔を伸ばしたほうが良さそうだな〜となんとなく実装していました。後々そのリトライ時に間隔を伸ばしてくことをバックオフ戦略と呼ぶと知ったので深堀りしてみます。

## バックオフ戦略とは
リトライ間隔を徐々に増加させながらリトライする処理のこと。

例:0.5秒後、1秒後、2秒後、4秒後…にリトライ

## メリット・デメリット
:::note info
**メリット**
・トラフィックの軽減:
待機時間を設けることで、サーバーやネットワークへの負荷を減らせる。

・リトライ成功率上昇:
待機時間を徐々に増加させることで、システム障害から回復するまで時間を稼げる。
:::

:::note warn
**デメリット**
・レスポンス時間の増加
システム全体のレスポンス時間が増加する可能性

・適切なリトライ時間調整
処理や負荷、様々な状況により適切なリトライ時間を設定する手間や難しさがある。

:::

## 実装例

### 指数バックオフ Exponential Backoff
Swiftで指数バックオフを記述して

[Google Sheets API] セルを結合、結合解除する

Google Sheets API v4(Java)を使用して、
スプレットシートのセルを結合、結合解除する方法
についてご紹介します。

コードを実行する際は、
[⧉[Google Sheets API] Google Sheets API v4をJavaで操作する](https://qiita.com/doran/items/3d43f776188b2281044c)
を参照ください。
“`
例:requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定
“`
|No|目次|
|—|—|
|1|[セルの結合](#1-セルの結合)|
|2|[セルの結合解除](#2-セルの結合解除)|

## 1. セルの結合
指定したシートのセルを結合します。
結合方法は下記が指定できます。
・指定範囲を全部結合 : MERGE_ALL
・指定範囲を横のみ結合  : MERGE_COLUMNS
・指定範囲を縦のみ結合  : MERGE_ROWS

**サンプル コード**
“`
public static Request

オーバーライド

オーバーライドはスーパークラスで定義したメソッド等をサブクラスで再定義する事です。

オーバーライドの方法は、スーパークラスで定義したメソッド等と同じ名前のメソッドを定義し、動作を記入する事です。

これを利用する事によって継承の際に、内容の修正が必要な部分だけを、サブクラス側で上書き出来る為、クラスの再利用やプログラムの簡略化が見込めます。

【初心者向け】Java ソースコードの解説①

# :writing_hand_tone1:はじめに
2023年12月18日からJava言語を学び始めた初心者です。
これまでにプログラミングに触れた機会は小学生のころにホームページをHTML,cssで
作成したことくらいです。
商業高校だったので情報処理などの授業は受けていましたが、全商2級程度です。
情報系の専門学校、大学ではありません。

# :page_with_curl:Java ソースコードの解説
サンプルコード
~~~java
public class Test {
public static void main(String[] args) {
System.out.println(“はじめてのJava”);
}
}
~~~~
### :ledger:クラスとは

プログラムの1単位を `クラス` という。
サンプルコードでは` class Test { … } ` と記載しているためここでは
` Testというクラス `を作成している。

Javaのプログラムを作成する際は
` public class クラス名 { … }` と

GWTにおけるフロント側の処理はどうなのか?

# 割と知らないGWTのフロント側処理
・JavaからjavaScriptに変換されます。
・サイズを縮小します=ダウンロード時間の短縮
・難読化→セキュリティー向上