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

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

UMLの読み方(初心者用)

# はじめに
Javaを学習し始め、色々な本を手にするとUMLが良くつかわれていることに気づく。本によってはUMLの解説があるが、解説なしでUMLを使う本もあり、UML図を見て「これ、どういう意味だっけ?」を解決するために、私が学習していく中でよく使うUMLの基本をまとめてみた。学習中に出てこなかった内容は記載していないので、UMLのすべては載っていません。
私自身が初心者のため誤っている箇所があると思います。誤りに気付いた箇所があれば教えていただけると幸いです。

## クラス図
![クラス図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569317/1bfeae42-9305-1102-eedb-327b6a1946aa.png)

## クラス間の関連
![クラス図全体.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3569317/daa4c7bc-31ec-5219-3bc0-abdfdf56a0a9.

元記事を表示

GradleプロジェクトのJava17 -> 21にしたときにハマった

# 背景
ある個人開発のJava(Gradle)プロジェクトをJava17 -> 21に引き上げると、プロジェクトから魑魅魍魎が発生してしまいました。
これを解消すべく、以下を試していきました。

私の環境はIntelliJのCommunity版を使用しております。

# やったこと
## build.gradleのsourceCompatibilityを21に引き上げ
“`gradle
java {
sourceCompatibility = ’21’
}
“`

これだけだと、Gradleタスク実行時に
“`
エラー: 21は無効なソース・リリースです
“`
が発生しました。

## IntelliJのGradle設定変更
Ctrl + Alt + Sで設定を開き、「ビルド、実行、デプロイ」-> 「ビルドツール」 -> 「Gradle」のGradle JVMを21に変更。
しかしこれでも以下が発生した。
“`
Execution failed for task ‘:compileJava’.
> java.lang.NoSuchFie

元記事を表示

日本語プログラミング言語 なでしこ Java C# でHello World実行時間を仲良く競う

# はじめに
日本語プログラミング言語 なでしこ とJava C# とで「Hello World」コンソール出力の反復実行時間を仲良く競い合わせてみます。

## この記事内容の作業環境
Windows11 Pro 22H2
VSCode(Visual Studo Code) 1.78.2
java Eclipse Adoptium jdk-20.0.2.9-hotspot
C# 10 dotnet-sdk-6.0.404-win-x64
nadesiko version 1.588 for Windows
CPU Intel(R) Core(TM) i3-5005U 2.00 GHz

## この記事内容の保証
※この記事の実行結果は参考情報です。実行環境に大きく依存します。

# お題のソースコード
#### Java
“`Java:main.java
import java.lang.System;
/**
* プログラム型
*/
class Program
{
/**
* メイン
* @param args 引数
*/
public s

元記事を表示

【Java】稼働率<->年間停止時間を相互に変換する

# はじめに

職場で非機能要件をまとめる際に「稼働率99%って、年間停止時間がどれ位だっけ?」という話になりました。
1年間で365日ということは、稼働率99%だとざっくり3日強ではないかという予測は立てられますが、正確な年間停止時間をパッと言える人はほとんどいないと思います。

そこで「稼働率から年間停止時間を求める処理」と、逆に「年間停止時間から稼働率を求める処理」を書いてみました。

# 作成したコード

* 可用性を表すAvailabilityクラスには2つコンストラクタを用意しており、引数がdoubleの時は稼働率、intの時は年間停止時間を受け取るという形にしました。
* そのため、稼働率->年間停止時間の変換処理だけが必要であれば、引数がintのコンストラクタは不要となります。
* 後から思ったのですが、「稼働率クラス」と「年間停止時間クラス」に分けて、それぞれで変換処理を持たせた方が自然だったかもしれません。
* 他にももっとスッキリ書ける方法があるかもしれませんが、久々にJavaを触ったのでこれが限界でした…

“`java:Availability.

元記事を表示

初めてのJavaアプリ製作から3週間の今

## あらすじ
IT業界未経験のおじさんが9月からJavaを学んで最近アプリを作り始めました。

## 現在の状況

思った以上にアプリ製作楽しめています。
記事を書くより製作に時間を使いたいと思う程に。

現在の完成度は、最低限の機能の実装は完了したという状況です。
### ログイン画面

### メイン画面
【精選10問】B – Some Sumsを解いた

# 問題
https://atcoder.jp/contests/abc083/tasks/abc083_b
# 解説?
精選10問の5問目。全探索の問題。結構簡単に解けた。
と思ったら、100以上の数値を考えていなかった。
10^4まであるようなので、100だけどうにかしてもしょうがない。
地道に組みたくなかったので調べてみた。
%10の使い方間違えてた。

# 回答

~~~java:Main.java
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int A = scan.nextInt();
int B = scan.nextInt();
int allSum = 0;

for (int i=1;i<=N;i++) { int n = i; int sum = 0

元記事を表示

日本語プログラミング言語 プロデル Java C# で整数カウントアップ実行時間を仲良く競う

# はじめに
日本語プログラミング言語 プロデル とJava C# とで整数カウントアップの反復実行時間を仲良く競い合わせてみます。コンソール出力は意外と重い処理のようで、いったん素の処理でどんなものなのかなと。

## この記事内容の作業環境
Windows11 Pro 22H2
VSCode(Visual Studo Code) 1.78.2
java Eclipse Adoptium jdk-20.0.2.9-hotspot
C# 10 dotnet-sdk-6.0.404-win-x64
Produire Version 2.0.1197 for Windows
CPU Intel(R) Core(TM) i3-5005U 2.00 GHz

## この記事内容の保証
※この記事の実行結果は参考情報です。実行環境に大きく依存します。

# お題のソースコード
#### Java
“`Java:main.java
import java.lang.System;
/**
* プログラム型
*/
class Program
{
/**
* メイン
* @p

元記事を表示

【精選10問】B – Coinsを解いた

# 問題
https://atcoder.jp/contests/abc087/tasks/abc087_b

# 解説
戦線10問の4問目。全探索の問題。
枚数で回して組み合わせた。
# 回答

~~~java:Main.java
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
int x = scan.nextInt();
int cnt = 0;
int sum = 0;

for (int i=0;i<=a;i++) { for (int j=0;j<=b;j++) { for (int k=0;k<=c;k++) { sum = i*500 + j*100 + k*50;

元記事を表示

日本語プログラミング言語 プロデル Java C# でHello World実行時間を仲良く競う

# はじめに
日本語プログラミング言語 プロデル とJava C# とで「Hello World」コンソール出力の反復実行時間を仲良く競い合わせてみます。

## この記事内容の作業環境
Windows11 Pro 22H2
VSCode(Visual Studo Code) 1.78.2
java Eclipse Adoptium jdk-20.0.2.9-hotspot
C# 10 dotnet-sdk-6.0.404-win-x64
Produire Version 2.0.1197 for Windows
CPU Intel(R) Core(TM) i3-5005U 2.00 GHz

## この記事内容の保証
※この記事の実行結果は参考情報です。実行環境に大きく依存します。

# お題のソースコード
#### Java
“`Java:main.java
import java.lang.System;
/**
* プログラム型
*/
class Program
{
/**
* メイン
* @param args 引数
*/
publi

元記事を表示

【Java】SpringBootで美容院の予約管理システムを作成してみた

# SpringBootを使用して美容院の予約管理システムを作ってみました
ProになるJavaというテキスト内で、SpringBootを使用したアプリケーションの作成の項目があり、学習したことの復習のため今回のシステムを作ってみようと思いました。
コード内に間違いや推奨されない書き方もあるかもしれないですが、とりあえず動くものを作ろうということで作成に踏み切りました。
まず、制作するにあたってどんな機能を作るべきなのかということを箇条書きでざっとまとめることをしました。

## 主に実装したい機能
・予約の登録(2日前まで)、確認、変更、取消
・名前、住所、メールアドレス、電話番号、希望メニューをDBにデータを格納
・各日付の予約ページにてDBから予約情報を出力し、空いている時間を見ることが可能
・予約完了時に10桁の予約番号を発行、トップページから予約番号を入力することで予約内容を確認することが可能
・予約完了、変更、取消手続き完了時に登録されているメールアドレスに確認メールを送信

個人的なこだわりとしては予約ページから予約可能か否かを一目で分かるようなものが作れたらなと考えてい

元記事を表示

ABC329A~Fの解答[Java]

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

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

## A – Spread
問題文は[こちら](https://atcoder.jp/contests/abc329/tasks/abc329_a)

char型配列として受け取って空白区切りで出力しました。
“`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( Sys

元記事を表示

日本語プログラミング言語 Mind Java C# で整数カウントアップ実行時間を仲良く競う

# はじめに
日本語プログラミング言語 Mind とJava C# とで整数カウントアップの反復実行時間を仲良く競い合わせてみます。コンソール出力は意外と重い処理のような気もしてきましたので、いったん素の処理でどんなものなのか知ってみたくなりました。

## この記事内容の作業環境
Windows11 Pro 22H2
VSCode(Visual Studo Code) 1.78.2
java Eclipse Adoptium jdk-20.0.2.9-hotspot
C# 10 dotnet-sdk-6.0.404-win-x64
Mind Version 8.07 for Windows
CPU Intel(R) Core(TM) i3-5005U 2.00 GHz

## この記事内容の保証
※この記事の実行結果は参考情報です。実行環境に大きく依存します。

# お題のソースコード
#### Java
“`Java:main.java
import java.lang.System;
/**
* プログラム型
*/
class Program
{
/**
*

元記事を表示

JavaベースのCAPプロジェクトをMTAでデプロイする

## 目的
JavaベースのCAPプロジェクトをMTAでデプロイする方法について確認します。

## 背景
CAPの[チュートリアル](https://developers.sap.com/mission.cap-java-app.html)では、manifest.ymlを使用してサービス部分のみデプロイする方法が紹介されていました。しかし、移送を考えるとDBモジュールやその他のサービスインスタンスも同時にデプロイできるよう、MTAを使ったほうがよいです。

“cap java mta”などで検索すると、以下の記事やGitHubリポジトリがありました。
– https://blogs.sap.com/2023/09/06/deploy-a-java-based-cap-with-frontend-into-btp/
– https://github.com/SAP-samples/cloud-cap-samples-java/tree/main

これらの記事にはmta.yamlファイルの設定については書かれているものの、mta.yamlをどうやって作成するかについては書かれていません

元記事を表示

Java String型の値の論理否定

# JavaにおけるString型の論理否定

String型は比較演算子を使う事が出来ない
その為一般にequalsメソッドで文字列が同じであるかを判定する

しかし同値であるかを判定するequalsメソッドは存在するが、論理否定は無いらしい

String型の論理否定を実装する場合以下のように書く

“`java:String 論理否定
public class Main {
public static void main(String[] args) throws Exception {
String str_1 = “ABC”;
String str_2 = “XYZ”;

if(!(str_1).equals(str_2)){
System.out.print(“hoge”);
}
}
}
“`
“`java:出力結果
hoge
“`

“`java:A – Signboard.java
import java.util.*;
import jav

元記事を表示

AOJ ITP1 10-D Distance Ⅱを解いた

# 問題
https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/10/ITP1_10_D

# 解説?
ミンコフスキー距離とはいったい…。となったが、今まで習ってきた距離の計算を一般化したもののことらしい。
cbrtメソッドは初めて使って、合わせてsqrtのsqがsquareのことだと知った。
最後のチェビシェフはなんだこれとなったけど、xi-yiの絶対値が最大になるときらしい。
解けたはいいけどマンハッタン距離はピンときてない。

# 回答
~~~java:Main.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
double d1 = 0.0;
double d2 = 0.0;
double d3 = 0.0;
doub

元記事を表示

AOJ ITP1 10-C Standard Deviationを解いた

# 問題
https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/10/ITP1_10_C

# 解説
標準偏差を求める問題。
公式の通り計算してAC。

# 回答
~~~java:Main.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);

while(true) {
int n = scan.nextInt();
double sum = 0;
double m = 0;
if (n==0) break;
int[] s =new int[n];
for (int i=0;in;i++) {
s[i] = scan.nextInt();
}
// 合計と平均の計算
for (int i=0;in;i++) {

元記事を表示

Java を書いてきた人間が Kotlin を使って感じたメリット

# はじめに
前回の投稿ではサーバーサイドアプリケーションを開発した際の [戦術的モデリングにのみフォーカスして DDD を実践した話](https://qiita.com/kakasak/items/f00e1d80c0fd3d4780d5) を失敗談として書きました。この投稿は、私の DDD の実践内容を振り返りつつ、私の DDD の理解に欠けていた戦略的モデリングについての備忘録、考察を提示することを目的としており、扱うトピックがそもそも大きいので非常に長大な投稿となりました。
本当はもっと詳細に語りたかったテーマがたくさんありましたが、テーマからはずれるトピックを入れるような余地がなく、いくつかのテーマの詳細が抜け落ちました。
Java から Kotlin に置き換えた際に得られたメリットを語った部分もそのうちの一つです。Kotlin の機能を利用した結果、多くのメリットを得ることができましたが、失敗談がメインであったので、Kotlin を使ったことで [プログラムが硬くなったこと](https://qiita.com/kakasak/items/f00e1d80c0fd3d4

元記事を表示

AOJ ITP1 9-D Transformationを解いた

# 問題と解いた過程
https://onlinejudge.u-aizu.ac.jp/problems/ITP1_9_D

これは、各命令で分けるのがいいんだろうか。
substringで切り分けようとしたらjava.lang.stringindexoutofboundsexceptionが発生。
てっきり数字の指定も同じ文字列に入るのだと勘違いしてたけど、スペースで別の入力になってた。
入力は受け取れるようになったが、結構処理を書くのが面倒そう。

# 回答
ちょっと回答は見たけど、大体自力
~~~java:Main.java
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.next();
int q = scan.nextInt();
for (int i=0;i

元記事を表示

AOJ ITP1 9-C Card Gameを解いた

# 問題と解いた過程
https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/9/ITP1_9_C

辞書順で比較するCompateToメソッドは知っていたので簡単だった。
少し躓いたのがlionとtigerの比較でコードでは下のようにしていたので、きちんと点数が出てこなかったところ。
正の値出てくる方も正しい書き方に直してAC。
~~~java
// 間違い
t.compareTo(h)==0
// 正しい
t.compareTo(h)<0 ~~~ # 回答 ~~~java:Main.java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int tScore = 0; int hScore = 0; for (int i=0;

元記事を表示

【プログラミング】コード記述向上ポイント(個人用)

# 0.はじめに
大学の講義でJavaを使用するため学習を始めました
自身の備忘録として投稿してます

##### 関連学習
[【プログラミング】Java用語](https://qiita.com/AkihideKato/items/13ba72a0c61eabc540c3)
[【プログラミング】Java注意点・ルール](https://qiita.com/AkihideKato/items/63402744493932e9f87b)
[【プログラミング】オブジェクト指向](https://qiita.com/AkihideKato/items/3eb988a962774a409f52)
[【プログラミング】コード記述向上ポイント(個人用)](https://qiita.com/AkihideKato/items/33fd1400be6be2e25f5a)

# 書く前に考え方を整理する
– **“何を表示させるのか“**
– **“何回表示させるか“**
– **“どのように表示させたいか“**
構成を把握し一連の流れを全体的に掌握する必

元記事を表示

OTHERカテゴリの最新記事