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

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

CentOS8 に OpenJDK15 をインストールしたときのメモ

CentOS8 に OpenJDK15 をインストールしようとしたとき、yum では LTS Version しかインストール出来ませんでした。(2021/02/23 時点)
インストール方法をググってもパッと出てこなかったので、手順をメモしておきます。

rpm をダウンロードしてインストールするのが簡単そうでした。
CentOS8 の rpm は pkgs.org よりダウンロード出来ます。

OpenJDK の rpm は下記からとってこれます。
https://pkgs.org/download/java-latest-openjdk

OpenJDK をインストールする前に依存ライブラリが必要そうで、下記から取得します。
https://pkgs.org/download/java-latest-openjdk-headless

wget で ダウンロードして dnf でインストールします。(2021/02/23 時点)
(URLは変更になるので、上記ページの Binary Package のURLから最新を落としてください)

“`
wget https://dow

元記事を表示

【Javaについてまとめてみたオブジェクト編】抽象クラスについて

#はじめに
今回はJavaの抽象クラスについて書いていきたいと思います。
そんなに難しくはないのでサラッと理解しましょう!

##抽象クラスとは
抽象クラスは継承されることを前提としたクラスでスーパークラスとなる為に生まれた存在です。
特徴としては、

– クラス宣言時にabstractを付ける
– newをしてインスタンスを作成することが出来ない
– 抽象メソッドを作成することが出来る。

といったものがあげられます。

###抽象クラスの宣言
“`java:抽象クラスの宣言
//下記のどっちかの宣言
abstract public Class Member{};
public abstract Class Member{};
“`
宣言する時はこのようにアクセス修飾子の前後どちらかにabstractを付けます。

##抽象メソッドとは
抽象メソッドはスーパークラスでは処理内容は書かずにサブクラスで必ずオーバーライドしないといけないメソッドになります。
逆に言うと、**必ずオーバーライドして欲しいメソッドを書きたい時**に使います。
###抽象メソッドの宣言
“`java:抽象

元記事を表示

Javaで学ぶアルゴリズム 第6弾:ユークリッドの互除法

# #Javaで学ぶアルゴリズム < ユークリッドの互除法 >

##はじめに
Javaは授業で触れただけで全くの初心者であり,何もわかっていない.なので,基本的なアルゴリズムをJavaで実装し,アルゴリズムの理解を深めるとともに,Javaにも慣れていきたい.
その第6弾としてユークリッドの互除法を扱う.

