JAVA関連のことを調べてみた2021年10月20日

JAVA関連のことを調べてみた2021年10月20日
目次

【Java】二次元配列でドット絵を作ってみた

##作ろうと思ったきっかけ

→for文の演習問題中
→以下を実行せよ
▼▲▼
▼▲

→これ応用したらドット絵作れるんじゃね?

##ドット絵を作ってみました

![kkk02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2064393/1535c15e-c10b-f035-a3ac-605525782349.png)
[星のカービィ](https://www.kirby.jp/)© Nintendo / HAL Laboratory, Inc.

![inu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2064393/7c62becd-0008-41b8-5dfd-9635dd8432c3.png)
[UNDERTALE](https://undertale.com/)©Toby Fox 2015-2021.

##開発環境
Windows10(32bit)
eclipse(4.9.0)
コマンドプロンプトで

元記事を表示

【Java】Byte配列を無限に連結したい

# やりたいこと
JavaでByte配列を扱う中で配列を連結させたい場面がありました。
しかも、ときには2つ、ときには3つ、、というように。

# 結果
Byte配列はByteBufferで扱い、引数は可変長引数で受け取ることで対応しています。

“`Java
class ConcatArrayTest
{
private static byte[] concatByteArrays(byte[]… arrays) {
if (arrays.length <= 1) { return arrays[0]; } int length = 0; for (byte[] array : arrays) { length += array.length; } ByteBuffer buffer = ByteBuffer.allocate(length); for (byte[] array : arrays) {

元記事を表示

コンパイルしたJavaのバージョンとデプロイするJavaのバージョンがズレているとエラーになる話

テスト済みのWARファイルをDockerで動かそうとしたら以下のエラーになってしまった…ということがあったので、原因と解決方法をメモ
java.lang.UnsupportedClassVersionError: ukaf/simple2/WelcomeResource has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0 (クラス[ukaf.simple2.WelcomeResource]をロードできません)
※ビルド~デプロイまでは正常に終わったのですが、以下のリクエストでAPIアクセスしたときにエラーになりました
http://localhost:8080/simple2/webapi/welcome?name=YOURNAME
##原因
タイトルにほぼ答えを書いてしまったのですが、ビルドしたときの

元記事を表示

インスタンスメソッド、クラスメソッドの違いについて

## はじめに

以前書いた「[インスタンス変数、クラス変数の違い](https://qiita.com/tta0206/items/74059f904fd967526d9b)」が反響がありましたので、
(読んでくださった皆さん、本当にありがとうございます?)、
そちらの続編としてメソッドについて説明していきたいと思います。

## インスタンスメソッド

インスタンス変数もしくはインスタンスメソッドを利用する場合に使われるメソッドです。
インスタンスという名前がついている通り、インスタンスに依存する処理を行うので、
メソッドを呼び出す前にインスタンスを作成する必要があります。

## クラスメソッド

インスタンスの中身に関係なく、共通の処理を行うときに利用されるメソッドです。
インスタンスに依存せず、処理内容が不変なことから英語で「静的」という意味の`static`をメソッドにつけます。
そのため、クラスメソッドの中ではそのクラスのインスタンス変数 or インスタンスメソッドは利用できません。(=thisを利用することはできない。)
その代わり、インスタンスに依存してないので、イン

元記事を表示

バージョン管理の各方法の特徴と違いに関する備忘録(初心者の所感)

※2021年10月19日時点での最新バージョンを使用した際の体感です。
 主な使用言語がJavaなので、開発環境はそれに寄ったものになってます。
 OS:Windows10

はじめに

 プロジェクトでバージョン管理を行おうと思った際にどれがどのようなサービスを提供しているのか、がわかりにくかったため、備忘録的に記しておこうと思いました。まだまだ初心者のため、足りない部分はあると思いますがご了承ください。
 また、本投稿はバージョン管理の使い方や環境設定の解説ではないため、省かせていただきます。

・Git

 コマンドラインを利用したバージョン管理機能。主にローカルリポジトリでの管理を行う。
 グループでのバージョン管理も可能だがオンラインで共同編集するための機能はない(はず)。

・GitHub

 Gitを用いてオンライン上にリモートリポジトリを作成し、共同編集を可能にしたもの。
 とあるサイトには、GitとGitHubの違いに関して、メールとGmailのような違いとあったが、個人的にはメールサーバとGmailの違いという印象を受けた。要するに、Gitを元にしたサービスがGit

元記事を表示

ターゲット・ランタイム Apache Tomcat v8.0 が定義されていません。が出た時の対処法。

たまにeclipseでJUnitテストをやろうとすると、以下のエラーがでるときがある。

ターゲット・ランタイム Apache Tomcat v8.0 が定義されていません。 「プロジェクト名」 不明 ファセット・プロジェクトの問題
#解決法
Eclipseでプロジェクトエクスプローラーの中の、対象プロジェクトを右クリック。
プロパティ>ターゲットランタイム>Tomcat8(Java8)を選択。

元記事を表示

Couchbase Lite機能解説:ドキュメントデータモデル

### 概要
Couchbase Liteは、組込・モバイルNoSQLドキュメント指向データベースです。Couchbase Lieteデータベースに格納されるドキュメントはJSONオブジェクトの形式を取ります。これは、キーと値のペアのコレクションであり、値は、数値、文字列、配列、さらにはネストされたオブジェクトなど、さまざまなタイプのデータになります。

ドキュメントは、ドキュメントIDによって識別されます。ドキュメントIDは、プログラムで指定するか、あるいは(UUIDとして)自動的に生成することができます。

ドキュメントIDは、データベース内で一意である必要があり、変更することができません。

### ドキュメントの作成・取得

新たにドキュメントを作成する際に、次のメソッド/イニシャライザーを使用できます。

– `MutableDocument(String id)`イニシャライザーは、特定のIDを使用して新しいドキュメントを作成するために使用することができます。
– 引数を取らない、`MutableDocument()`イニシャライザーは、データベースによって文書IDをランダ

元記事を表示

Spring Framework 学習資料

以前、私がSpring Frameworkに関して学んでいた頃に、環境構築方法までを含めた学習資料を作成したことがあります。

資料はPDF化されていて、サンプルコードもセットになっています。

Springの基本である、DI(Dependency Injection)やAOP(Aspect Oriented Programming)はもちろん、他に押さえておくべき基本的なポイントは網羅されています。

これからSpringを学びたい方にとっては、ぴったりな教材だと思われるため、このブログにてご紹介致します。

https://github.com/GL-Kageyama/Spring_Boot_Learning_Collection

![0_Q8ax33ctjsEfRRlg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2173896/73e5e745-2f95-03df-dd45-44b6b81249d1.png)

元記事を表示

簡単なJSPとJavaのセットを作ってDockerで動かす

[前回](https://qiita.com/mm0kan/items/3b513d218ce20de05e1f)はTomcatのDockerイメージ(公式)にHTMLだけ追加してオリジナルのDockerイメージを作る…というのをやったので、今回はJavaも追加して動的アプリケーションを作っちゃおう~と思いました。前回作ったDockerイメージにJavaクラスを追加してindex.htmlをちょっと修正したらいけるだろう…と思っていたのですが、なんだか無理そうなのでEclipse先生とかjersey(JavaでREST APIを作るためのフレームワーク)様の力を借りたいと思います。
##ざっくり手順
1)事前準備(各種ツールのダウンロード)
2)とりあえずEclipseで動くプロジェクトを作る
3)プロジェクトをWARでエクスポートしてDockerで動かす
##使ったもの
Docker Desktop for Windows
Windows PowerShell
Eclipse
###1)事前準備
それぞれ以下の公式サイトからダウンロード
[Docker Desktop for Win

元記事を表示

VSCodeで”パッケージがマッチしない”エラー

VSCodeでJavaを使っていたら、パッケージがマッチしないエラーが発生したので備忘
#やりたいこと
パッケージ名がマッチせずにエラーが発生
設定したフォルダをソースパスに設定する

“`
package a.b.c.interfaces.Sample;

public class SampleController {

}
“`

#エラー内容
java(536871240)

#調査
java(536871240)でググる

#原因
想定していたディレクトリ以外でソースパスに設定されている

#解決策
VSCodeのエクスプローラーで該当ディレクトリの親ディレクトを右クリックで

– Remove Folder to Java Source Path

を選択し、該当ディレクトリを右クリックして

– Add Folder to Java Source Path

を選択することで、ソースパスとして設定されエラーが無くなる。

#参考

https://teratail.com/questions/287130

元記事を表示

@IntDefについて

## 経緯
私はEnumクラスが大好きなのですが、この前初めてIntDefを触りました。
独自アノテーションに対して付与する・・・?
便利そうなので調べてみました。

## IntDef(StringDef)とは
端的に言うと、Androidにおいて**Enumより軽く、型安全に定数を使用できるようになるアノテーション**のことです。

Enumを使用した場合、1つのEunmにつき1.0~1.4 KB ほど増えることがあるそうです。
サイズの増加は可能な限り避けたいので、かなり有用な方法に思えます。([参考](https://developer.android.com/topic/performance/reduce-apk-size#remove-enums))

## 使ってみる
とりあえずEnumのサンプルを。細かい部分は目を瞑ってください。

“` Sample.java
public enum DayOfTheWeek {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESD

元記事を表示

[100%] FibFrog (codility Lesson 13)

_Lesson13_
## [Fibonacci numbers](https://app.codility.com/programmers/lessons/13-fibonacci_numbers/)

***
[Open reading material (PDF)](https://codility.com/media/train/11-Fibonacci.pdf)

> _Medium_
> ### [FibFrog](https://app.codility.com/programmers/lessons/13-fibonacci_numbers/fib_frog/)
> Count the minimum number of jumps required for a frog to get to the other side of a river.

#### Task description
***
The Fibonacci sequence is defined using the following recursive formula:

F(0) = 0

元記事を表示

条件分岐で学んだこと10/18

“`js
public class Main {
public static void main(String[] args) {
int isHungry = 1;
String food = “魚”;
System.out.println(“こんにちは”);
if (isHungry== 0) {
System.out.println(“お腹がいっぱいです”);
} else {
System.out.println(“はらぺこです”);
}
if (isHungry == 1) {
System.out.println(food + “をいただきます”);
}
System.out.println(“ごちそうさまでした”);
}
}
“`

三項演算子でシンプルに描く

“`js
int isHungry = 1;
String food = “魚”;
System.out.println(“こんにちは

元記事を表示

【Java】PaizaのJava入門編(6)まで終えて重要だと感じた内容まとめ。

##乱数の生成 Math.random();
“`java
public class Lesson036{
public static void main(String args[]){
//randomメソッドは実数を生成するのでdouble型の変数を宣言
double d;
//randomメソッドで生成した実数を変数dに代入
d = Math.random();
//出力
System.out.println(d);
}
}
“`
##整数を生成する場合 (int)(Math.random()*10)
“`java
public class Lesson037{
public static void main(String args[]){
//int型変数iを宣言
int i;
//randomメソッドで0以上10未満の整数を生成
i = (int)(Math.random()*10);

元記事を表示

アルゴリズム:Java 三角形が作れるかどうかの判定。

## 参考文献
参考: [プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~](https://www.amazon.co.jp/dp/B00CY9256C/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)

#三角形が作れるかどうかの判定。
n本の辺をがある。そこから3本選んで最も周の長さが長い三角形の時のその長さを求める。
なお、三角形が作れないときは0を出力。
例 入力 n=5; a=[2,3,4,5,10];  出力 12

“`java:triangle.java
import java.util.*;
public class Triangle{

static void triangle() {
Scanner std = new Scanner(System.in);
int n =

元記事を表示

TDDで電卓を作ってみた

# はじめに

[前回](https://qiita.com/mickie895/items/f5079f7b6683e71a8381)、Javaの勉強会の資料を作った話をした。
そこで出した、一昔前にはGUIアプリケーションのサンプルの定番だった「電卓」、それをできるだけ丁寧に実装できないか試してみた。

# 結果

せっかくTDDで少しづつ実装するのだから、実装していった過程を日記形式にしてみました。

https://note.com/mickie895/m/m0671be86f61a

そして実際にコーディングした結果がこちら。

https://github.com/mickie895/swing_calc_for_education

# 工夫した部分

* 前回から準備していた、GUI部分と計算部分の処理の分離。
* GUIはGUIの実装と、計算機能にテキストを送り、結果を受け取っているだけのクラスにした。
* switch文を極力減らす。よくあるサンプルではswitch文にする計算処理はHashMapとクラス化によって振る舞いを分離。
* クリア周りが実

元記事を表示

AWS LambdaにJava11のプログラムをデプロイし、パラメータストアから値を取得するメモ

### パラメータストアに適当なキーを保存
– キー名:testkey
– 値:test-value

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530708/eaad3e6f-0cfe-83bd-d7f5-66f767ed4d28.png)

### ラムダ上に関数をデプロイして実行
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530708/0af6dfb2-917e-5c14-836c-92e720fb198a.png)

### 実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530708/e6835c85-5c1d-bc31-fc9e-e05e8a704040.png)

### ソース作成からデプロイまで
– sam initでテンプレートを作成(AWS Quick Start

元記事を表示

Apache Beamで実装したストリーム処理でDoFnからデータストア参照してエンリッチする

## はじめに

現状ではFlinkのDataStreamAPIを使用して実装しているストリーム処理について、Apache Beamを使用する場合はどのように実装すればよいのかを調べています。その中で、ストリーム処理中でデータストアからデータを取得し、ストリームイベントのエンリッチメントを行う方法を試しています。
前提として、データストアにはアプリケーションのメモリ内では保持しきれないレベルの大量データが保存されており、ストリームイベント内の項目をキーとしてデータストアからキーに紐づくデータのみを取得する必要があるケースを想定しています。

FlinkのDataStreamAPIの場合は[Async I/O](https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/dev/datastream/operators/asyncio/)を使用していましたが、Beamのドキュメント内ではFlinkのAsync I/O相当の機能の記載が見つけられませんでした。
ググって見つけた以下の記事では、エンリッチメント方法として3つ

元記事を表示

AndroidStudioで簡易的なじゃんけんアプリを作ってみた。

どうも、Pythonを主軸に開発を行っている学生エンジニアのirohasです。
今回はAndroidstudioで簡易的なじゃんけんアプリを作成してみたので共有しようと思います。

~使用物~
・AndroidStudio
・Java
・デバイス(AndroidStudio内のエミュレーターでもおk)

まずはじゃんけんをするために必要な画像たちをresフォルダのdrawableフォルダに格納していきます。
必要な画像を格納したら、画面のデザインに入っていきます。

画面のデザインはActivity_main.xmlで行います。
コードでデザインしたい方はコードで、目視でデザインをしたい方はデザインタブをクリックして自由にデザインしましょう。
僕はコードがやりやすかったのでコードでデザインしました。

“`

元記事を表示

[java入門] finalについて簡易解説

# javaのfinalについて

・finalは修飾子の1つ。変化をさせたくない変数などに利用する。

#### finalとは
修飾子の一つ。それが最後のものであることを表す。
例)円周率のような値はどこであっても変わることのない定数なので一度代入されたなら決して変わって欲しくない。
そのため最後の値という意味でfinalを使っていく。
#### 種類
・final変数: 一度しか値を代入することができない変数を宣言できる。
・finalクラス: クラスにfinalをつけるとクラスを継承できなくなる
・finalフィールド: フィールドはクラス変数とインスタンス変数にfinalをつけて宣言することができる。
・finalメソッド: サブクラスでメソッドをオーバーライドできなくなる

元記事を表示

OTHERカテゴリの最新記事