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

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

NumberFormat class

getCurrencyInstanceはlocaleにより表示内容が違う
getInstance,getIntegerInstanceはlocaleに影響を受けない
“`java
public class Outer {
public static void main(String args[]) {
Locale.setDefault(Locale.JAPAN);
method();
Locale.setDefault(Locale.US);
method();
}
static void method() {
System.out.println(“——————-“);
double num = 10000.99;
NumberFormat nf1 = NumberFormat.getInstance();
NumberFormat nf2 = NumberFormat.getInteger

元記事を表示

【Java基礎】if構文-4.複数の条件分岐

[問題]  (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksBasic.html)
整数値を入力させ、値が正であればpositive、負であればnegative、0であればzeroと表示するプログラムを作成しなさい。

# コード
“`Java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
if(t > 0){
System.out.println(“positive”);
}else if(t < 0){ System.out.println("negative"); }else if(t == 0){

元記事を表示

配列のclone()の挙動確認というか覚書

シャローコピーとディープコピー。え、ディープなコピーがあるってことはシャローなコピーの時ってどうなんだろう?あれ、シャローコピーって配列だけで要素空なんだっけ?

きっとしばらくすると忘れちゃうんだ。その度に、コードで検証するけどとっても労力がもったいない。ここを見て思い出せ自分。

配列のclone()の結論。
+ 配列はインスタンスの複製
+ 要素は値のコピー

“`java:サンプルコード
/**
* 配列に対するclone()の挙動確認
*
* 配列は複製。
* 要素は値コピー。
*/
public class Sample0216a
{
public static void main(String[] args)
{
//clone()した直後の中身が同じであるにも関わらずhash値が異なることから、配列のインスタンスは別物と言える。
//要素はコピーなのか、複製が代入されたものなのかはここからは判断できない。
System.out.println(“+++sample1+++”);
sample1();
System.out.print

元記事を表示

Spring Boot WEBサービスを ACI (Azure Container Instances) 環境で起動する

# Spring Boot WEBサービスを ACI (Azure Container Instances) 環境で起動する

## 目的

[Spring Boot WEBサービス](https://qiita.com/hiroxpepe/items/4a0f5e077155ce41e7ac)を [Azure Container Instances](https://learn.microsoft.com/ja-jp/azure/container-instances/container-instances-overview) 環境で起動して理解を深めます。

## 実現すること

Microsoft Azure Container Instances (ACI) に Spring Boot WEBアプリの Docker イメージをデプロイ・起動します。

## 開発環境

+ Windows 11 Home 22H2 を使用しています。
+ [WSL](https://learn.microsoft.com/ja-jp/windows/wsl/about) の Ubuntu

元記事を表示

DateTimeFormatter class

“`java
public class Outer {
public static void main(String args[]) {
method();
Locale.setDefault(Locale.US);
method();
}
static void method() {
System.out.println(“—————-“);

LocalDateTime ld = LocalDateTime.now();
System.out.println(DateTimeFormatter.BASIC_ISO_DATE.format(ld));
System.out.println(DateTimeFormatter.ISO_DATE.format(ld));
System.out.println(DateTimeFormatter.ISO_TIME.format(ld));

元記事を表示

Javaのラムダ式を順番に理解するための基礎知識

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/650867/612e6b7d-c97b-6cbc-a664-97cfaf5c67d8.png)

# 初めに

こちらは Java 二年目の自分が実務であまり使用したことのないラムダを理解するためにまとめた記事です。対象の読者は以下の様な方を想定しています。

– Java 二年目付近の人
– ラムダが何をしているのかわからない人
– ラムダを用いることのメリットがわからない人

※本記事では Stream / Optional は扱いません。

ラムダは関数型言語の考え方であること。それを取り入れて匿名クラスの記述を簡略化したもの。そもそも匿名クラスの目的はなんなのか。などを順番に書いていきます。

  • 初めに
  • properties class

    “`java
    public class Outer {
    public static void main(String args[]) {
    try {
    FileReader fr = new FileReader(“C:\\dirtest\\sample.properties”);
    Properties pr = new Properties();
    pr.load(fr);
    pr.forEach((x,y) -> System.out.println(x + “:” + y));
    Set s = pr.keySet();
    s.forEach(x -> System.out.println(x + “:” + pr.get(x)));
    pr.list(System.out);
    System.out.println(pr.getProperty(“name”));

元記事を表示

native2ascii

“`cmd
C:\Program Files\Java\jdk1.8.0_351\bin>native2ascii.exe C:\dirtest\sample.properties C:\dirtest\sample.properties.0
“`
“`sample.properties
name=sato
price=100
address:大阪
age:19
“`
“`sample.properties.0
name=sato
price=100
address:\u879f\uff67\u9ae6\uff6a
age:19
“`

元記事を表示

JavaでDB接続時ORマッパーを使用してみた

# はじめに
未経験からエンジニアになって、結構苦戦した場所なので記録しておきます。
公式のやり方で結局正解だったのだけど、未経験からしたら訳わからんのですよ。

なので、自分なりの解釈と同じ初心者にわかりやすいように書いていきます。

色々例えて書くため明確には違う表現もあるかと思いますが、とりあえず何となく理解して動くものを作成していきますのでお願いします。

一応参考までに、[iciql](http://iciql.com/)こちらが公式サイトです。
# 開発環境
Windows 10 Pro
eclipse
MySQL 8.0.31
# ORマッパーとは
ORM(オブジェクト リレーショナル マッピング)のこと

意味として、RDB(リレーショナルデータベース)をオブジェクト指向型のやり方で扱えるようにするための手法のことです。

具体的には、RDB(リレーショナルデータベース)に対する操作がひとまとめになったライブラリを使用し、これを使うことによってSQLの生成を背後で行ってくれるみたいです。

要は、これを導入することで自分のデータベースをクラスとして扱ってその処理を裏側で

元記事を表示

C言語系(JAVA C# Ts Go) 日本語系(Mind DNCL)各言語構文を比較して自作言語Re:Mindの構文を定める(変数宣言・実行文・関数宣言)

# はじめに
JAVA C# Ts GoといったC言語を由来とする新旧の言語とMind DNCLなどの日本語プログラミング言語の制御構文を比較して自作言語Re:Mindの構文を定めます。今回は変数宣言・実行文・関数宣言。

自作言語Re:Mindの詳しい利用シーンのイメージは[こちらへ](https://qiita.com/mylifewithviolin/items/9d58db8a101807c19bde)。すみません、企画段階です。日本語プログラミング言語です。

## この記事内容の作業目的
今回は各言語の変数宣言・実行文・関数宣言の構文を比較検討します。

## この記事内容の保証
※この記事には実装的な情報が含まれます。各言語で書かれた引用ソースの妥当性は保証されません。また、自作言語は開発中(というよりまだ企画段階)のため、本記事に開示された仕様は予告なく変更される場合があります。

# JAVA C# Ts Goの新旧C言語系の構文イメージ

なるべく長くならずイメージが比較しやすいよう、変数の型は整数、文字列、真偽の3つとします。関数は値を返すものと返さないもの2つと

元記事を表示

【Java基礎】if構文-3

[問題]  (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksBasic.html)
整数値を入力させ、値が正であればpositiveと表示するプログラムを作成しなさい。ただし0は正に含まないものとする。

# コード
“`Java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
if(t > 0){
System.out.println(“positive”);
}
}
}

