JAVA関連のことを調べてみた2022年09月06日

JAVA関連のことを調べてみた2022年09月06日

めちゃくちゃ簡易のビンゴゲームを作る #2

# 初めに
まず前回やったことの確認。
+ ランダムな数字を並べてビンゴカードを作る機能を作成。
+ 「ゲーム開始」ボタンでゲーム画面に移動するようにした。

の2つ。
前回の記事のコメントでビンゴカードはただランダムな数字を並べているのではなく、列ごとに並ぶ数字の範囲が決まっている、ということを教えていただいたので、この機能を追加する。
よって、今回作った機能は以下の2つ。
+ ビンゴカード作成機能の改良版(列ごとに範囲限定)
+ 抽選ボタンで出た数字がカード上にあれば、そのマスの背景色を変える。

ひとつずつ紹介する。
# ビンゴカード作成機能改良版
## コード(レイアウト)
“`Java
JPanel BingoCardPanel;
JPanel p1;
JPanel p2;
JPanel p3;
JPanel p4;
JPanel p5;
JLabel bingoNumLabel1[] = new JLabel[5];
JLabel bingoNumLabel2[] = new JLabel[5];
JLabel bingoNumLabel3[] =

元記事を表示

【Java基礎】変数&演算

# はじめに
最近Java基礎の研修を受けました。学生時代にJavaを授業で習って基礎は身につけていたのですが、忘れていた内容もあったので備忘録として書き残してみます。

この記事では、**Javaの基礎的な内容に関してまとめていきます**。
今回は**変数**と**演算**です。

# 変数
変数とは、**データを入れる箱**のようなものです。

## 変数の宣言と代入
`int point;`のように`型名 変数名`と宣言します。
代入するには、`point = 1;`のように`変数名 = 代入する値;`と記述します。
宣言時に`int point = 1;`というように値を代入して宣言することも可能です。

また、型名の前に`final`と付けると定数になります。
“`java:定数の例
int point = 1;
final int finalPoint = 1; // 定数に初期値を与える

point = 10; // 正しく代入できる。
finalPoint = 10; // 定数に値を代入しようとしているため、コンパイルエラー
“`

## 変数の型
Java

元記事を表示

未経験エンジニアの就職活動①

本日面接を受けました。

職業訓練でJavaを学んだ事をアピールしたが基礎的な知識を答えられなかった。

ポートフォリオがあった方がいいと分かっていても何を作ればいいか分からず未だに疲れていない。

対策が未だに分からないが無能未経験エンジニアとして就活を頑張ります。

受けた会社→9社
面接まで行った会社→2社

落ちた会社→9社

元記事を表示

Spring Boot + RemoteContainer

## はじめに

こんにちは、まだしばらくは新人エンジニアだと思っている者です。
java触ってみたいなぁと思ったので(javaの資格が欲しくてw)ついでにフレームワークもやろう!
くらいのノリでとりあえず環境構築していきます。Spring Frameworkよりはシンプルと見たのでそれを信じております。
勉強するならフレームワーク触る前にやった方がいいやろ!というご意見は確実にあるかと思いますが(僕はそう思った。。)フレームワークいじる方が楽しそうなので流されてきました。

## containerで構築

javaコンテナの作成をこちらの記事を参考に進めてみる。
[Docker × Spring Boot環境構築](https://qiita.com/A-Kira/items/beaf79a0d39d9839e61e)

上記の記事に沿って進めるとGradleのビルドが上手く行きませんでした。

“`
# javaコンテナにインスペクション
$ docker-compose exec java bash

# gradleビルド
$ sh gradlew build
xargs

元記事を表示

Utilにシンプルな名前をつけると発見があると思った話

日時書式の変換にSimpleDateFormatをnewするのはもうやめよう・・・
parseするたびにtry~chatchは面倒だし。
DRYの観点から、いままで以上に、積極的に、Utilsクラスを作る。

「SimpleDateFormat」・・・抽象化すれば「DateFormat」。
ならば、シンプルに、「DateFormatUtils」とするべきだろう。

早速、空のクラスを作成する。
テストファースト。
具体的な実装は後回し。まずは、呼出し側から実装。

するとどうだろう。コードアシストで、既存のクラスがヒットするではないか。

