- 1. Javaの学習 ~javaコマンド~
- 2. ABC263A~Dの解答[Java]
- 3. 拡張for文ってわかりにくいよね
- 4. とりあえず、JavaからKotlinへの一歩
- 5. ThymeleafからJavaのstaticメソッド等を呼び出す
- 6. SAP Cloud SDKを使った開発
- 7. Javaの学習 ~エントリーポイント~
- 8. IT未経験で「Java Bronze」合格を目指します!
- 9. Javaの学習 ~import~
- 10. [Apache Hop] ローコードでMQTT送受信してみた
- 11. ABC262A~Dの解答[Java]
- 12. スッキリわかるサーブレット&JSP入門で引っ掛かった点
- 13. 【Java】任意文字列でラブ注入
- 14. 自己紹介と初投稿
- 15. GradleでCheckstyleとOpenRewriteを使ってみた
- 16. Javaの学習 ~package~
- 17. Spring boot + Ajax 簡易掲示板作成 (投稿機能)
- 18. Ubuntu 22.04 で Java をインストール
- 19. docker上で動かしているjavaアプリが何か遅い気がするときに調べたことなど備忘録
- 20. Javaでキーボードピアノを作る
Javaの学習 ~javaコマンド~
### javaコマンドとは
javaプログラムを実行するためのコマンド。
javaコマンドで実行できるものは、①mainメソッドを持つクラスファイル
②jarファイル内のメインクラス
③モジュールに含まれるメインクラスの3つです。
※jarファイルとは・・・javaファイルを圧縮した、拡張子が「.jar」のファイルのこと。
※モジュールとは・・・クラスを束ねるパッケージをさらに束ねるもの。### javaコマンドの構文
クラス名の後に続く引数は、「起動パラメータ」や「コマンドライン引数」と呼ばれます。
“`
//引数は必要な時のみ指定する
$java 完全修飾クラス名 引数
“`
(例)
“`
//下記のPracticeクラスを実行
$java Practice//結果
練習
“`“`java
public class Practice {
public static void main(String[] args) {
System.out.println(“練習”);
}
}
“`
### ソースファイルモード
J
ABC263A~Dの解答[Java]
## はじめに
A~Cはコンテスト中に、Dは解説を見て解きました。Dまで解きたかったな・・・。では、見ていきましょう。
## A – Full House
問題文は[こちら](https://atcoder.jp/contests/abc263/tasks/abc263_a)A~Eをそれぞれ見ていっても良いですが、ソートして参照した方がなんとなく楽かなと思いました。
A~Eを配列に入れてソートし、card[0]==card[1]かつcard[3]==card[4]を満たしていて、かつcard[2]がcard[1]かcard[3]と等しければフルハウスになります(全部同じケースは無いと制約にあるのでこれで良い)。“`A.java
class Main{static Library System = new Library(java.lang.System.in,java.lang.System.out);
public static void main(String[] args)throws IOException{
//A~Eを格納&ソート
i
拡張for文ってわかりにくいよね
拡張for文って見た感じ意味が分らない(for文の方がわかりやすい)、謎いからよく分からないまま放置していました。重い腰を上げ、学習したらなんとなく理解できたっぽいです。備忘録として残します。
## 拡張for文とは
配列を取り出すためだけに生まれた、そんな存在。
配列の個体たちを1つずつ取り出したら、自動的に繰り返し処理を終了する。## 構文
~~~Java
for( データ型 一時変数 : 集合 ){
繰り返し処理
}
~~~一時変数=繰り返している間だけ使用する変数
集合=値を取り出したい配列## コード例
~~~Java:拡張for文
public class kakuchoFor {
public static void main(String[] args) {
int[] arry ={10,20,30};
for (int i : arry) {
System.out.println(i);
}
}
~~~
~~~:実行結果
10
20
とりあえず、JavaからKotlinへの一歩
# 背景
最近Springをやる機会あり、Kotlinをやりました。
Javaよりかなり便利ですと実感しましたので、自分みたいな人にCheatSheetみたいなメモを共有できたらいいかと思います。# ログ
– Java
“`java
System.out.print(“Hello World!”);
System.out.println(“Hello World!”);
“`
– Kotlin
“`kotlin
print(“Hello World!”)
println(“Hello World!”)
“`
# 変数と定数
– Java
“`java
String name = “これは変数”;
final String name = “これは定数”;
“`
– Kotlin
“`kotlin
var name = “これは変数”
val name = “これは定数”
“`
# 空判定
– Java
“`java
// その他、isNullとかの関数も使える
if (text != null) {
int length = text.length();
}
ThymeleafからJavaのstaticメソッド等を呼び出す
こんな感じ
“`html
< th:block th:text="#{${T(com.example.Hoge).fuga()}}" />
“`
SAP Cloud SDKを使った開発
この記事は [chillSAP 夏の自由研究2022](https://note.com/chillsap/n/n62740563aee0) 8/8の記事として執筆しています
# はじめに
SAP BTP上でUI5のApplicationを作成時、DBへの登録処理等でサーバサイドのアプリケーションの開発も必要になることが多いかと思います。特にJavaのアプリケーションを開発する際に便利なSAP Cloud SDK等、Javaのライブラリについて一部紹介させていただきます。# ログインユーザの情報を取得
IAS(Identity Authentication Service) でユーザ管理をし、IAS上で管理されているユーザID、メールアドレス、従業員番号等を
サーバサイドのJavaアプリケーションで取得する場合に、com.sap.cloud.security.xsuaaのライブラリを使用し、Tokenから情報を取得することができます。#### pom.xmlへの記載例
“`
com.sap.cloud.security
Javaの学習 ~エントリーポイント~
### エントリーポイントとは
複数のメソッドが定義されている際に、どのメソッドから処理を始めるべきか決まっていなければいけません。
エントリーポイントとは、その一番最初に処理をするメソッドのことです。### エントリーポイントのメソッドの定義
定義方法は、よく見かける下記のコードです!
※「args」は変数名の宣言にあたる為、別の名前に変更可能。
“`java
public static void main(String[] args) {}
“`
### エントリーポイントのルール
・publicであること
・staticであること(インスタンスを作らなくてもよい)
・voidであること(戻り値は戻せない)
・メソッド名がmainであること
・引数はString配列型であること(可変長引数のString型でもよい)こんなに細かくルールがあるからいつも同じ書き方なんですね…
##### 可変長引数のString型とは
可変長引数とは、引数の数が決まっていない引数のこと。
“`java
public static void main(String… args
IT未経験で「Java Bronze」合格を目指します!
IT未経験で「Java Bronze」合格を目指します!
【概要】
・まきさん(仮名)と申します。
・30代前半で未経験からシステムエンジニアに転職を目指しています。
・すこしでも有利になればと思い、最初Java Silverを受験しましたが、正解率40%弱で完敗。。。
→8/7(日)に下位資格であるJava Bronzeを受験しましたが、正解率51%でこちらも完敗。。。
・Java Bronzeは少なくとも受からないとまずいと思い、9月末までに再受験予定。
・毎日、勉強で気づいたことなどを投稿予定です。——————————————————————————————-
【勉強1日目】
■オーバーライドとオーバーロードの違い<オーバーライドのルール>
・戻り値、メソッドのシグネチャ(メソッド名、引数の型、数、順番)がすべて同じ。
・アクセスレベルが親クラスと同じか緩い制限であること(例:親クラスがprotectedなら子クラスはpublicかprotecte
Javaの学習 ~import~
前回に引き続き、Javaの学習まとめです。
### importとは
importを宣言することで、前回学習したようなpackageのクラスを簡単に利用できるようになる他、
Javaに元々用意されているパッケージ(クラスライブラリ)を利用できるようになる。### importの宣言方法
この宣言をすることで、ソースコードをわざわざ完全修飾クラス名で利用しなくてもよくなる。
“`java
import パッケージ名.クラス名;
“`
クラスライブラリの場合も宣言方法は同じです。
アスタリスクを使うことで、一度に複数のクラスをインポートすることができます。
※サブパッケージであるjava.util.regexパッケージやjava.util.loggingパッケージに属するクラスはインポートできません!また、頻繁に利用されるjava.langパッケージはインポート宣言を省略することができます。
“`java
import java.util.Scanner;
import java.util.Date;
import java.lang.String; //省略可
impor
[Apache Hop] ローコードでMQTT送受信してみた
# 紹介したいこと
– ローコードでMQTTを送受信する方法を紹介します。
– HopにはMQTTをPublish, Subscribeする部品がある。
– HopでのETLの定義の雰囲気を伝えたい for Beginner。# 対象者
– Apache Hop (データ統合プラットフォーム) 、ETLを試してみたい方。
– ローコードでMQTTを送受信してETL処理に連携させたい方。# 前提
– Dockerを動かすことができる(MQTT Broker)。
– Apache Hopをインストールしている、HOP GUIを操作できる、簡単な変換処理を定義できる。
– MQTT部品は標準部品に含まれてない。EXTERNAL PLUGINSのため、以下のサイトの手順沿ってビルドして配置する必要がある。https://hop.apache.org/manual/latest/plugins/external-plugins.html#_transforms
# 全体構成
MQTTの送受信の動きを確認するため、以下の全体構成、データの流れを考えて、試してみた。
![image.p
ABC262A~Dの解答[Java]
## はじめに
Dはコンテスト後に解いたものですが、実行時間的にもメモリ的にもあまりよろしくないのでそのうち追記しようかなと思います(反面教師的な感じで解説はしておく)。なお、LibraryクラスのBufferedReaderをSimpleScannerにしたのでご注意ください。
では見ていきましょう。
## A – World Cup
問題文は[こちら](https://atcoder.jp/contests/abc262/tasks/abc262_a)4で割ったあまりが2であることと現在が1月で大会は6月に開催されることを考えると、
・Y%4=0の時、Y/4×4=Yなので、Y+2=Y/4×4+2に開催される。
・Y%4=1の時、Y/4×4=Y-1なので、Y+1=Y/4×4+2に開催される。
・Y%4=2の時、Y/4×4=Y-2なので、Y=Y/4×4+2に開催される。
・Y%4=3の時、Y/4×4=Y-3なので、Y+3=Y/4×4+6に開催される。の四種類を考える必要があります。ここで、Y%4=3の時だけ6=4+2加算する必要があることに着目すると、事前にYに1を加
スッキリわかるサーブレット&JSP入門で引っ掛かった点
# 概要
タイトル通り、環境構築などで引っ掛かった点と解消法をまとめます。
環境構築方法等は公式WEBで無料公開されています。非常にありがたい!# パースペクティブにJava EEがでない
pleiades 2022版(最新)ではなく2021版をインストールすれば解決
https://mergedoc.osdn.jp/
最新版は使えないのね(悲しい)
# サーバーに追加または除去できるリソースがありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/5d9310de-28c2-21e5-f6f9-4ddc961e0d1f.png)
サーバーにプロジェクトを追加することができない問題。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazo
【Java】任意文字列でラブ注入
# はじめに
【問題】配列{"ドド","スコ"}からランダムに要素を標準出力し続け、『その並びが「ドドスコスコスコ」を3回繰り返したもの』に一致したときに「ラブ注入♡」と標準出力して終了するプログラムを作成せよ(配点:5点)
— ((?++)) (@Sheeeeepla) August 1, 2022
本記事ではTwitterで見かけた上記の問題を解くプログラムをご紹介します。
ただし、普通にJavaで解く方法については既に先駆者様がいらっしゃる([こちらの記事](https://qiita.com/na0y/items/1f5ed3ce215297d70d3a))ので、今回は任意の文字列を受け取るメソッドを実装し、上記の問題を解いてみました。
# 実装の方針
上記の問題を以下のように変換します。> 文字列の配列 `wordList` からランダムに要素を標準出力し続け、『その並びが文字列 `text` を `n` 回繰り返したもの』に一致したときに「`lastWord`」と標準出力して終了するプログラムを作成せよ
すなわち、「ドドスコスコスコ」のような具体的な文字列ではなく、任意の文字列を受け取って動作するメソッドを実装し、そこに「ドドスコスコスコ」などのパラメータを渡すことで問題文の動作を実現します。
なお、以下のような入力は考慮しない
自己紹介と初投稿
初めまして、やっさんです。
いままでは製造業に勤めていました。
未経験からエンジニアを目指しています。30代で転職して、IT業界に入ろうとただいま就活中です。
5月から8月まで職業訓練校で【java】の学習をしていました。
が、正直なところ、仕事で活かせるほどマスターしたとは言い難い状態。訓練校卒業後は自己学習がメインになりましたが、
やはり自分一人の意志だとレベルが低い自己満足でおわってしまうのが弱いところ・・・。どこかしらでアウトプットをしたいなと考えていた矢先に、こちらの【Qiita】というブログ??的なサイトを知りました。
基本的には、個人の勉強を乗せていく予定です。
学習したことをメモ帳的な感じで記載し、自分の思考の過去ログとして利用できたらなとも考えています。コード入力や、自己解釈についての誤解があると思われますので、参考にはしないでください。笑
あれば指摘やアドバイスしていただけると嬉しいです。あと同じような境遇の方とも知り合いたいとも思っております。
こんな感じですね!笑
よろしくお願いします。
GradleでCheckstyleとOpenRewriteを使ってみた
## はじめに
個人開発で作成したコードに対して以下の作業をしてみます。
・CheckstyleでJavaのコーディング規約に準じていない部分を検出
・OpenRewriteで一部をリファクタリング
## 開発環境
– Linux(Kali 5.10.0)
– Gradle 7.2.0
– Java 16.0.1
## 導入
### Checkstyle
#### Gradleにプラグインとバージョン情報を追加
“`
plugins {
id ‘checkstyle’
}
checkstyle {
toolVersion = ‘10.3.2’
}
“`
#### checkstyle.xmlを追加
まず、checkstyle.xmlを配置する新しいディレクトリを作成します。
デフォルトの構成は以下のようになります。“`
(root)
└── config
└── checkstyle
└── checkstyle.xml
“`
checkstyle.xmlはcheckstyleの公式GitHubレポジトリからコ
Javaの学習 ~package~
未経験からのエンジニア転職を目指していたのですが、先日無事内定をいただきました!
転職先で使用する言語がJavaということで、アウトプット学習のため少しずつ投稿していきたいと思います。(Java Silverの学習も兼ねています!)### パッケージ(package)とは
Javaはオブジェクト指向の言語であるため、クラスをたくさん作成する可能性があります。
そのクラスを機能ごとに、分類するための仕組みがパッケージです。#### パッケージの目的
①名前空間(ネームスペース)を提供することで、名前の衝突を回避する
②アクセス制御機能を提供する
③クラスの分類を可能にする### パッケージの宣言方法
“`java
package practice;
//package + 好きなパッケージ名;
“`
また、パッケージは階層を作成できる為(ディレクトリのようなイメージ)、その場合は上の階層から「.」で繋げて記述します。
“`java
package practiceA.practiceB.practiceC;
“`
##### ちなみに…
・パッケージ宣言をしない場
Spring boot + Ajax 簡易掲示板作成 (投稿機能)
# 最初に
「非同期通信」(Ajax)というものに興味がありJavaのアプリケーションに組み込んで実装してみました。
検索しても丁度良い記事があまり見つからなかったので実装方法を記事にしようと思います。後々編集、削除、検索機能の記事も投稿出来たらと思います。
本記事の完成ページ
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2645309/6884ef8c-9f50-1458-fd34-b11e979eb226.png)<参考サイト>
[Spring Boot で Ajax を実装する単純なサンプル](https://qiita.com/t-yama-3/items/572fabc873b4b6a0fc7c)# 1. プロジェクト作成方法
本プロジェクトはEclipse上で下記の画像の環境で作成しました。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2645309/efedb511-d1
Ubuntu 22.04 で Java をインストール
Ubuntu において Java を使おうとするといろいろ選択肢がある。
一番安直にしようとするとどうしたらいいかな・・・
以前 Ubuntu20.04 で実験しましたが、同様に 22.04 で確認してみました。# 環境
– Ubuntu Linux 22.04
– openjdk-11 (デフォルト設定)# 何があるかな?
“`
$ apt-cache search openjdk | grep jre
“`
とすると、以下が得られた。“`
default-jre – 標準的な Java または Java 互換のランタイム
default-jre-headless – 標準的な Java または Java 互換のランタイム (ヘッドレス)
openjdk-11-jre – OpenJDK Java ランタイム – Hotspot JIT 版
openjdk-11-jre-headless – OpenJDK Java ランタイム – Hotspot JIT 版 (ヘッドレス)
openjdk-11-jre-zero – Alternative JVM for
docker上で動かしているjavaアプリが何か遅い気がするときに調べたことなど備忘録
docker上で動かしているjavaアプリが何か遅い気がするとき、以下のような事をすればOKと思っている
マシン負荷を調べる(df -h, disk i/o, memory)
> [マシン負荷を調べる(df -h, disk i/o, memory, CPU, SSD/HDDかどうか)](https://qiita.com/seigot/items/56a8807bc25023909061)
実行中のDocker Containerのメモリ使用量を docker stats コマンドを使って調べる
> https://docs.docker.com/engine/reference/commandline/stats/
javaアプリのヒープメモリが足りない場合は以下のように調べてみる
> [JVMのヒープメモリを確認する(jstat)](https://qiita.com/kaikusakari/items/9b7c3d1fb524eb6aa348)
> $ jps
> 1121 Jps
> 988 Bootstrap
> – 上のtomcat起動後、psコマンドでも
Javaでキーボードピアノを作る
# Javaでピアノを作りたい
* Swingでキーボードイベント処理
* Soundで音を作成を実現したい。
# 執筆時の最終的到達点
* キーボードを押すと、音を出すことができるようになった
* キーコード、周波数、音量等の指定が可能# 執筆時の未到達点
* わずかに低遅延の反応(現状、キーを押してからラグがあるように感じる、実際バッファサイズ分22.7msの遅延が発生する可能性がある。バッファサイズを減らすにはバッファの更新間隔を減らす必要がある。更新イベントはTimerで起こしてるが、15ms程度遅延が発生することがある。結果として、これ以上バッファサイズを減らすことはできない。キーボードイベントが発生した段階でバッファの内容をflushして、内容を書き換える手法を取ればキーボードイベントに対して遅れが発生しないはずなので、この手法は今後の目標とする。)
* 正弦波を出しているが、ノイズが乗っているのでフィルタが必要である(このノイズはKey.releaseイベントが起きた段階で音を0にしているためステップ上の波形が発生していることによると考えられる。)
* ロ