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

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

Java Gold 例題 nio copy

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

Path sp = Paths.get(“food.jpg”);
Path dp = Paths.get(“food_copy.jpg”);

try {
if(Files.exists(dp)) {
System.out.println(“file already exists”);
} else {
Files.copy(sp, dp, StandardCopyOption.REPLACE_EXISTING);
System.out.println(“copy sucucess”);
};
} catch(IOException e) {
System.out.println(“IOException”);
}
}
}
“`
food_copy.jpgは存在しない。
このコードを2回実行した時に表示される出力結果はどれでし

元記事を表示

[備忘録 その14] Java Silver ~継承とポリモフィズム その3~

# 参照型の型変換
## 暗黙型変換
暗黙型変換は、コンパイラが自動的に行う型変換です。主にプリミティブ型と参照型の変換で使用されます。暗黙型変換は、型が互換性があり、データの損失がない場合に行われます。

#### プリミティブ型の暗黙型変換
Javaでは、あるプリミティブ型からより大きな範囲を持つプリミティブ型に変換する場合、暗黙的に変換が行われます。

“`java
public class Main {
public static void main(String[] args) {
int i = 10;
double d = i; // intからdoubleへの暗黙型変換
System.out.println(d); // 出力: 10.0
}
}
“`
ここでは、int型からdouble型への暗黙的な変換が行われます。intの値がdoubleに変換されても、データが失われることはありません。

#### 参照型の暗黙型変換
参照型では、サブクラスのインスタンスをスーパークラスの型として扱うことができ

元記事を表示

Java11

for文
for(式1;式2;式3){
処理分;
}

式1は文
int a = 0, b = 0でもよい
a++
a+=1
varでもよい

元記事を表示

解いてみた。「Bランク:長テーブルのうなぎ屋」

# 問題
[「Bランク:長テーブルのうなぎ屋」](https://paiza.jp/works/mondai/b_rank_skillcheck_sample/long-table)

# コード
Javaで解いてみました。

“` Java
import java.util.*;

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

Scanner sc = new Scanner(System.in);
int nN = sc.nextInt();
int nM = sc.nextInt();

// 初期化
boolean[] bSeat = new boolean[nN+1]; // 座席が埋まっているか?
int nCustomer = 0; // 座っているお客の人数

// 来店
for

元記事を表示

解いてみた。「Bランク:みんなでしりとり」