「org.apache.commons.lang3.time.DateFormatUtils」

ちょっと中を覗いてみる。

・・・まさにやろうとしていたことが実装済みではないか。
しかも、構想の何千倍も気が利いた配慮が実装済み。

そんなわけで、オレオレDateFormatUtilsを実装することは中断し、

「org.apache.commons.lang3.time.DateFormatUtils」

を使うことになりました。

費用対効果

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの演算子の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの演算子の比較

# Python

https://qiita.com/G-Rape/items/cd3f2f284ba990164564

# Ruby

https://www.tohoho-web.com/ruby/operators.html

# PHP

https://qiita.com/mzmz__02/items/8bfbcf2cd48d9e9f2806

# Java

https://qiita.com/suema0331/items/7045e3ce3e2f5faa9acf

# JavaScript

https://qiita.com/uhyo/items/cc92a553059274d85403

# Perl

https://perlzemi.com/blog/20161005147566.h

元記事を表示

AtCoder ABC267 C問題 詳解

# AtCoder ABC267 C問題 詳解
ABC267 C問題の公式解説が物足りなかったため、備忘録の意味も込めて詳解を投稿します。

### 問題
> “`math
> 長さNの整数列A=(A_{1},A_{2},…,A_{N})が与えられます。\\
> 長さMのAの連続部分列B=(B_{1},B_{2},…,B_{M})に対する、
> \sum_{i=1}^{M}i×B_{i}
> の最大値を求めてください。
> “`
すなわち、
“`math
f(x)=1×A_{x}+2×A_{x+1}+\dots+M×A_{x+M-1}, (1\leq x\leq N-M+1)\\
“`
の最大値を求める問題です。

### 詳解
##### 総当たりの場合
まず、総当たりを考えます。
$f(1)$から$f(N-M+1)$を全て計算した後、最大値を求めればよいです。
このとき、$f(x)$を求めるのに$M(\leq N)$回加算を行い、その操作を$(N-M+1)$回行うので計算量は