##ユークリッドの互除法
Pythonでもユークリッドの互除法を扱った.(https://qiita.com/Yuya-Shimizu/items/d82bbdf15d31e25cf544 )
そのときにも示したようにユークリッドの互除法は1つではない.

ここで,2つ定理とそれを利用したときの互除法の手順を示す.
####定理①:余りを利用
**「2つの自然数m, nについて,mをnで割ったときの商をq,あまりをkとすると,「mとnの最大公約数」は「nとkの最大公約数」に等しい.」**
【step1】: mをnで割り,あまりkを求める
【step2】: m, nをn, kでそれぞれ置き換える
【step3】: あまりkが0なら,その時の割る数nが最大公約数で,そうでなければste

元記事を表示

Azure FunctionsのログをApplication Insightsで確認する方法

# 概要
Azure Functionsで、プログラム中で仕込んだログを参照するのに手こずってしまったので、自分のメモがてら共有します。
Azure Portalからは、直近20件の実行分までは簡単に参照できるのですが、それより古い分はApplication Insightsを利用する必要があったのです。KQLとか、書き方がわからず困惑しました:confounded:

# ログを仕込む方法
(私はJavaでAzure Functionsを書く事が多いので、Javaの例のみとさせてください)
Functionsの入り口となるメソッドでは、`ExecutionContext`というクラスの引数を受け取れるようになっているので、ここからLoggerを取得する事ができます。
↓メソッド引数で`ExecutionContext`を受け取る

“`java
@FunctionName(“HttpTrigger-Java”)
public HttpResponseMessage run(
@HttpTrigger(name = “req”, methods

元記事を表示

マークダウンの練習と、初めまして。

#こんにちは
こんにちは。マークダウン式というのを初めて本格的に使ってみました。hackmdなどのサイトでほかの方の見様見真似で多少やったことはあるのですが、これはなかなか面白いですね!

[こちら](https://qiita.com/Qiita/items/c686397e4a0f4f11683d#code—%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%8C%BF%E5%85%A5 “Markdown Qiita”)の記事を見ながら練習しています。

## これがH2タグ
Hello everyone!!

コードを挿入してみます。

“`Java:practice.java
System.out.println(“Hello, world!”)
“`

ここで少し自己紹介をすると、私はJavaを勉強しています。大学の授業で少しPythonを学んだので、Pythonの基礎的なところもわかりますが、基本はJava使いです。
現在の目標はAndroid Studioで作っているアプリを完成させることです。アプリはほぼ自分用で公開目的ではありま

元記事を表示

ライガーゼロで関数型インタフェースの学習(java)

#はじめに
関数型インタフェースの学習のために作成しました。
関数型インタフェースはインタフェースの中に関数型インタフェースの処理を事前に作成しておくことで、利用したいときに利用できるライブラリのように使用できるそうです。
そうすることで、システムやプロジェクトに捕われない汎用的なプログラムを、次のシステム開発で持ち込むことが可能になるそうです。
#手順
以下の手順で作成しました。
1. インタフェースの作成
 →ライガーゼロの各種装備を関数型インタフェースを用いて記述します。
2. スーパークラスの作成
 →素体ゼロが持っている固定装備を記述します。
3. サブクラスの作成
 →各種アーマーを装備したことを想定して記述します。
  全て記述すると長くなるので、ライガーゼロとライガーゼロイエーガーのみを記述します。
#インタフェースの作成
各種装備の出力には、Consumer<T>を使用、
型式番号の取得には、UnaryOperator<T>を使用、
最高速度の取得には、ToDoubleFunction<T>を使用、
定員の判定には、Predicate<T>を使用しました。

“`A

元記事を表示

HttpServletでInputStreamを複数回読めるようにしつつmultipart/form-dataのパラメータを取得する

# 対応したい内容

servletにmultipart/form-data形式でPOSTされてきたパラメータを読み取るには`HttpServletRequest.getParts()`を用いる方法[^1]や、下記のように`HttpServletRequest.getParameter()`を用いる方法がある。

“`java:TestServlet.java
package test;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings

元記事を表示

【Java】メソッド参照とコンストラクタ参照

# メソッド参照とは

すでに定義済みのメソッドを、引数なしで呼び出せるのがメソッド参照です。
これを使うと、ラムダ式を書かずに直接メソッドを実行できる、などのメリットがあります。

“`java
class Person {
private final String firstName;
private final String lastName;

public Person(String firstName, String lastName){
this.name = firstName;
this.surname = lastName;
}

public String getName(){ return firstName; }
public String getSurname(){ return lastName; }
}

List people = getSomePeople();
“`

# メソッド参照

“`java
people.stream().map(Per

元記事を表示

これは Java スクリプトですか?

JavaScript の記事をお探しの皆様におかれましては、お役に立つような内容ではございませんので、ブラウザの戻るをお願いいたします。

また、かなり濃いめの Java ジョークとなっておりますので、Java 初心者の皆様におかれましては、真に受けないようにお願いいたします。

# OpenJDK 11 からは Java ファイルを直接実行できる

つい最近知ったのですが、OpenJDK 11 で [JEP 330: Launch Single-File Source-Code Programs](https://openjdk.java.net/jeps/330) が導入され、単一ファイルの Java プログラムならば、javac などでコンパイルしなくても実行できるようになっています。

* [ソース・ファイル・モードで単一ファイルのソース・コードのプログラムを起動する方法](https://docs.oracle.com/javase/jp/15/docs/specs/man/java.html#using-source-file-mode-to-launch-single-

元記事を表示

【Java】enumでpropertiesファイル読み込みユーティリティを作る

# 0. INDEX
– 概要と目的
– enumでユーティリティを作る
– あとがき

# 1. 概要と目的
いつものコピペ用。
設定ファイルから値を取得する時に、使う度に文字リテラル指定にするとtypoるのでその対策。
Eclipse等のコードアシスト環境があれば多分事故る確率は減るハズ!

という事で、今回の目的はこんなプロパティファイルがある時に

“`properties
HOGE=hoge
“`

こういう風にコードアシストを使ってtypoしない様に実装したい!

“`Java
String value = Config.HOGE.get();
System.out.println(value); // “hoge”と出力
“`

だって、↓こう書いておいてtypoに気づかずに
「先輩、ここでなぜかぬるぽが出ちゃうんです…」
とか、あ゛ぅ゛ん゛![^1] もうっ!ってなるじゃないですか!!1

“`Java
String value = Config.get(“H0GE”);
if (value.length) { // ここでドーンだYO!!
// 処理

元記事を表示

Javaと比較したC#の予約語

#はじめに
Javaプログラマーでしたが、仕事でC#を使うようになったので今回の記事を作成するに至りました。

#予約語
|Java |C# |説明 |
|—|—|—|
|abstract |abstract |抽象クラスの宣言で使用 |
|assert|なし|プログラムの動作検証に使用|
|break |break |処理を中断させる命令|
|case |case |switch文の条件ラベルで使用|
|catch |catch |例外処理で使用(try-catch-finally)|
|class |class |クラス宣言で使用|
|continue |continue |以降の処理をスキップして処理を継続させる命令|
|default |default |switch文で使用|
|do |do |繰り返し処理で使用(do-while)|
|else |else |条件式で使用(if-else)|
|enum |enum |複数の定数を列挙型で保持する|
|extends |: |継承するクラスを指定する|
|false

元記事を表示

JavaFXでジェネリック使って入力ダイアログ作成してみる

# この記事について

将来的に書く予定の「JavaFX で DynamoDB Viewer作ってみた」記事の1ステップ。
結構大きな話になると思うので、少しずつ技術ポイント毎に記事を書いて、ある一定程度の要件を満たせた段階で前述まとめ記事書く予定。

第一回記事:[DynamoDBの情報を読み込んでJavaFXで表示してみる](https://qiita.com/silverbox/items/eba824a9f003df67181e)
第二回記事:[JavaFXで動的にテーブル列を設定する](https://qiita.com/silverbox/items/904a01d561014d800696)
第三回記事:[AWS java SDKでDynamoDBテーブル情報を取得してみる](https://qiita.com/silverbox/items/3caefb782f1bb269490f)
第四回記事:[JavaFX の TableView の選択範囲をクリップボードにコピーする。](https://qiita.com/silverbox/items/19e131bd3da0

元記事を表示

Raspbian GNU/Linux 10 (buster)のJavaをJava 8に入れ替えてRaspberry Pi Zero WをJenkinsのエージェントとして利用する

##1. はじめに
Raspberry Pi Zero WをJenkins[^1]のエージェントとして利用しようとしたところ以下のようなメッセージが出力され、ノードの起動ができませんでした。

>[02/18/21 22:48:37] [SSH] /usr/bin/javaのJavaバージョンをチェック
/usr/bin/java のJavaバージョンが不明です。
Error occurred during initialization of VM
Server VM is only supported on ARMv7+ VFP

Raspberry Pi Zero WのCPUはARMv6でプリインストールされているJavaが対応していないためとわかりました。そこでRaspberry Pi Zero Wで利用可能なJavaに入れ替えました。

##2. 環境
筆者が使用しているRaspberry Pi Zero WやRaspbianの諸元を以下に示します。

“`
$ uname -a
Linux raspberrypi 5.4.51+ #1333 Mon Aug 10 16:38

元記事を表示

SpringBootでToDoアプリを作ってみよう【+jQuery】

#はじめに
SpringBootを使ってTodoアプリを作っていきます。

↓以下の記事の続きです。ここに加えていくので、先に作ってみてください。
[SpringBootでToDoアプリを作ってみよう【誰でも作れます・初心者向け】](https://qiita.com/toki_k/items/f9fcdf7d65f3a8ab0f23)

前回分のソースファイル
https://github.com/tokio-k/TodoApp-springboot/tree/intermediate

前回まででこんな状態です。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506867/d426cbc3-ef04-0d26-a899-03cefc9028e6.png)

これから、SpringBootの勉強を始めるという人の役に立てれば、いいなと思っています。
基本的にコードはファイル全部を載せるようにします。自分が勉強している時に、書く場所がわからないことがあったので。
既存のものを少し編集するだけの

元記事を表示

java オブジェクト指向についての備忘録

###オブジェクト指向型プログラミングとは 

= 現実世界を真似て登場人物の単位でプログラムをクラス単位で分割すること

####オブジェクト型プログラミングの全体的なイメージ

    生成 ⇦  ⇦      神様      →   → 命令
    ⇩       (mainメソッドを含むクラス)      ↓
 
・型(クラス)を元に         ・操作の呼び出し
 インスタンスを生成         ・該当インスタンスの属性の書き換え

####インスタンス生成のイメージ

         勇者Aの生成をしなさい。
   神様    →  →  → 勇者A    
勇者の型(クラス)  ⇨  ⇨   ⇧             
属性(・HP・名前)    
操作(・攻撃 etc)

   

                    
                             

元記事を表示

【初学者】Java入門 Lesson.1

##はじめに

スクールではRubyとRailsを学習しましたが、今後は新たな職場で新たな言語を使用しなければならないので、汎用性の高いJavaを学習していこうと思います。

##Javaとは
世界中にたくさんの開発者がいる有名な言語。
大規模システム、Webアプリケーション、スマートフォンアプリなど、様々な場所で活躍している。
※JavaとJavaScriptは、メロンとメロンパンくらい無関係。
 
プログラミング言語求人ランキング
  1位 Java (31.1%)
  2位 PHP (14.96%)
  3位 Ruby (8.24%)
   ※レバテック プログラミング言語別求人案件ランキング(2019年)

##Javaの特徴
“`
 ● コンパイラ言語
 ● オブジェクト指向言語 
 ● OSを選ばない
 ● JVM言語
“`
__【コンパイラ言語】__
◉「機械語に一括して変換してから実行する」プログラミング言語
◉処理が高速である。

__【オブジェクト指向言語】__
◉オブジェクト指向開発★に適した言語
(★データと処理をワンセットとして組み立てていく開発手

元記事を表示

Javaで標準入力を使った簡単なプログラムを作成

# はじめに
Javaの勉強のために、ネット上の記事を参考にして簡単なプログラムを作りました。
備忘録として残りしたいと思います。

# キーボードからの入力させるプログラム

私は、「Scannerクラス」を用いて入力された数値を取得しました。
構文解析をするためのメソッドです。

“`java
import java.util.Scanner;
#↑Scannerクラスが使用できるようになります。
“`

# 整数を+してくれるプログラムを作ります。

“`java
import java.util.Scanner;
class main {
public static void main(String args[]){
Scanner scan = new Scanner(System.in); //Scannerクラスを初期化
System.out.println(“1つ目の数値を入力してください”);
int num1 = scan.nextInt(); //入力を受け取る
System.out.println(“2つ目の数値を入

元記事を表示

SpringBootを利用してCLIアプリケーションの起動ができるまで

# 概要
Springを利用したWEBアプリケーションの開発をしていましたが、Spring Webを利用しないバッチアプリの開発をする事になり、バッチアプリでのDIコンテナの扱い方がなかなか見つからなかったので覚え書きとして今回記事を書くことにしました。

## この記事のゴール
[Spring Initializr](https://start.spring.io “Spring Initializr”)を利用して新規作成したプロジェクトに、以下のような機能を持つコマンドラインアプリケーションを実装する。

* 実行時に引数を受け取り、指定の機能を実行することができる。
* CLIアプリケーションでSpringのBeanを利用する。

## 環境
* Java 11
* Spring Boot 2.4.3
* Pleiades All in One Eclipse 2020-12

### 依存関係の一部
Mavenプロジェクトの場合、pom.xmlの記述は

“`xml:pom.xml


org.spr

元記事を表示

JavaScriptでHTMLを操る最低限の知識

エンジニア経験約1年半のTKです。
今までは業務でJavaばっかり書いていてフロント知識を捨てていました。

最近、初めてフロントの開発せざるを得ない展開になってしまいました。
嫌だなぁと思いましたが、これを機にちゃんと勉強しようと思いました。

今回はJavaScriptを実装した時に思った事を素直に書きつつ、どう対応したかを今後の自分の為に書き記します。
今までサーバーサイドの開発ばっかりやっていてフロントは嫌い!って人向けです。

ループ文やif文などの構文についてではありません。(そこはサーバー開発言語の知識があればググってすぐに理解できます)
##HTMLとの関係について
僕がJavaScriptを書く際に最初にめんどくさいと思ったのはここです。
全くわからない、どうやってHTMLを操作するの?と純粋に思いました。

###例えば
そうですね、画面表示する時に処理したいって時。

“`HTML:シンプル.HTML