# 問題
[「Bランク:みんなでしりとり」](https://paiza.jp/works/mondai/b_rank_skillcheck_archive/word_chain)

# コード
Javaで解いてみました。

“` Java
import java.util.*;

public class Main {
public static final char FREE = ‘*’;

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
int nN = sc.nextInt();
int nK = sc.nextInt();
int nM = sc.nextInt();

// 単語セットの生成
HashSet hsWords = new HashSet();
for (int i = 0; i

元記事を表示

MacへJavaをインストール

書いておかないと何やったか忘れると言うのと、見返すのも面倒と言うことで記事として残すことにしました。

MacへJavaをインストールするところまで、本記事では説明させていただきます。

# JDK 開発キット 17.0.12 をダウンロードします。
※ JDKとはJava Platform, Standard Edition Development Kitのことです。

## Oracleのホームページへアクセスします。
https://www.oracle.com/jp/java/technologies/downloads/#jdk17-mac

### x64 DMGインストーラーをインストール
ARMとか選ぶと、IOTとかモバイル向けのになっちゃうので、選ばないように。

![スクリーンショット 2024-08-14 1.20.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95052/1478b2dc-8363-8fb8-c525-4c0647e743c1.png)

順に進んでいく

元記事を表示

解いてみた。「Bランク:神経衰弱」

# 問題
[「Bランク:神経衰弱」](https://paiza.jp/works/mondai/b_rank_skillcheck_archive/concentration)

# コード
Javaで解いてみました。

“` Java
import java.util.*;

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

Scanner sc = new Scanner(System.in);
int nH = sc.nextInt(); // カード枚数(垂直方向)
int nW = sc.nextInt(); // カード枚数(水平方向)
int nN = sc.nextInt(); // プレイヤー人数

int[][] anT = new int[nH+1][nW+1];

// カード読み込み
for (int h = 1; h <= n

元記事を表示

Javaで「名前付き正規表現グループの使い方」の動作を確認してみた

# 概要

Javaで「名前付き正規表現グループの使い方」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

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

class JSample14_1{
public static void main(String[] args){
String regex = “(?^.*(?:都|道|府|県))(?.*区)”;
Pattern p = Pattern.compile(regex);

Matcher m = p.matcher(“東京都港区赤坂”);
if (m.find()){
System.out.println(m.group());
System.out.println(m.group(“pref”));
System.out.printl

元記事を表示

Java Gold 例題 parallel 2

“`java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

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

Stream numbers = Stream.of(1,3,5,10, -2).parallel();

/* insert code */ nums =
numbers.collect(Collectors.groupingByConcurrent(n -> {
if(n % 2 == 0) return “even”;
else return “odd”;
}));

System.out.println(nums);
}
}
“`

元記事を表示

Java Gold 例題 parallel

“`java
class Product {
private String name;
private double price;

public Product(String name, double price) {
this.name = name;
this.price = price;
}

public String getName() {
return name;
}

public double getPrice() {
return price;
}

@Override
public String toString() {
return “Product{name='” + name + “‘, price=” + price + ‘}’;
}
}
“`

“`java
import java.util.Arrays;
import java.util.List;
import java.ut

元記事を表示

AES-CBCで暗号・複合、AES-GCMで暗号・複合するJavaプログラム

# 1. AES-CBCとは
AES-CBC(Advanced Encryption Standard – Cipher Block Chaining)は、対称鍵暗号方式の AES(Advanced Encryption Standard)を CBC(Cipher Block Chaining)というモードで使用する暗号化アルゴリズムです。AES-CBC は、ブロック暗号の一つであり、特にデータの暗号化と復号に用いられます。

### 1.1. AES-CBCの特徴
#### 1.1.1. ブロック暗号モード

AES-CBC は、データを一定のブロック(通常は 128 ビット)ごとに分割して暗号化します。各ブロックは、前のブロックの暗号化結果と XOR(排他的論理和)されてから暗号化されるため、同じ平文ブロックが繰り返し現れても暗号文は異なります。

#### 1.1.2. 初期化ベクトル(IV)

AES-CBC では、最初のブロックを暗号化する前に、初期化ベクトル(IV)と呼ばれるランダムな値が使用されます。これにより、同じ平文を何度も暗号化しても、異なる暗号文が生成されます。

元記事を表示

Javaの強みを徹底解説③:ガベージコレクション

こんにちは NSS の江口と申します。[前回の記事(JITコンパイラ)](https://qiita.com/NSS_FS_ENG/items/c9bccab6651c39d3fc4e)に引き続き`Java`の話となります。
今回は **ガベージコレクション** について話していこうと思います。前回と同様に今回記載している内容は**Java21**に準拠しています。

# ガベージコレクションとは

![ガベージコレクション(概要).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3799996/0eef1389-3505-ab31-1b64-64a7e9102732.png)

Heap領域内に確保されたメモリを自動的に解放する仕組みです。誰からも参照されなくなったメモリを対象にします。
現在の多くのプログラミング言語では当たり前にサポートされていることが多いです。(贅沢ですね。)

# ガベージコレクションの種類

では具体的にどうやってメモリを片付けるのかという話ですが、これという一つに決まっている

元記事を表示

Javaで「正規表現グループを設定してパターンの一部にマッチした文字列を取得する」の動作を確認してみた

# 概要

Javaで「正規表現グループを設定してパターンの一部にマッチした文字列を取得する」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

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

class JSample13_1{
public static void main(String[] args){
String regex = “(\\d{3})-(\\d{4})”;
Pattern p = Pattern.compile(regex);

Matcher m = p.matcher(“〒123-4567”);
if (m.find()){
System.out.println(m.group()); // 123-4567
System.out.println(m.group(0)); // 123-4567

元記事を表示

ResponseEntityと@ResponseStatusの違いを調べました

## 入る前に
– 私は韓国人として、日本語の勉強とコンピュータの勉強を同時に行うために、ここに文章を書きます
– 翻訳機の助けを借りて書かれた文章なので、誤りがあるかもしれません
– 間違った部分についてのフィードバックはいつでも歓迎です
– 私と異なる意見もいつでも歓迎です
– 日本の開発者たちとコミュニケーションを取りたいです!

## 主題紹介

SpringでHTTP応答を設定するResponseEntityと@ResponseStatusオプションの違いについて調べました。

## ResponseEntity
“`java
@PostMapping()
public ResponseEntity startWeatherCrawlToday(){
return ResponseEntity.ok(“hello”);
}
“`
上記のコードはHTTPステータスコードを200で返し、応答本文にhelloを含んでいます。

## @ ResponseStatus
“`java
@ResponseS

元記事を表示

Clean Code – Chapter 3 : 関数

[Clean Code アジャイルソフトウェア達人の技](http://www.amazon.co.jp/Clean-Code-%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%81%94%E4%BA%BA%E3%81%AE%E6%8A%80-Robert-Martin/dp/4048676881)の本を整理した内容です

# 第3章 関数

どんなプログラムでも、最も基本的な単位は関数です。この章では、関数をうまく作成する方法を紹介します。

## 1. 小さく作りましょう!

関数を作るための第一のルールは「小さくする!」です。関数を作るための第二のルールは「さらに小さくする!」です。

では、どれくらい短くすれば良いのでしょうか?

この本の著者は、インデントレベルが2段を超えてはいけないと言っています。そうすることで、関数は読みやすく理解しやすくなります。

## 2. 一つのことだけを行いましょう

`関数は一つのことを行

元記事を表示

paizaランクS「文字列収集」を記事を書きながら解いてみた

## キャンペーンしてたので、Java独学の自分が思考整理の為に記事を書きながら問題を解いてみました

挑戦した問題はランクSの「文字列収集」です。

https://paiza.jp/works/mondai/real_event/word_collection

問題文のコピー

あなたは文字列の愛好家で、文字列を収集することにとても熱心です。

文字列は市場で高値で取引されています。今、市場には N 個の文字列が出まわっており、文字列 S_i (1 ≦ i ≦ N) の価格は P_i です。 あなたは数ある文字列の中でも、とくに先頭がある特定の文字列で始まる文字列に興味があり、そのような文字列をすべて買い占めたいです。例え、同じ文字列が複数売っていたとしてもそのすべてを買います。

そこで、市場に出回っている N 個の文字列 S_i とそれぞれの価格 P_i (i ≦ i ≦ N)、また、M 個のクエリ文字列 Q_i (1 ≦ i ≦ M) が与えられるので、それぞれのクエリ Q_i に対し、市場に出回っている文字列の中で先

元記事を表示

初心者エンジニアがleetCodeのTop Interview 150を解いてみる #1Merge Sorted Array

## 1. ☺️はじめに☺️
### 始めようと思ったきっかけ
+ コーディングスキル向上と理解定着のため
→業務で必要なコーディングをするだけでは知識の幅が狭まるのではないかと思い、全般的な知識を身につけるべく、leetCodeに手を出してみた。
また、解いて終わりではなくて、問題を解く中で調べたことの記録をアウトプットすることで記憶を定着させる目的もある。
+ 言語化能力向上のため
→実務で人に自分がなぜこう書いたのか説明するのが苦手だな〜と思っていたので、問題を解くときに考えたことを書くことで練習できると思った。

### 💻対象言語
JavaScriptとJava

### 👀注意事項
当方実務経験1年のエンジニアなので、およそ最適とは言えない解き方をしているという自覚はありますので、温かい目で見守っていただけるとありがたいです😂💦

## 2.💪早速解いてみる💪
・88.Merge Sorted Array
https://leetcode.com/problems/merge-sorted-array/

(問題)
与えられた引数(配列 nums1,nums2 および整数

元記事を表示

HTTPの主なステータスコード一覧

## 主なステータスコード一覧
| ステータスコード | 名前 | 説明 |
| :— | :— | :— |
| 200 | OK | リクエスト成功 |
| 201 | Created | リクエスト成功、新しいリソースが作成された |
| 202 | Accepted | リクエスト成功 |
| 204 | No Content | コンテンツなし |
| 300 | Mutiple Choices | 複数のリソースが存在する |
| 301 | Moved Permanently | リソースは恒久的に移動した |
| 302 | Found | リクエストしたリソースは一時的に移動している |
| 303 | See Other | 他を参照 |
| 304 | Not Modified | 前回から更新されていない |
| 307 | Temporary Redirect | リクエストしたリソースは一時的に移動している |
| 400 | Bad Request | リクエストが正しくない |
| 401 | Unauthorized | 認証が必要 |

元記事を表示

javaでFizzBuzzゲームを実装してみた

## 概要
今回はjavaでFizzBuzzゲームのコードを書いてみました。
練習用で記述していますのでご承知ください。

#### ソースコード
実行用クラスです。
“`Main.java

public class Main {
public static void main(String[] args){
int input_num;

System.out.println(“Fizzbuzz–>start”);
Cal parts = new Cal();
parts.init();//Fizzbuzzゲームの説明
input_num = parts.get_num();//標準入力で整数値(1-99)を取得する
System.out.println(“Fizzbuzz–>input_num:” + input_num);
parts.judge(input_num);//5の倍数:Fizz,5の倍数:Buzz,15の倍数:FizzBuzzかの判定

元記事を表示

Java Gold 例題 同期制御

“`java
package threadTest;

public class SynchronizeTest {
public static void main(String[] args) {
Market market = new Market();
ThreadFirst tf = new ThreadFirst(market);
ThreadSecond ts = new ThreadSecond(market);
tf.start();
ts.start();
}
}

class ThreadFirst extends Thread {
private Market market;
public ThreadFirst(Market m) {
market = m;
}
public void run() {
for(int i = 0; i < 4; i++) { int num = (int)(Math.random() * 10 + 1); market.wholesale(num); } } } cl

元記事を表示

OTHERカテゴリの最新記事