“`math
O(M)×O(N-M+1)\leq O(N)×O(N-M+1) = O(

元記事を表示

【Java】アノテーション

# 学習したアノテーション

### コントローラークラスで使うアノテーション

#### `@controller`
そのクラスがコントローラーであることをSpringに伝えるためのアノテーションです。

#### `@Responsebody`
ブラウザからのリクエストに対して、直接HTMLを返す(戻り値がそのまま返る)際に利用するアノテーションです。

#### `@GetMapping`
`@Mapping`は、ブラウザで入力されたURLと、実行されるメソッドを紐づけるためのアノテーションです。
GETリクエストを処理します。

#### `@PostMapping`
POSTリクエストを処理します。

#### `@ModelAttribute`
任意のデータをModel型のオブジェクト内に格納することができます。

#### `@PathVariable`
URLに含まれるパラメータを受け取るためのアノテーションです。

### リポジトリクラス・データアクセスクラスに使うアノテーション

#### `@Data`
対象クラスにgetter/setterでアクセスすることを

元記事を表示

要素数が異なる2次元配列の取り出し方(備忘録)

# 要素数が異なる2次元配列の取り出し方

“`java
public static void main(String[] args) {
// 配列用意
int[][] array = new int[][] { { 1, 2 }, { 2, 3, 4 } };

// 2次元配列の要素数
System.out.println(“2次元配列の要素数: ” + array.length);
// 2次元配列の[0]に入っている配列の要素数
System.out.println(“2次元配列の[0]に入っている配列の要素数: ” + array[0].length);
// 2次元配列の[1]に入っている配列の要素数
System.out.println(“22次元配列の[1]に入っている配列の要素数: ” + array[1].length);

// 配列の中身全てのとり出す
for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { Syst

元記事を表示

ABC267A~Dの解答[Java]

## はじめに
今回も4完できたのでDまで書こうと思います。

では見ていきましょう。

## A – Saturday
問題文は[こちら](https://atcoder.jp/contests/abc267/tasks/abc267_a)

if~elseで実装しました。
“`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{

//Sの受け取り
String S = System.in.next();

//全部書く(根性)
if(S.equals(“Monday”)){
System.out.println(5);
}else if(S.equals(“Tuesday”)){
System.out.println(4);
}else if(S.equals(“Wednesd

元記事を表示

JavaFX周りの備忘録

## 本記事の前提事項
※記事を書いている人は過激派です。

どっか行けヽ( ・∀・)ノ┌┛Σ (Eclipse)

三(メモ帳) ლ(^o^ლ)おいで
三(コマンドプロンプト) ლ(^o^ლ)おいで

## 前段
JavaFXと言えば、JavaでGUIアプリケーションを作るときに使われる便利なフレームワークだ。
AWT、Swingといった旧来のフレームワークよりも簡潔に、そして表現力を豊かにしたフレームワークだ。

基本的には`javafx.application.Application`クラスを継承したクラスを定義し、GUIをFXMLで定義し、`Controller`クラスを定義してイベントハンドラを割り当てたりする。

Java8の頃にはJDKにも組み込まれ、作ったjavaファイルをコンパイル→jarファイルに変換すれば、`java -jar App.jar`だとかで走らせることができた。

### そんなJavaFX君に悲劇が…
2018年頃だっただろうか、Java8からJava11への変更に伴い、JDKから追い出されてしまったのだ。
まるで幼児がニンジンやピーマンを皿の脇に追

元記事を表示

めちゃくちゃ簡易のビンゴゲームを作る #1

# はじめに
こんにちは。前回の記事の最後でGridLayoutを使ってビンゴを作ろうと思い立ったので挑戦。

イメージは、
+ 「ビンゴカード作成」ボタンでランダムな数字を5×5並べたカードを作る。数字が被らないようにする処理が難しそう…
+ 「ゲーム開始」ボタンで、ゲーム画面に移行
+ 「抽選」ボタンでランダムな数字がでて、カードのその数字があれば背景色を変えるとかそんなことをする。こっちも同じ数字は出ないようにしたいかも。
+ (もしできそうだったら)リーチやビンゴ時に文字が表示されるようにする

こんな感じかな。ビンゴゲームと言いつつも、複数人でできる仕様じゃなくて、ただむなしく一人でやるもの笑

# だいたいの見た目
画面サイズは適当。
“`Java
public class BingoGame extends JFrame implements ActionListener{

JButton mkCardBtn;
JPanel BingoCardPanel;
JLabel bingoNumLabel[] = new JLabel[25];
Container

元記事を表示

ジェネリクスのメモ

## ``について

`List list = new ArraryList<>~`などたまに見かける型、。
**ジェネリクスのワイルドカード**としての役割?があるみたい

本来の意味としては、「万能の力を持つカード」「他のカードの代用として使用できるカード」みたいな意味がある。
IT分野では、検索機能などで役立つ(部分的な検索など)

### メリットとデメリット

ジェネリクスでこのワイルドカードを使えば、**データ型を後で宣言できる。**

使用するデータ型に**幅**が生まれる!!

しかし、**newが使用できない**という点において注意が必要。
型の設定が曖昧であるため、生成ができない(詳しくは、コンパイルする時に、型パラメータが消える)

### 他の使い方
また、``で**上限**を設けることも可能。

## まとめ

今回は、ジェネリクスのワイルドカードについて、少し勉強した。

まだ、ジェネリクスのワイルドカードについて、しっかりと知れたわけではないため、より理解を深めていきたいと思う。

元記事を表示

整数型に ‘c’ が代入できるそれぞれの事情

# これは何?

https://qiita.com/Cowsisland/items/71248bdd081089b7ba09

という記事で

“`c:c
int a;
a = ‘c’;
“`

が問題なく動いている話や [素晴らしいコメント](https://qiita.com/Cowsisland/items/71248bdd081089b7ba09#comment-732ca0b2d7c2a7be908d) があって面白かったので、記事にしてみた。

# それぞれの事情

## C言語

C 言語の場合、そもそも `’c’` の型が `int` である。
なので

“`c:c
int a;
a = ‘c’;
“`

は、わりと面白くない。

Twitter 方面で、 `’c’` の型が `int` であることに疑問を抱いている方が散見されるので追記。

なぜそうなっているのかは知らないんだけど、C 言語では古来よりシングルクオートで囲まれたリテラルは `int` 型になっている。規格書にもそう書いてある。

古い C でも

“`c:c
printf( “sizeo

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの正規表現の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの正規表現の比較

# Python

https://qiita.com/FukuharaYohei/items/459f27f0d7bbba551af7

# Ruby

https://qiita.com/shizuma/items/4279104026964f1efca6

# PHP

https://qiita.com/miriwo/items/da463cfcae441400381a

# Java

https://qiita.com/suema0331/items/5dde9f91671100a83905

# JavaScript

https://qiita.com/iLLviA/items/b6bf680cd2408edd050f

# Perl

https://perlzemi.com/blog/2

元記事を表示

ECS上のTomcatアクセスログをCloudWatch Logsに出力する

# はじめに

ECS上で動作するコンテナについては標準出力にログが流れるよう設定する必要がありますが、Tomcatアクセスログはデフォルトで標準出力には流れません。
本記事ではTomcatのアクセスログを標準出力とし、CloudWatch Logsに出力する方法を紹介します。

## 環境
– Java11
– tomcat9.0

## 実施内容

方法としては非常にシンプルです。
– アクセスログを日付毎に出力するのではなく、固定ファイル名とする
– 固定ファイルと標準出力のシンボリックリンクを作成する

## server.xmlの用意

server.xmlのAccessLogValveを以下のような設定にする事で、アクセスログを固定ファイル名「access_log.txt」に出力するよう設定します。

“`server.xml
WindowsでJavaをインストールせずに使って、SikuliXを持ち運び可能にする

+ RPAを導入したいけど、お金はない。
+ SikuliX使いたいけど、Javaをインストールしたくない。

そんな人向けの情報です。

—-
## 手順

以下、Oracle OpenJDK を例にします。
1. [jdk.java.net](https://jdk.java.net/) から、Java8 以上で64bit版のWindows用buildをダウンロードします。
ex) [openjdk-20-ea+13_windows-x64_bin.zip](https://jdk.java.net/20/)
1. ダウンロードしたファイルを解凍して、`jdk-xx` フォルダを取り出します。
また、`jdk-xx` フォルダと同じ場所に `sikulixide-2.0.5.jar` を配備します。
1. 環境変数`PATH`に`java.exe` を追加するバッチファイルを作成し、バッチファイルから SikuliX を起動します。
**例)JDK-20 の場合**
“`cmd: sikulix_start.bat
@echo off
pushd %~dp0

元記事を表示

Java:PDFファイルの結合方法

内容がより密接に関連しているが、PDF文書の複数のファイルに分割されている場合、我々は、コンテンツの我々の読み取りや文書の処理を容易にするために、PDF文書にマージすることができます。 この記事では、Javaプログラミングを使用して**PDFファイルを結合する方法**を紹介します。

## 【依存関係の追加】
この方法は、無償のFree Spire.Doc for Javaが必要ですので、先にjarファイルをインポートしてください。
### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。
“`XML


com.e-iceblue
e-iceblue
https://repo.e-iceblue.com/nexus/content/groups/public/

元記事を表示

ABC043の解答[Java]

## はじめに
A~Cは自力AC、Dは解説ACしたものとなります。
昔のコードなので、そのままのも載せますが書き直した方が良さそうな時は書き換えた物も載せます。

では、見ていきましょう。

## A – キャンディーとN人の子供イージー
問題文は[こちら](https://atcoder.jp/contests/abc043/tasks/abc043_a)

単純にfor文でシミュレーションしました。
“`A.java
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);

//値の受け取り
int N = sc.nextInt();

//答え用変数
int ans = 0;

//順に足していく
for(int i=1;i<=N;i++){ ans += i; } //答えの出力 System.out.println(ans); } } ``` 公式$\frac{

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのファイル入出力の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのファイル入出力の比較

# Python

https://qiita.com/onishi_820/items/f3068d5533a1f4f5ae39

# Ruby

https://qiita.com/Morio/items/8f0dc0801cfcb98d8269

# PHP

https://qiita.com/Morio/items/1deca77b370851ed914f

# Java

https://qiita.com/DeraTosev/items/77cd689da4426b892793

# JavaScript

https://qiita.com/shirokuman/items/509b159bf4b8dd1c41ef

# Perl

https://perlzemi.com/blog/20

元記事を表示

OTHERカテゴリの最新記事