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

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

JavaでSlack botをリリースするまで その3

[前回](https://qiita.com/blue_islands/items/a920a35d6153817924dc)、アプリ申請まででしたのですが、要はリジェクトされて帰ってきたので、その要点と対応をまとめていきます。

返信された内容はこんな感じできていました。

> Hello ○○○○,
>
> Thanks for your patience during our review process! We’ve reviewed CotoGoto for Noby and have some notes on > the submission.
>
> You can jump straight to our notes here (https://api.slack.com/apps/xxxxxxxxxxx/app-submission).
>
> If you have questions about any of our feedback, just reply to this message and we’ll see it!
>
> The App Di

元記事を表示

Java Silver番外編(キャストのコンパイルエラーと実行時例外)

Java Silverを学習中、クラスのキャストについて学んだことがあったので復習も兼ねて投稿します。

# ■クラスのキャストによるエラー
クラスをキャストする際には、コンパイルエラーをする場合と実行時エラーとなる場合がある。

“`java
public class A {}

public class B extends A {}

public class C extends A {}

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

// 実行時エラーのパターン
A a1 = new A();
B b1 = (B)a1;

// コンパイルエラーのパターン
B b2 = new B();
C c = (C)b2;

}
}
“`
# ■解説
### 結論:可能性があるなら実行時エラー、全く関係ないならコンパイルエラー

#### AとBの関係
AとBの場合、両者にはスーパークラスとサブクラスという関係があるので、キャストが成功する可能性もある。
以下のような

元記事を表示

Java Silver番外編(Integerと==演算子)

Java Silverの学習中、Integerと==演算子の比較の関係で知ったことがあったので、復習も兼ねてまとめようと思いました。

## ■Integerの生成方法の違いによる==演算子の結果
“`java

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

Integer i1 = Integer.valueOf(127);
Integer i2 = Integer.valueOf(127);
System.out.println(i1 == i2); // true

Integer i3 = Integer.valueOf(128);
Integer i4 = Integer.valueOf(128);
System.out.println(i3 == i4); // false

Integer i5 = 127;
Integer i6 = 127;
System.out.println(i5 == i6); // true

元記事を表示

【初心者】ApacheSpark基礎編-共有変数

ApacheSpark基礎編-SparkSQLはこちらです。
https://qiita.com/SHA_AKA/items/b69fdd6a268d503682aa
今回は共有変数について、コードを書くと思います。

# 目次
1. 共有変数とは
1. アキュムレーター(accumulator)
1. ブロードキャスト変数(Broadcast)
1. その他

### 共有変数とは
通常、(map あるいは reduceのような)Spark操作に渡される関数は別々のエグゼキュータ(executor)上で実行され、関数の変数はドライバー(driver)各エグゼキュータにコピーされました。
各エグゼキュータ上の変数への更新はドライバーには反映されない。
ドライバープログラムにある変数を更新しても、各エグゼキュータ上の関数には影響がない。
この時は、Sparkから提供されている2種類の共有変数:Broadcastとaccumulator、を利用して、この制限を無視できます。
(下記の例を見たほうが理解しやすくなると思います。)

### アキュムレーター(accumulator)
・“追加

元記事を表示

[memo] null emptyの違いについて

[参考記事](https://wa3.i-3-i.info/diff290moji.html)

元記事を表示

Javaでブロック崩しゲームを作る

# ブロック崩し
最近、Javaを勉強しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/4f5a9081-7f23-8872-b3a7-8eddf866f2a4.png)

こんな感じのブロック崩しを作りました。
想像以上に難しかったです。
オブジェクト指向って修正がしやすく、わかりやすく書ける気がします。

## オブジェクト

1. ボール
1. 反射板(操作可能)
1. 障害物
1. 壁

このうち**ボール以外は線分の組み合わせ**だと考えられます。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/92c347e3-86d9-a3de-ca97-79649e5ba1ec.png)
障害物がこのように長方形の場合、4つの線分で障害物を構成できます。

そこで、**”線分クラス”** を作り、障害物や壁・反射板は **”線分インスタンス”の集まり**とし

元記事を表示

APIリリースの手順(2)

# Teratermを用いてプロジェクトのリリースを行う

## 1. Teratermのインストール

 ① zipファイルを[ダウンロード](https://ja.osdn.net/projects/ttssh2/releases/)し、解凍する。
 ② 「ttermpro」を開く。
 ③ 言語設定より始まり、Teraterm セットアップウィザード通りに手中を進めていく。

 インストール先はドライブなどに設定する。(今回はDドライブに設置。)

 「コンポ―ネメント」の」選択画面では、デフォルト値のまま「次へ」をクリックする。

【初心者】ApacheSpark基礎編-SparkSQL

入門編はこちらです。
https://qiita.com/SHA_AKA/items/455a3116b8e95a680753
今回はSparkSQLによって、色々なデータフォーマットを読み込み・書き出すを実行しようと思います。
SparkSQLとはSparkのAPIの一つという雑な理解をしています。
前回と同じ基礎知識が全くない、RDDとDataFrameとDataSetの違いなどは説明できないのでご了承ください。
または、今回はバッチ処理限り、ストリーミングが応用編までに。

# 目次
1. 前準備
1. pom.xmlの更新
1. 実行コード
1. JDBCによりDBとの連携
1. その他

### 前準備
実験データとしては、バンダイナムコさんの約一週間(7/19~7/22)の株価です。
フォーマットとしては、テキストファイル含め、json,csv,avro,parquet,hive-table
お先にcsvとjsonファイル両方用意しました。
CSVファイル
| share_code | datetime_JST | open | high | low | close | v

元記事を表示

MacでのJava環境構築方法[HomeBrew][VSCode]

### 概要
久々にJava環境構築したら意外とハマってしまったので記録です。

OS:Mac
言語:Java
エディタ:VSCode
ツール:homebrew

必要な手順は大きく5つです。
[1.Javaのインストール](#javaのインストール)
[2.VSCodeのインストール](#vscodeのインストール)
[3.VSCodeを日本語化](#vscodeを日本語化)
[4.VSCodeにJavaをインストール](#vscodeにjavaをインストール)
[5.動作確認](#動作確認)

***
### Javaのインストール
私はbomebrewで管理したかったので↓を参考にしました。
https://codeaid.jp/java-homebrew/

最初は他サイトを駆使してインストール作業していたのですが、いろいろエラーにぶち当たったので↓に別途まとめてます。
https://qiita.com/timustan/items/1ad987232c1a975b8801

***
### VSCodeのインストール
安心安全の公式サイトからインストールします。
http

元記事を表示

VSCodeでHello Worldする[Java][Mac]

### 概要
Mac OSにてVSCodeでHello Worldする方法です。
今回はJavaを使用してます。
環境構築手順は↓をご参照ください。
https://qiita.com/timustan/items/78e02d3c02fbf3cc60cf
***
### 実行ファイルを作成する
①左のエクスプローラーアイコンをクリック(`Comand + Shift + e`でも可)
②「フォルダーを開く」をクリック
![スクリーンショット 2022-07-25 2.27.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2745096/30c7c3cc-4b28-4b9a-38ba-7846061f071b.png)
③適当な開発用ディレクトリを作成、選択(私は今回`DEV`ディレクトリの中に`JavaTest`フォルダを作ってみました)
![スクリーンショット 2022-07-25 2.28.43.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

HomebrewでJavaをインストールする際に発生したエラーと解決策

HomebrewでJavaインストールしようとしたらいくつかエラーにぶち当たったのでメモ。

***
### 「Error: Unknown command: cask」

最初はこれ。
“`
$ brew cask install java
“`
を実行したら発生したエラー。
原因はcaskの利用方法が変更されたためでした。
Homebrew2.6まで`brew cask`としていたコマンドは、オプション`-–cask`で指定するように変更されていたようです。
てことで以下を実行。
“`
$ brew install java –-cask
“`
そして次のエラーにぶち当たる。

***
### 「Cask ‘java’ is unavailable: No Cask with this name exists.」
んん〜〜〜〜〜!
どうやらJDK のインストール方法が変わったようです。
変わらないためには変わり続けることが必要って誰かが言ってました。

***
### 解決策
結局以下のコマンドで最新版の`AdoptOp

元記事を表示

eclipse2022にjava EEがない

## eclipse2022にjava EEがない
### JavaEEとは
企業向けのWebアプリケーション開発ができる機能がセットになったプラットフォームのこと

調査してみると

https://mergedoc.osdn.jp/

eclipseのダウンロードサイトにこんな表記が
`・変更: Java EE パースペクティブ廃止 (サーバー・ビューは Java パースペクティブ初期表示、DTP 廃止のため)`
らしい,ぐぬぬぬぬ

### そもそもパースペクティブとは
eclipseの作業内容に応じて切り替わる画面レイアウトで、表示するビューやエディタ、メニューをコントロールする設定のこと

#### DTP廃止
`DTP`とはeclipse上からGUIでDB操作を行うためのプラグインだがこれが廃止されたとのことだ
ちなみにこれは`Eclipse IDE for Java EE Developers`に標準で入っていたらしく、その`DTP`が廃止されたこととサーバー・ランタイム環境の操作をする`サーバー・ビュー`がJavaパースペクティブで初期表示になったことにより、Java

元記事を表示

JavaのStreamAPIについて

## はじめに
StreamAPIの入門者向け記事です。
StreamAPIで使われるラムダ式については解説していません。([この記事](https://qiita.com/taumax/items/302b5025e30b7a74c8c6)を参考にしてください)

## StreamAPIとは
StreamAPIはJava SE8から追加されたコレクションの取り扱いをいい感じにできる機能です。
基本的には以下の流れで処理をします。
1. Streamを取得
1. 中間操作を実行してStreamの要素に対して操作を加える
1. 終端操作を実行して結果を取得

java.util.streamパッケージに関連するクラスがまとめられています。

## 使い方
### Streamの種類
主にStreamオブジェクトは以下のものがあります。
通常のStreamは参照型の値しか扱うことができないので、プリミティブ型を扱うStreamが別に用意されています。
| Stream | 扱う型 |
| ——- | ——- |
| Stream | 参照型 |
| IntStream

元記事を表示

Java SE11 Goldに合格した話

Java Goldを受験し、合格することができたので合格するまでの流れをまとめます。

## Java Goldとは

まずはじめに、Java GoldはOracleが提供するJavaの最難関資格とされているベンダー資格です。
正式にはOracle Certificated Java Programmer GOLD(OCJP GOLD)といいます。
前提としてJava Silverの資格取得が条件となっています。

## 試験概要
受験時間:180分
設問数 :80問
合格ライン:63%(51問)

設問は一問一答形式なので180分丸々使うようなことはあまりないと思います。
合格ラインもそこまで高くないのでしっかりと勉強をしていれば問題なく受かれるはずです。

## 試験範囲

試験の範囲は以下の内容です。
Java Silverに比べて取り扱う内容の難易度が上がっています。

* クラス
* 関数型インタフェースとラムダ式
* 並列処理
* Stream API
* 標準入出力
* JDBC
* 汎用とコレクション
* 例外処理とアサーション
* モジュールシステム
* ローカライズ

元記事を表示

JUnit 環境の準備

# はじめに
JUnit その2です。今回はJUnitを使うための環境準備をしていきます。
不備等あるかもしれませんがご了承ください。

# JUnitシリーズ 項目表
| NO     | タイトル |
| —- | ——————- |
| その1 | [JUnit 単体テストの概要](https://qiita.com/ryo0527/items/70550e0a556975a593f5) |
| その2 | [JUnit 環境の準備](https://qiita.com/ryo0527/items/135c2104a9af0eb795e9) |

単体テストの概要について、その1に記載しております。
気になる方は、是非ご覧ください。

※ 新しい記事が作成できましたら、表は更新します。

# 環境の準備
JUnitを使うための環境を準備していきます。

### 前提条件
– Java実行環境が用意されていること
– VSCodeがインストールされていること

### Javaプロジェクトの作成
今回は、Mavenでの実装と

元記事を表示

ビルドに使用するJavaバージョンを切り替える方法

# はじめに
gradleファイルに定義しているJavaのバージョンを切り替えた後、AndroidStudio側の設定を変えずにビルドすると、ビルドエラーになります。
上記エラーになった場合の対応として、設定の切り替え方を残しておこうと思います。

# 設定の切り替え方
①Android StudioのPreferesceから設定を開きます。
②以下スクショに沿って、Build,Execution,Deployment→Build Tools→Gradleと開いていきます。
![スクリーンショット 2022-07-23 20.13.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/7e0ca5ec-01f3-dbc6-f7f8-f8282934a9f3.png)
③上記開いていった先のGradle画面にて、Gradle JDK項目欄のJavaバージョンを任意のものに切り替えます。
![スクリーンショット 2022-07-23 20.15.32.png](https://qiita-ima

元記事を表示

【初心者向け】なぜBeanなのかについて考えてみた

# 最初に
この記事は初心者がJavaBeansの理解を深めるために書くものです
よくBeanとは倉庫であると言った説明があるのですが、個人的には豆だと思い記述します。
具体的な書き方は書かない、具体的にどう書くかは諸先輩方のほうがよっぽど良い記事があるのでそちらにおまかせします。

## なぜBeanなのか?
役割としてはデータをメモリで保管しておくのが目的のクラスです。
よく倉庫みたいなものと言われてます。
しかし本当に倉庫ならRepositoryとかWarehouseとかStockroomとかの名前のほうが良さそうです。
しかし現実としてはBean(豆)です。
名前は読み手に誤解を与えず正確な名前であるべきです。
なぜRepositoryでは無くBeanなのでしょうか?Repositoryのほうがわかりやすそうです。
そこでBeanになる要件に着目します。

## Beanの要件とは

  1. privete修飾子をインスタンス変数につける
  2. getter setterがある
  3. コンストラクタはPublicを付与する。
  4. 引数無しのコンストラクタにして
元記事を表示

【初心者】ApacheSpark入門編

# 背景
初心者としてのSpark入門です。
入門編→基本編→応用編という順番でいきたいと思います。
分散処理の基礎知識色々が必要ですが、それを説明するのは苦手なので、下記の資料ご確認いただければ幸いです。
(RDDって何で上手く説明できない。。。)
・初めてのSpark
・Sparkによる実践データ解析 ―大規模データのための機械学習事例集
・入門 PySpark ―PythonとJupyterで活用するSpark 2エコシステム

# 目次
0. 事前準備
1. Sparkのインストール
2. 最初のshell実行
3. IDEA・Maven配置
4. wordcountの実現
5. Spark API
6. RDD[T]のFunctions
7. RDD[(K, V)]のPairRDDFunctions
8. その他

### 事前準備
環境:
Windows+VMware+OS:Ubuntu22.04
Java -version
“`
openjdk version “1.8.0_312”
“`

### Sparkのインストール
インストール前に先ずはSpark用のユー

元記事を表示

サーブレットの内容を変更したのに、ブラウザに反映されない

サーバーの再起動

元記事を表示

初心者がリファクタリングに挑戦してみる#1-2

# はじめに
今回変更した部分としては、力技で書いていたものをクラス化、メソッド化してすっきりさせる、というものです。
[#1-1](https://qiita.com/snow_saboten/items/c43865d57ec63635ab1d)では、全てをtestクラスで記述していましたが、今回Storyクラスを作成しました。
また、ファイルの内容を格納するのに、普通の配列を使っていたところを、ArrayListというものを使うようにしました。これは、配列宣言時に要素数を指定せずに使えて、中身を入れるたびに自動で要素数を増やしてくれる優れもののようです。
使い方は[こちらのサイト](https://www.javadrive.jp/start/collection/index1.html)を参考にさせていただきました。

## 改良コード
“`java:test.java
import java.io.*;
import java.util.ArrayList;

class Story
{
String fileName;
ArrayList sto

元記事を表示

OTHERカテゴリの最新記事