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

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

Rubyでオウム返しプログラミングの練習…

お久しぶりです。Javaの勉強し直してます。
Javaでオウム返ししろと言われましたが、手癖でRuby…

※注意事項。
→が、実行結果です。

“`ruby
cat oumu.rb
→puts gets.to_s

ruby oumu.rb
→1
→1
“`

では、この辺で…

元記事を表示

Javaで「数値を文字列に変換する」の動作を確認してみた

# 概要

Javaで「数値を文字列に変換する」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`JSample11_1.java
class JSample11_1{
public static void main(String[] args){
int i = 10;
long l = 12L;
double d = 7.82;
boolean b = true;

String si = Integer.valueOf(i).toString();
String sl = Long.valueOf(l).toString();
String sd = Double.valueOf(d).toString();
String sb = Boolean.valueOf(b).toString();

System.out.println(si);

元記事を表示

これであなたもマルチリンガル!?色んな言語であいさつしてみよう

# はじめに
みなさん,言語を学び始めるときにはじめに覚えるものはなんですか?そう!**『あいさつ』** です.これは自然言語に限らず,プログラミング言語でもそうです.どんな言語もまずは`Hello World!`の出力方法から学ぶはずです!!っということで,今回は全何種の言語であいさつをしてみましょう.この記事を読めばあなたもマルチリンガルになっているはずです^^

# 人気言語10選
ここに書かれているランキングですので,自分にとっての好きな言語ランキングなどあれば,コメントに書いておいてください!!

https://codezine.jp/article/detail/19530#:~:text=2024%E5%B9%B4%E4%BA%BA%E6%B0%97%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AF%E3%80%811%E4%BD%8D

元記事を表示

Javaで「文字列を作成する」の動作を確認してみた

# 概要

Javaで「文字列を作成する」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/string/index2.html

# 実装

以下のファイルを作成しました。
“`JSample2_1.java
class JSample2_1{
public static void main(String[] args){
String msg1 = “Hello”;

char[] c = {‘B’, ‘y’, ‘e’};
String msg2 = new String(c);

String msg3 = new String(msg1);

System.out.println(msg1);
System.out.println(msg2);
System.out.println(msg3);
}
}
“`
“`JSample2_2.java
class JSample2_2{
public static void main(St

元記事を表示

Files.move使用時、AccessDeniedExceptionが発生する

## Files.move()とは
ディレクトリの移動、もしくはディレクトリ名を変更する際に使用される
また、ファイル名の変更は「File.renameTo」でも可能である
~~Filesクラスが使用できるなら、Fileクラスは極力使用しないことをお勧めする~~

■ファイルを移動、ファイル名の変更
「C:\\tmp\\test.txt」を「C:\\tmp2」に移動、かつファイル名を「test2」に変更する
“`
val oldPath = Paths.get(“C:\\tmp\\test.txt”)
val newPath = Paths.get(“C:\\tmp2\\test2.txt”)
Files.move(oldPath, newPath)
“`
■ディレクトリを移動、ディレクトリ名の変更
「C:\\tmp」を「C:\\tmp2」に移動、かつファイル名を「test2」に変更する
“`
val oldPath = Paths.get(“C:\\tmp”)
val newPath = Paths.get(“C:\\tmp2”)
Files.move(oldPath, ne

元記事を表示

アジャイル開発にどう立ち向かえるか?

私はいくつかのアジャイル開発のPMを担当してプロジェクトが成功になり、自分にとってアジャイル開発が重要の存在です。最近以下の記事をみて、反論する気持ちが沸いて、アジャイル開発の成功要素をまとめてみたいです。

https://qiita.com/rana_kualu/items/eb308823193e9539f103#comments

“`「幸福な家庭はどれも似たものだが、不幸な家庭はいずれもそれぞれに不幸なものである」“`という言葉があって、同じく、“`「成功なアジャイルはどれも似たものだが、失敗なアジャイルはいずれもそれぞれに失敗なものである」“`も一理になるでしょう。この記事はアジャイル開発を試したい方のご参考になれば幸いです。

## どうするPMさん?
若いとき知り合いからの言葉ですが、「会社の営業さんが努力してお客さんと接触できて小さいプロジェクトからスタートして成功して信頼されて、発注がどんどん拡大されて、大規模のプロジェクトになると延期したり予算オーバーしたりいろいろトラブルが発生して、縁が切ってしまって、次のお客さんを探さないといけない」。

業務を分かる

元記事を表示

【トラブル】Eclipseで突如でデバッグできなくなる

## Eclipseって使ってますか?

こんにちは!私はJavaといえばEclipseという安直な考えでEclipseをいまだに使っています。
Spring BootとかならもうVS Codeかもしれませんが関係ありません。

## Eclipseがなぜこんなに嫌われているのか?

Eclipseは今はやりの`Copilot`も対応していないしボタンも多いしごちゃっとしていて使いづらいです。

ちょっと古めのPCだと重くて使い物になりません(32ビット時代が懐かしい。。)

## Eclipseでデバッグしようとしたら謎のアイコンが出現!

普段はコードの行の外側に青い丸でブレークポイントがあらわされるんですが

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/8e95b7b5-0531-cab8-e6ee-5188a61735d3.png)

いきなりこのようになってしまいました!

![image.png](https://qiita-image-store.s3.ap

元記事を表示

Javaのコンパイルとは 

# 概要
### この記事で何がわかる?
+ Javaのコンパイルとは何か
+ コンパイルの実行方法

### 今回で覚えておきたいこと
+ コンパイルの流れ

# コンパイルとは

– 「コンパイル」とはプログラミング言語を機械語に変換すること
– コンパイルのためのソフトウェアを「コンパイラ」という
– JavaはOSに依存しないシステム開発を実現している
– これは直接OSに合わせてコンパイルするのではなく、一度中間言語に翻訳し、その後それぞれのコンピュータのJVMのインタプリタが機械語に翻訳するという処理の流れ
– ソースコード→コンパイラ→中間言語→JVM→インタプリタ→機械語という流れ
– コンパイルすることによって中間言語に翻訳されるが、これがクラスファイル(javacコマンド実行後)
– その後javaコマンドを実行することでJVM後の処理が行われる

# 実際にコンパイルを行う流れ(windows)
1. textファイルでJavaのプログラムを作成(サクラエディタなど)
1. コマンドプロンプトにて`javac [ファイル名].java`というコ

元記事を表示

【オブジェクト指向】デザインパターンについて

## デザインパターンとは
JavaやRubyなどオブジェクト指向言語において、よく使われる設計をパターン化したものです。
これを用いることでプログラムが再利用しやすくなり、読みやすいものとなります。

## デザインパターンの種類
「GoF」のデザインパターンがあり、全23種の設計パターンに分けられており、大カテゴリーに分けると
「生産」「構造」「振る舞い」の3つに分けることができます。

+ 生産
+ [Abstract Factory](#abstract-factory)
+ [Builder](#builder)
+ [Factory Method](#factory-method)
+ [Prototype](#prototype)
+ [Singleton](#singleton)
+ 構造
+ [Adapter](#adapter)
+ [Bridge](#bridge)
+ [Composite](#composite)
+ [Decorator](#decorator)
+ [Facade](#facade)
+ [F

元記事を表示

Javaで「配列の文字列表現を取得する(toString,deepToString)」の動作を確認してみた

# 概要

Javaで「配列の文字列表現を取得する(toString,deepToString)」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`JSample16_1.java
import java.util.Arrays;

class JSample16_1{
public static void main(String[] args){
double[] src = {3.75, 0.52, 14.1};

System.out.println(src);
System.out.println(Arrays.toString(src));
}
}
“`

“`JSample16_2.java
import java.util.Arrays;

class JSample16_2{
public static void main(String[] args){
int

元記事を表示

なぜ0.8+0.9は1.7000000000000002なのか?

# あいさつと経緯
初めまして!
0.8+0.9って1.7でしょ?何言ってんの?っていう方もいるかもしれません。
このタイトルの背景は、私がこの業界に入って初めてJavaに触れた時、注意された言葉から来ています。
「計算処理ではBigDecimalを使用しなさい」
言われた方もいるのではないでしょうか?計算処理で誤差が出ないようにするためで理解している方は多いと思います。
この記事では、タイトルとBigDecimalの何が紐づくのかお話ししていこうと思います。

# なぜ0.8+0.9は1.7000000000000002なのか?
早速タイトル回収です。
タグにも入れましたが、基本情報技術者試験の勉強された/されている読者の方もいるでしょうか?

**2進数が今回のポイントになります。**

0.8+0.9は人間にとっては単純です。
ですが、パソコンはタイトルのように間違えます。

何が違うのか?
それは、計算方法です。

**人間は10進数**で0.8+0.9を計算しています。(違う進数で計算されている方がいたらすいません:bow_tone1:)
**パソコンは2進数**で0.8+0

元記事を表示

【Apache POI 】SXSSFのストリーミング処理のイメージ

## 概要
Apache POIを使ってExcel出力をjavaで実装する際、XSSFWorkbookと比べてより処理の早いSXSSFWorkbookを使いました。
実際にSXSSFを使うまではSXSSFのストリーミング処理の動きがイメージしづらかったため、図を使って本記事にまとめました。
## そもそもXSSFとSXSSFとは
**XSSF**
Excel 2007およびそれ以降のバージョンで使用されるOffice Open XML (OOXML)形式の.xlsxファイルを読み書きするためのAPI
**SXSSF**
大容量データを処理するために設計された、XSSFのストリーミング版

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334459/a7940230-74c2-fb58-6e7f-93d3a9641505.png)

SXSSFはストリーミング形式により、順番にメモリ上の行データを破棄しながら処理を進めていくため、XSSFに比べて処理速度が速いです。ではどのタイミングで

元記事を表示

SpringBoot の Validation 簡易メモ

SpringBoot で Validation 使った時のの簡易メモ
良いやり方は模索中。。。

# 実行環境
– Windows11
– Pleiades 2024 Full Edition
– Maven v3.9.6
– SpringFramework Boot v3.3.0
– Java v21
– spring-boot-starter-thymeleaf
– spring-boot-starter-web
– spring-boot-starter-validation

# プロジェクト作成
– Spring Boot DevTools
– Spring Web
– Lombok
– Thymeleaf
– Validation

Validation で追加された依存関係は以下
“`xml:pom.xml

org.springframework.boot
spring-boot-starter-validation

元記事を表示

Javaで「配列の要素を昇順・降順にソートする(sort)」の動作を確認してみた

# 概要

Javaで「配列の要素を昇順・降順にソートする(sort)」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/array/index14.html

# 実装

以下のファイルを作成しました。
“`JSample14_1.java
import java.util.Arrays;

class JSample14_1{
public static void main(String[] args){
int[] src = {12, 24, 18, 35, 21};
System.out.println(Arrays.toString(src));

Arrays.sort(src);
System.out.println(Arrays.toString(src));
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample14_1.java
$ java JSample14_1
[12, 24, 18, 35, 21]
[1

元記事を表示

YAVI使い方メモ

# YAVIとは?
– Java のバリデーションライブラリ
– ラムダを使用し、型安全な API を提供する
– Yet Another Validation for Java の略で、読みは**ヤバイ**
– 日本人の [@making](https://x.com/making) さんが作っている
– Spring WebFlux.fn で使えるバリデーションが欲しいというのが動機で、 Bean Validation を置き換えるのが目的ではない
– 詳しい話は [Java用Validatorライブラリ”YAVI”(ヤヴァイ)の紹介 – IK.AM](https://ik.am/entries/461) を参照のこと

# 環境
“`
>gradle –version

————————————————————
Gradle 8.8
————————————————————

Build time: 202

元記事を表示

DTOクラスはアホにしよう

# DTOクラスはアホにした方がいい
– DTOクラスはただの入れ物であり、中身のデータが何かは知らない
つまり、getterやsetterは(中身は何か知らんけど)ただ来たものを、受け渡すだけ
– DTOクラスは、賢くしない方がいい(処理とかを入れない方がいい)
– 末端であるDTOクラスで色々やろうとすると、メンテナンス性が悪くなる
→・末端が広大化していく
 ・要件が増えた時にif文が増えたりしてカオスになる

**どこで頭を使うかにもよるが、基本は末端がアホな方がいい**

# カプセル化の意味
– カプセル化とは、他のオブジェクトに「使っていいよ」と公開するフィールドとメソッドを最小限に抑え、さらには、公開するなら操作できる範囲を必要最小限に抑えること。(アクセス制御 access control)

**いちいち色々と処理をするためのメソッドとかをDTOクラスに作っていたらキリがない!!**

# 備考
– Androidの場合、DTOクラスはアホにしてView Modelは頭をよくするようにすればいいハズ。。。
– kotlinのdata class(

元記事を表示

ABC359A~Fの解答[Java]

## はじめに
今回はコンテスト中にFまで解けたのでそれを載せようと思います。

なお、僕のライブラリは[GitHub](https://github.com/viral8code/viral-Library)をご確認ください。
では、見てきましょう。

## A – Count Takahashi
問題文は[こちら](https://atcoder.jp/contests/abc359/tasks/abc359_a)

`Takahashi`か`Aoki`の$2$通りなので、先頭一文字だけに注目すれば良いです。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out = new SimpleWriter(System.out,autoFlush);

public s

元記事を表示

ABC358A~D、Gの解答[Java]

## はじめに
今回はコンテスト中にDまでとGが解けたのでそれを載せようと思います。

なお、僕のライブラリは[GitHub](https://github.com/viral8code/viral-Library)よりご確認ください。
では、見ていきましょう。

## A – Welcome to AtCoder Land
問題文は[こちら](https://atcoder.jp/contests/abc358/tasks/abc358_a)

愚直に調べれば良いです。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out = new SimpleWriter(System.out,autoFlush);

public static void main(String

元記事を表示

【Java Gold】4種類のネストされたクラスの特徴についてまとめてみた

## 記事作成の経緯
現在、Java SE 11 Programmer II試験(以下Java Gold)に向けて勉強をしているのですが、参考書をある程度読み込みましたので、問題集への取り掛かりと並行してアウトプットをしていこうと思い、記事を作成しています。
自分はアウトプットを目的として書いていますが、どこかにいるであろう同じ試験への合格・挑戦を目指している方への参考になるような記事作成を心掛けていきます。
記事は「[オラクル認定資格教科書 Javaプログラマ Gold SE11(山本道子 著)](https://www.shoeisha.co.jp/book/detail/9784798170572) 」(いわゆる紫本)を参考に作成しております。

## 今回紹介する内容
今回はおそらくJava Goldを勉強する際、最初に苦労するであろうネストされたクラスについて紹介していこうと思います。

## ネストされたクラスとは
ネストクラスとは一言で表すと「クラス定義の中に定義されたクラス」です。クラス定義は通常、Javaファイル内で行われクラスの中に

元記事を表示

ABC357A~Fの解答[Java]

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

なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc357/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認ください。
では、見ていきましょう。

## A – Sanitize Hands
問題文は[こちら](https://atcoder.jp/contests/abc357/tasks/abc357_a)

$H$を順に受け取って、$M$が$0$を下回ってしまうタイミングを探しました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter

元記事を表示

OTHERカテゴリの最新記事