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

JAVA関連のことを調べてみた2023年08月24日
目次

Application Performance MonitoringでWEBアプリを監視する③

最後は、OpenTelemetryを用いて、APMでNode.jsアプリケーションの監視を行う方法を紹介します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/068a7775-72f3-e13c-18bd-4153b5633704.png)

OCI APMは、JaegerやZipkinなどのOpenTelemetryおよびオープンソースのトレース・ツールをサポートしています。Node.jsのアプリケーションのトレース・データをAPMにアップロードする方法としては、OpenTelemetryやZipkinトレーサなどがありますが、ここではOpenTelemetryを用いた設定方法を紹介します。

## アプリケーションのデプロイ & OpenTelemetryの有効化

“`shell
#node インストール
sudo dnf module install -y nodejs:18
node -v

#opentelemetry インストール
npm instal

元記事を表示

Leetcode 767. Reorganize String

https://leetcode.com/problems/reorganize-string/description/

#### アプローチ
– MaxHeap

“`java
class Solution {
public String reorganizeString(String s) {
// 各Charの回数をもつHashMap
HashMap hashMap = new HashMap<>();

PriorityQueue maxHeap = new PriorityQueue<>((a, b) -> hashMap.get(b) – hashMap.get(a));

for (char c : s.toCharArray()) {
hashMap.put(c, hashMap.getOrDefault(c, 0) + 1);
}

for (char c :

元記事を表示

【初心者向け】戻り値とは?いる場合といらない場合

# はじめに
こんにちは。私はプログラミング未経験で開発職に配属されてから2か月目の超初心者です。
基本中の基本である「戻り値」について、初めの頃は「メソッドから返される値らしいけどわかるようでわからないな~」という感じでした。

なので、Javaを勉強し始めた人が「戻り値」って何なのかをまずざっくりと知ることができる手助けになればという気持ちでこの記事を書くことにしました。

# わかっていなかったポイント
+ 戻り値がいる場合といらない場合の違い
+ 値を返さない(戻さない)とは具体的にどういう状況なのか

# 戻り値(返り値)とは
+ メソッドが呼び出されたときに **「呼び出し元に」返される値** のこと
+ メソッドで書かれている処理を実行し、最終的に返される値のこと

はじめは「値を返す」って、System.out.printlnなどの出力でも値が返ってくるってことじゃないの???と思っていたのですが、 **メソッドを呼び出した「呼び出し元に」値を返す** という意味です。

# 戻り値がいる場合といらない場合の使い分け
戻り値がある場合とない場合の最も大きな違いは、メ

元記事を表示

Javaで「テキストをファイルに書き込む」の動作を確認してみた

# 概要
Javaで「テキストをファイルに書き込む」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/stream/index4.html

# 実装
以下のファイルを作成しました。
“`StreamTest4.java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

class StreamTest4{
public static void main(String args[]){
try{
File file = new File(“test.txt”);

if (checkBeforeWritefile(file)){
FileWriter filewriter = new FileWriter(file);

filewriter.write(“こんにちは\r\n”);
filewriter.write(“お元気です

元記事を表示

スッキリわかるJava入門 第3版を読んでみて- part14 – Javaを支えるクラスたち

# はじめに
こんにちは(・ω・)ノ
今回はObjectクラスや静的メンバについて学びました!
## 第14章 Javaを支えるクラスたち
### 1.Javaが備えるAPI群
これまでJavaの基本文法とオブジェクト指向の概念について学びました。
規模の大きなプログラムでも現実世界を模して混乱せずに開発することが可能になりました。
しかし、大規模なプログラムを1人で開発するのは時間とお金の無駄になる…
そこでJavaに標準添付されているJacaAPIを使います。

API活用に欠かせない基礎知識について学んでいきます。

### 2.すべてのクラスの祖先
すべてのクラスがtoString()を持っている
⇨メソッドもフィールドもいっさい定義していないクラスのtoString()を呼び出せるはなぜ?

:sparkles: 暗黙の継承
あるクラスを定義するときextendsで親クラスを指定しなければ、
java.lang.Objectを親クラスとして継承したとみなされる

extendsを指定しなくても必ずObjectを継承する
⇨Javaでは親なしのクラスを定義できないということ

元記事を表示

Java Spring Boot の環境構築

## はじめに

今回は、研修課題として、Java Spring Bootでアプリケーション開発をやっていてSTSで開発環境を構築しました。
私が行った開発環境の構築方法について記録としてまとめたいと思います。
記事の内容として、ソフト、ツールの用途説明と、ダウンロード方法についてまとめています。

## 前提条件

|Windows10 64bit|
|—|

## 必要な環境
|環境|
|—|
|ファイル解凍ツール(7-zip)|
|JAVA (JDK)|
|Spring Tools 4 for Eclipse|
|Pleiades|
|Lombok|

## 7-zip

7-zipをインストールしていきます。
7-zipは、ファイルを解凍または、圧縮するときに使用するソフトです。
このソフトは、後で使用します。

* インストール方法

[7-zip](https://7-zip.opensource.jp/)のページにアクセス(押すとリンクへ飛びます。)して、
続 C++ はどれくらい速いのか?:バブルソートの演算で比較してみる

# 続 C++ はどれくらい速いのか?:バブルソートの演算で比較してみる

こんにちは、株式会社船井総研デジタルの @fsdg-adachi_h です。今回は、WSL の Ubuntu 環境で C++ プログラムを実行する方法などを紹介します。
![cpp_on_ubuntu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3206449/83f5f450-77ab-71b9-13eb-4633ef1b3a45.png)

## 目的

Windows 11 の Linux でクラウド開発します。

こちらから記事の一覧がご覧いただけます。

https://qiita.com/fsdg-adachi_h/items/6119ab05d8b13527efd8

## 実現すること

Ubuntu 22.04 上で、C++ を含む複数のプログラミング言語を使用して、バブルソートの演算の実行速度を比較します。

:::note alert
バブルソートの計算時間だけでは、**言語の性能を評価するのは難しい*

元記事を表示

C++ はどれくらい速いのか?:フィボナッチ数列の演算で比較してみる

# C++ はどれくらい速いのか?:フィボナッチ数列の演算で比較してみる

こんにちは、株式会社船井総研デジタルの @fsdg-adachi_h です。今回は、WSL の Ubuntu 環境で C++ プログラムを実行する方法などを紹介します。
![cpp_on_ubuntu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3206449/83f5f450-77ab-71b9-13eb-4633ef1b3a45.png)

## 目的

Windows 11 の Linux でクラウド開発します。

こちらから記事の一覧がご覧いただけます。

https://qiita.com/fsdg-adachi_h/items/6119ab05d8b13527efd8

## 実現すること

Ubuntu 22.04 上で、C++ を含む複数のプログラミング言語を使用して、フィボナッチ数列を求める関数の実行速度を比較します。

:::note alert
フィボナッチ数列の計算時間では、**言語の性能を評価するの

元記事を表示

Java 配列、ArrayListの重複をなくす

##### 配列の中にある重複をなくし、Hashsetに保存
“`java
HashSet set = new HashSet<>(Arrays.asList(arrays));
“`


##### 配列の中にある重複なしの要素のカウントする
“`java
int arrayCount = new HashSet<>(Arrays.asList(arrays)).size();
“`

##### ArrayListの中にある重複をなくし、Hashsetに保存
“`java
HashSet set = new HashSet<>(arrayList);
“`

##### ArrayListの中にある重複なしの要素のカウントする
“`java
int arrayListCount = new HashSet<>(arrayList).size();
“`

元記事を表示

ナイーブな再帰フィボナッチでマイクロベンチマーク

# これは何?

もともと
https://qiita.com/fsdg-adachi_h/items/5feeda2ed19f879fdf9a
という URL で公開されていた記事に
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6854/fd51abff-28a5-b664-b4a3-9b6773e7adf3.png)

というコメントを書いたら、その記事は削除されて。
同じ方が、全く同じような内容で

https://qiita.com/fsdg-adachi_h/items/c54135cf0a562019295c

という記事を公開されて。
なぜか私はコメントできない(ブロックされてるのかな)ようなので、コメントで書きたかった追加情報に関する記事を書こうと思った。

## int の長さの影響なのかどうか

元のコードが go は `int`。環境から類推するに 64bit 整数。
C / C++ は、おそらく 32bit。Java の int は 32bit。ということで不公

元記事を表示

【Java初心者】Wekaによる機械学習 03-コマンドラインで重回帰分析

# Javaで重回帰分析したい

重回帰分析ならば、Excelでも十分できるんだけど、これをJava環境で行いたいという趣味的な内容です。

こちらと同じデータを使ってみます(手入力)
https://corvus-window.com/excel_multiple-regression-analysis/

arffデータならばこんな形になります。目的変数をlastにしました。train.arffなどととします。

“`
@RELATION salasy2

@ATTRIBUTE 年齢 numeric
@ATTRIBUTE 通勤時間 numeric
@ATTRIBUTE 扶養人数 numeric
@ATTRIBUTE 出身大学 numeric
@ATTRIBUTE 年収 numeric

@data
35,60,2,48,670
58,70,3,61,1200
40,45,0,52,680
38,45,2,55,820
24,30,0,58,510
27,55,0,61,550
49,80,3,44,890
30,60,0,45,480
53,70,1,5

元記事を表示

Spring Bootを使ったWebアプリケーションの基本~理解度チェック~

最初に

この記事は以下の内容が理解できているかを確認するためのものです。

1. Spring BootのWebアプリケーションの基本① ~IntelliJの使い方とMVCモデルの概要~

2. Spring BootのWebアプリケーションの基本② 〜MVCモデルとEntityとlombok~

3. Spring BootのWebアプリケーションの基本③~3層アーキテクチャと依存性の注入~

4. Spring Bootを使ったWebアプリケーション⓪~業務用アプリケーションの概要~

はじめに

この記事は、Spring BootのWebアプリケーションの基本①からSpring BootのWebアプリケーションの応用④まで作成をした業務用アプリケーションのシステムの詳細を説明をした記事です。

Spring Bootを使ったWebアプリケーションの内容

1. Spring BootのWebアプリケーションの基本① ~IntelliJの使い方とMVCモデルの概要~

2. Spring

元記事を表示

Javaで「まとめてテキストを読む」の動作を確認してみた

# 概要
Javaで「まとめてテキストを読む」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/stream/index3.html

# 実装
以下のファイルを作成しました。
“`StreamTest3.java
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;

class StreamTest3{
public static void main(String args[]){
try{
File file = new File(“test.txt”);

if (checkBeforeReadfile(file)){
BufferedReader br = new BufferedReader(new FileReade

元記事を表示

スッキリわかるJava入門 第3版を読んでみて- part13 -カプセル化

# はじめに
こんにちは(・ω・)ノ
今回はカプセル化について学びました!

## 第13章 カプセル化
### 1.カプセル化の目的とメリット
##### カプセル化とは
他のオブジェクト指向3大機能の「継承」「多態性」の二つはできることを増やし便利にする機能
カプセル化では逆に、できることを制限するために用いる

なぜ制限をするのか…?
例:限られた人しか見れないようにパスワードをかける

情報へのアクセスや動作の実施について「誰に何を許すか」を定めて制限すること
… __アクセス制御__

つまりカプセル化とは
大切な情報(フィールド)や操作(メソッド)にアクセス制御をかけることにより、
悪意や間違いによるメンバの利用を防止し、
想定しない利用が発生したときに原因を特定しやすくする

### 2.メンバに対するアクセス制御
4つのアクセス制御レベル
![スクリーンショット 2023-08-22 15.14.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3336192/e9888ef

元記事を表示

Application Performance MonitoringでWEBアプリを監視する②

[前回](https://qiita.com/western24/items/bfd9bd9e6a20afe43376)は、Spring BootとAPM Javaエージェントのデプロイを行いました。今回は、APM Java Tracerを用いて、APMでHelidonアプリケーションの監視を行う方法を紹介します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562423/068a7775-72f3-e13c-18bd-4153b5633704.png)

OCI APMは、OpenTelemetryに対応しており、各フレームワークのトレーシング機能を有効化することによってAPM側でそのテレメトリーデータを受信し、APM Javaエージェントの場合と同様にトレースデータして表示させることが可能です。

まずは、Helidonベースのアプリケーションをデプロイすると同時にAPM Java Tracerを有効化しAPMで動作させる設定を行います。

## アプリケーションのデプロイ &

元記事を表示

New RelicのAPMエージェントを使ってエラーのユーザーへの影響度合いを計測してみた

# 概要
 New RelicのErrors Inboxは、カスタム属性を活用することでエラーの影響を受けているユニークユーザー数を簡単に確認することが可能です。またその値を元にしたユーザーへの影響度を基準としてエラーグループをランキング形式で表示してくれるため、対応の優先順位付けが容易になります。
 今回のアップデートではこれまで使用してきたカスタム属性を設定するAPIを使用せずにユーザーを識別するIDを設定する方法が提供されました。

:::note info
このアップデートの詳細はこちら。
[New Relic アップデート(2023年3月)](https://newrelic.com/jp/blog/nerdlog/new-relic-update-202303 “New Relic アップデート(2023年3月)”)
[New Relic アップデート一覧](https://newrelic.com/jp/blog/nerdlog/new-relic-update “New Relic アップデート一覧”)
:::

では実際にやっていきましょう。

# 設定手順
 Jav

元記事を表示

Javaアプリを手軽にリアルタイムプロファイリングする

# 概要
Javaを使ったアプリケーションを運用する場合、JVMやGCと付き合っていく必要があります。それらの情報を取得しプロファイリングするツールとしてJava Flight Recorder(JFR)がありますが、New Relicでもその結果を可視化して分析することができます。

New Relic APMエージェントでは、このJFRを使ったリアルタイムのプロファイリングをアプリケーションの再起動なしに有効化・無効化して気軽に利用できます。これにより、例えば本番環境で何かしらの性能問題が発生した場合であっても調査のために一時的にプロファイリングすることができます。

:::note info
このアップデートの詳細はこちら
[New Relic アップデート(2023年3月)](https://newrelic.com/jp/blog/nerdlog/new-relic-update-202303)
[New Relic アップデート一覧](https://newrelic.com/jp/blog/nerdlog/new-relic-update)
:::

それでは早速JFRに

元記事を表示

AozoraEpub3に手を入れる方法

諸事情あって青空文庫のデータをEPUBにする必要があったので色々探してたらAozoraEpub3なるものを見つけた。

https://github.com/kyukyunyorituryo/AozoraEpub3

幸いなことにOSSで公開されているので何かあったら自分で手を入れられるのもよかったし、しっかり作られてる印象があったので自分用にメモを残す。

## 開発環境

まずは作者さんに感謝しつつ下記記事を参考に開発環境を整える。

https://qiita.com/99nyorituryo/items/93b37f5f67ed30f87332

自分の開発環境はVSCode+Java Extensionなんで、そっち向けにメモを残す。

ちなみに自分用にはGUIは不要だったのでAozoraEpub3Appletを使う人はローカルにAdoptium+Ant環境を用意するといいと思う(未検証)

## 必要なツール類

* Docker for Desktop
* Visual Studio Code
* Java Extension

## ソースコードのClone

元記事を表示

中堅SI(客先常駐)から自社開発に転職して1年たって感じたこと

#### はじめに
転職して1年がたったのでふと思いついて筆をとります。
SIerや客先常駐をディする意図はありません。
そういう働き方もあると思います。(ぶっちゃけ私はもう二度とごめんですが)
いろいろいいところや悪いところを比較していきたいと思います。
ほろ酔いなので誤字脱字見過ごしてください。

#### 経歴
8年目にして中堅SIから自社開発に転職(いずれも数千人規模)
転職後1年経過

#### SIerのいいところ
1.いろんな現場を経験できる。
客先常駐や派遣のメリットはとにかくこれに尽きると思います。
一流企業に常駐して優秀な人と一緒に仕事ができたのはとても勉強になりました。
今思えば、厳しくはあったものの仕事の仕方や考え方は常駐先のお客さんから教わりました。連日終電までお客さんに怒られながらコーディング&資料作成をしたのはいい思い出でした。
様々な現場を経験できるので、どこでもやっていける力が身に付きます。
私は自身の強みや弱み、開発の上流~下流のどこが得意でどこをやりたいのかなども比較的はやく把握できたと思います。

2.比較的給料がいい
はっきりいうと中堅あたりの

元記事を表示

OTHERカテゴリの最新記事