“`

↓「8」と入力

# 結果
“`
positive
“`

元記事を表示

Java C# JavaScript のクラスの違いを比較する

# Java C# JavaScript のクラスの違いを比較する

## はじめに

最近 Java を軽く学習したり、JavaScript の開発業務をやったりしてクラスにいろいろ触れてきたので、アウトプットを兼ねて 3 種類の言語のクラスについて比較していきます。クラスとは何か、オブジェクト指向とは何かという概念的な話は今回は触れません。

## 念のためクラスとは
とはいえ、軽くは触れておきます。
Wikipedia を参考に簡単にいうと「クラスとは、オブジェクト指向に登場する概念のこと。オブジェクトを生成するための設計図あるいはひな形に相当するもの」です。

## クラスの作り方

まずはクラスの作り方から比較していきます。

### コード

C#

“`C#
class TestClass
{
//クラスの中身
}
“`

Java

“`java
class TestClass
{
// クラスの中身
}
“`

JavaScript

“`javascript
class TestClass {
// クラスの中身
}

// クラス式
let Te

元記事を表示

Spring MVC WEBアプリを ACA (Azure Container Apps) 環境で起動する

# Spring MVC WEBアプリを ACA (Azure Container Apps) 環境で起動する

## 目的

[Spring MVC WEBアプリ](https://qiita.com/hiroxpepe/items/8da878169d6bf36a001f)を [Azure Container Apps](https://learn.microsoft.com/ja-jp/azure/container-apps/overview) 環境で起動して理解を深めます。

## 実現すること

Microsoft Azure Container Apps (ACA) に Spring MVC WEBアプリの Docker イメージをデプロイします。

## 開発環境

+ Windows 11 Home 22H2 を使用しています。
+ [WSL](https://learn.microsoft.com/ja-jp/windows/wsl/about) の Ubuntu を操作していきますので macOS の方も参考にして頂けます。

元記事を表示

Leetcode 989. Add to Array-Form of Integer

https://leetcode.com/problems/add-to-array-form-of-integer/description/

## アプローチ
### Brute-force

“`java
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

class Solution {
// アプローチが悪い
public List addToArrayForm1(int[] num, int k) {

StringBuilder sb = new StringBuilder();
for (int n : num) {
sb.append(n);
}

System.out.println(sb);
BigDecimal tempBigDecimal = new BigDecimal(sb.toString());

元記事を表示

Spring MVC WEBアプリを Azure App Service 環境で起動する (Docker イメージ)

# Spring MVC WEBアプリを Azure App Service 環境で起動する (Docker イメージ)

## 目的

[Spring MVC WEBアプリ](https://qiita.com/hiroxpepe/items/8da878169d6bf36a001f)を [Azure App Service](https://learn.microsoft.com/ja-jp/azure/app-service/overview) 環境で起動して理解を深めます。

## 実現すること

Microsoft Azure App Service に Spring MVC WEBアプリの Docker イメージをデプロイします。

## 開発環境

+ Windows 11 Home 22H2 を使用しています。
+ [WSL](https://learn.microsoft.com/ja-jp/windows/wsl/about) の Ubuntu を操作していきますので macOS の方も参考にして頂けます。

WSL (Micr

元記事を表示

locale

言語、国を定義している情報がLocale class

setVariantで使用可能なvariantはここで参照できる
https://r12a.github.io/app-subtags/

“`java
public class Outer {
public static void main(String args[]) {
printLocale(Locale.getDefault());
printLocale(Locale.JAPAN);
printLocale(new Locale(“ja”,”JP”));
printLocale(new Locale(“ja”,”JP”,”JP”));
printLocale(new Locale(“ja”,”JP”,”JP1″)); //variant err
Locale.Builder bl = new Locale.Builder();
bl = bl.setLanguage(“jp”);

元記事を表示

javaの可変長引数に関する注意点[備忘録]

初投稿です。

Javaのプログラミング資格で学習中で気づいたことに、備忘録として残します。
コード解読してから、java APIで該当のメソッドを調べたときに、メソッドがなかなか見つからない、そんな時、以下の場合があるかもしれません。

今後も追加情報があれば、更新致します。

メソッドの定義側の引数
1.可変長引数のみ
2.固定長引数のみ
3.固定長引数と可変長引数
の3パターンでオーバーロードされているtest1メソッドに対して、
呼出側で
1.引数なし
で呼び出した場合の挙動。

続いて、
メソッドの定義側の引数
3.固定長引数と可変長引数
呼出側で
1.固定長引数のみ
で呼び出した場合の挙動。

についてコードで整理しました。

“`A.java
public class A {
public static void main(String[] args) {
A a = new A();
System.out.println(a.test1());//test1 Object… args
System.out.println(a.test2

元記事を表示

【Mac】docker で Spring Boot + MySQL の環境を構築する

# 概要
docker を使ったSpring Boot + MySQL の環境構築方法をまとめます。

# 前提
事前にdockerとgradleをインストール済みとします。

# サンプルコード
https://github.com/s-kii3/TaskList_v2

# ディレクトリ構成
“`terminal
$ tree -L 2
.
├── Dockerfile
├── README.md
├── app # 作成したプロジェクト
│ ├── HELP.md
│ ├── bin
│ ├── build.gradle
│ ├── docker-compose.yml
│ ├── gradle
│ ├── gradlew
│ ├── gradlew.bat
│ ├── settings.gradle
│ └── src
├── docker-compose.yml
└── mysql # mysqlの設定ファイル
├── init
├── my.conf
└── mysql.cnf

9 directories, 1

元記事を表示

IRCクライアントJavaライブラリKittehを使ってみる

JavaのIRCクライアントライブラリの[Kitteh](https://kitteh.org/irc-client-library/)を使ってみます。

Kitteh IRC Client Libraryを略してKICLとも呼ばれるようです。

# 環境

OS:Windows10
Java:openjdk 17.0.6 2023-01-17 LTS
Maven:3.8.7

# 設定

## Mavenのプロジェクトにインポート

“`xml:pom.xml

org.kitteh.irc
client-lib
8.0.0

“`

## IRCサーバのSSL証明書をjavaキーストアに登録する[^1](SSL通信をする場合)

[^1]:https://kitteh-irc-client-library.readthedocs.io/en/latest

元記事を表示

Leetcode 67. Add Binary

https://leetcode.com/problems/add-binary/description/

“`java
class Solution {
public String addBinary(String a, String b) {
StringBuilder sb = new StringBuilder();

int i = a.length() – 1;
int j = b.length() – 1;
int carry = 0;
while (i >= 0 || j >= 0) {
int sum = carry;
if (i >= 0) {
sum += a.charAt(i) – ‘0’;
i–;
}
if (j >= 0) {
sum += b.charAt(j) – ‘0’;

元記事を表示

OTHERカテゴリの最新記事