JAVA関連のことを調べてみた2020年04月26日

JAVA関連のことを調べてみた2020年04月26日

コンストラクタ(java) の使い方の勉強

コンストラクタの使い方がわからん。勉強だ。

[知ってること]
・名前はクラス名と同じ
・何かを初期化する役割(何をかはぼんやりとしかわかってない)
・super は親クラスのコンストラクタを呼び出す
・this は自身のクラスのコンストラクタを呼びだす
・引数と同じ名前の変数を使うときに“`this.str = str“` (左のstr はいま定義したもの、右側のstr はメソッドの引数)

[わからないこと]
・コンストラクタの使いみち
・記述方法


[調べてわかったこと]
・コンストラクタは、クラスの
・戻り値は設定できない
・引数は設定できる
・メンバ変数(クラス内でメソッド外の変数のこと)の初期化をする

“`java:sample.java
public class sample{
int num; // ←これ
String name; // ←これも
public sample_method(){
~~~~
~~~~
}
}
“`

こんな感じかなあ。次はコードを書いて、具体的に実装の

元記事を表示

インターフェイスの使用例

# はじめに

[抽象クラスの使用例](https://qiita.com/ats_y/items/6088aada15b22c2fef75)のインターフェイス版です。
インターフェイスの意味・定義の仕方は知っているけど、どんなときに使うのか・どんな良いことがあるのか。
その例を紹介します。

# いきなり結論。改造に強くなります。

抽象クラス・汎化・継承と同じで、改造に強くなります。
[抽象クラスの使用例](https://qiita.com/ats_y/items/6088aada15b22c2fef75)で紹介したプログラムにさらに改造要求が発生したことを例として紹介します。

### 改造対象のプログラム

まずは、[抽象クラスの使用例](https://qiita.com/ats_y/items/6088aada15b22c2fef75)で紹介したプログラムのおさらいです。

プリンターを管理するプログラムで、最初はインクジェットプリンターとレーザープリンターを管理してプリンター情報を一覧表示していました。
そこに、管理できるプリンターとしてドットインパクトプリンターを追加

元記事を表示

抽象クラスの使用例

# はじめに

抽象クラスの意味・定義の仕方は知っているけど、どんなときに使うのか・どんな良いことがあるのか。
同じ要件を抽象クラスを使って実装したプログラムと使わずに実装したプログラムを比較して確認してみます。

# JAVAプログラム

プリンターの種類としてはインクジェットとレーザーがあるとします。それらを複数管理し、管理しているプリンターの情報を一覧表示するプログラムを作ります。

### 抽象クラスを使わないプログラム
https://paiza.io/projects/Iwnh9NgDAaxPSZC36uZqsw

クラス構成:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342629/2ca0378f-25f0-72d7-1473-bd5be64c779c.png)

InkjetPrinterクラスとLaserPrinterクラスがあるだけです。
それぞれモデル名(mModelName)と用紙残数(mPaper)をメンバ変数として持っています。また、プリンター情報を返し

元記事を表示

合計点、平均点の求め方

public class Main {
public static void main(String[] args) {
int [] scores = {20, 30, 40, 50, 80};
int sum = 0; //集計結果
for (int i = 0; i < scores.length; i++) { sum += scores[i]; //変数sumに合算 } int avg = sum / scores.length; System.out.println("合計点:" + sum); System.out.println("平均点:" + avg); } }

元記事を表示

PlantUML使い方メモ

長くなるので、図の書き方はクラス図とシーケンス図だけで。

# PlantUML とは
– テキストで UML 図を記述できる DSL の一種(たぶん)
– 本体は Java で書かれていて、単一の jar ファイルを落としてきてコマンドラインから実行できる
– [plantuml/plantuml: Generate UML diagram from textual description](https://github.com/plantuml/plantuml)
– ただし、実際に使うときは Visual Studio Code とかのプラグインを入れて実行することが多いと思う
– ライセンスは GPL v3
– [plantuml/license.txt at master · plantuml/plantuml](https://github.com/plantuml/plantuml/blob/master/license.txt)

# 環境構築
OS は Windows10。

## Java
“`
> java –version
openjdk 1

元記事を表示

Tomcatを使ってSquareに顧客登録する方法

# 目次
– EclipseでMavenプロジェクト作成
– MavenプロジェクトにTomcat(Java Servlet API)とSquareを登録
– 登録ページ作成(JSP作成)
– 内部処理を作成-1-(JSPとの通信)
– 内部処理を作成-2-(Squareとの通信)

# EclipseでMavenプロジェクト作成
参考サイト[[Eclipse/Tomcat] MavenのwebappプロジェクトでServlet+JSP](https://qiita.com/zaki-lknr/items/8137ac40ebd8f5bdb3c5)

### 1. Eclipseの**パッケージエクスプローラー**内で右クリック
スクリーンショット 2020-04-26 4.39.07.png

### 2. **

元記事を表示

【わかりやすく解説‼】Javaにおける参照型の型変換

## 1.事前知識
– [【最新】UbuntuでJavaの環境を構築する方法](https://qiita.com/ryome/items/37c53e9638a9c6ea146a)

– [【初心者でもできる‼】Windows10にJava環境を作る方法(JDK14.0.1)](https://qiita.com/ryome/items/30135570954e36196821)

– [【わかりやすく解説‼】Javaのインスタンスの使い方](https://qiita.com/ryome/items/62ba0d8395af6698053a)

– [【初心者でもできる‼】Windows10にEclipseをインストールする方法(Java環境構築)](https://qiita.com/ryome/items/b47c5acdaa52cffbec58)

事前知識として、上記リンクの内容が必要です。

## 2.参照型の型変換とは

– `参照型の型変換` には、 `アップキャスト` と `ダウンキャスト` がある。
– `アップキャスト` は、サブクラスのインスタンスを `スー

元記事を表示

java

参考にした記事
https://manga.crocro.com/?cat=java&pg=make_cui_app
javaの環境構築まで終わり。
アプリケーションまで作業したがやったばかりで全然わからない。

名前変更
実行ボタンで右クリック
[![Image from Gyazo](https://i.gyazo.com/b1cc03292639b2bbf6e3604341e40614.png)](https://gyazo.com/b1cc03292639b2bbf6e3604341e40614)

元記事を表示

【Java】IntelliJ IDEAでコンストラクタやGetterやSetterを一発で書く技。

Javaでオブジェクトのインスタンスを生成するクラスを作成する際に

– **コンストラクタ**
– **デフォルトコンストラクタ**
– **Getter(get()メソッド)**
– **Setter(set()メソッド)**

は大体記述すると思われますが、毎回毎回コード書くのめんどくさいですよね。

#解決法(Mac OS)

結論:手打ちせずに、**command+n**で自動生成しましょう!!

人の名前、年齢、IDをメンバ変数に持つPersonクラスを例に解説します。

**Personクラス**

“`java
public class Person {
private int PersonId;
private String PersonName;
private int PersonAge;

public Person(int PersonId, String PersonName, int PersonAge) {
this.PersonId = PersonId;
this.PersonNam

元記事を表示

Ruby と Perl と Java で解く AtCoder ABC 113 C

# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder Beginner Contest 113 C – ID](https://atcoder.jp/contests/abc113/tasks/abc113_c)*
Difficulty: 877

今回のテーマ、リファレンス
# Ruby
以前に解きました、*[Ruby で解く AtCoder Judge System Update Test Contest 202004 B](https://qiita.com/superrino130/items/e01284f926f45be5427b)* を少し難しくした様な問題です。

“`ruby.rb
n, m = gets.split.map(&:to_i)
p = []

元記事を表示

VSCodeの “Build failed, do you want to continue? “の解消方法

VSCodeでJava(Spring boot)を起動しようとしたら
**”Build failed, do you want to continue?”** と表示され、ハマったのでメモを残す。
##”Java: Clean the Java language server workspace”を実行する

command + Shift + P でVSCodeのコマンドの表示をする
その中から上記のコマンドを選択。その後再度、アプリを起動するとエラーが解消される。

原因としては、Java language server がworkspaceを持っていることにある。

そのため他にも
[VSCode Java Debugger for Java Build failed 原因と対策] (https://qiita.com/wagase/items/51a2ea6a177a5881af53)

などの方法もある。

元記事を表示

Bukkit Pluginの勉強方法

## 経緯
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554196/b52b3c44-449b-df58-45c7-945a009ecb08.png)
お題箱にお題が投稿されていました。初っ端からなかなかに難しいのが来たなこれ…w
とりあえず勉強方法は人によって違うのでコレが正解っていうのは無いけれど、全員に共通しているところを解説していこうと思います。

## 正直 色々な記事を調べていくしかない
流石にBukkitのコード全部理解して、Javaも全部理解してからコード書き始めるとか馬鹿なことはしません。Plugin作ってる人はたくさん居るので、その人たちが作成した記事を読んで、“このコードを使うとこういう挙動になるのか“とか、すでに配布されているPluginのソースを見て、“あ~こういう書き方があるんだな“ とか、そういう地道な努力しかないと思います。

## それでも分からん
**ここからが本題。**おそらく“記事を読んでも理解できない“、“ソースコードなんて

元記事を表示

Spring Boot Actuator の prometheus エンドポイントが出力する CPU 負荷関連項目

## 概要

– Spring Boot Actuator の prometheus エンドポイントが出力する CPU 負荷関連項目 (CPU使用率など) についてまとめる
– prometheus エンドポイントの出力している値が何を示しているか、Micrometer のソースコードの該当箇所を探す

## Spring Boot Actuator について

Spring Boot Actuator は Spring Boot アプリケーションのメトリクス情報などを HTTP などで取得できる機能。

[Spring Boot Actuator: 本番対応機能 \- ドキュメント](https://spring.pleiades.io/spring-boot/docs/current/reference/html/production-ready-features.html)

> Spring Boot には、アプリケーションを本番環境にプッシュするときにアプリケーションを監視および管理するのに役立つ多くの追加機能が含まれています。HTTP エンドポイントまたは JMX を使用し

元記事を表示

openJDKをインストールしているwindowsでlaunch4jでexe化したJavaアプリケーションが動かない時の対応

Oracle-Javaのライセンスがうんたらかんたら、ということなのでいろんなOpenJDKディストリを使っている。
仕事の関係上、クライアント型アプリを作ることもあり、(割と簡単に)Mac・Win対応できるということでJavaで作っていた。
jarファイルのままだと関連付けの問題から使えない人が出てきたりするので大変、exeできるということでlaunch4jでexeにラップさせていたが、
それだと特定のOpenJDKでは起動しないことがわかった。
以下はその対処法。
(なお、レジストリを編集する箇所があるので例によってトラブルに責任は負えません)

## lanunch4jで起動できるOpenJDKディストリ
・Amazon Coretto
・AdoptOpenJDK

けどAmazonCorettoはJavaFXのメディアサポートがまだ実装されていなかったり、Adoptの方はJavaFXがないこともあって、LibericaOpenJDKを使っている。
このLibericaはlaunch4jが動かせない。
(試してないけどzuru OpenJDKもだめみたい)

## Liberic

元記事を表示

Visual Studio CodeによるSpring5 MVC Webアプリ開発 Spring Security使用編 3/3【ページ作成編 2/2】

#はじめに
[こちら](https://qiita.com/t_skri/items/77b90fc31daf2689c5a3)からの続きです。
今回は一般ユーザー作成ページを作成していきます。

##controller作成
一般ユーザー作成ページのcontrollerを作成します。

“`
D:\JAVA\Project\securitySample\src\main\java\com\example
└─controller
└─UserRegController.java
“`

###UserRegController.java

“`java:UserRegController.java
package com.example.web.controller;

import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.

元記事を表示

Visual Studio CodeによるSpring5 MVC Webアプリ開発 Spring Security使用編 2/3【ページ作成編 1/2】

#はじめに
[こちら](https://qiita.com/t_skri/items/10760c93b1788207215f)からの続きです。
今回はログインページ、管理ユーザー作成ページを作成していきます。

##form作成
ログインページ、ユーザー作成ページで使用するformを作成します。

“`
D:\JAVA\Project\securitySample\src\main\java\com\example
└─form
└─AuthForm.java
“`

###AuthForm.java

“`java:AuthForm.java
package com.example.web.form;

import javax.validation.constraints.Size;

import lombok.Data;

@Data
public class AuthForm {
private String userId;

@Size(min=3, max=255)
private String password;

priva

元記事を表示

Visual Studio CodeによるSpring5 MVC Webアプリ開発 Spring Security使用編 1/3【準備編】

#はじめに
[SQLServer接続編](https://qiita.com/t_skri/items/4e3c11050f93e4761dda)で作成したプロジェクトを拡張していきます。
順番にコピペしていけば、とりあえず動く物は出来上がります。
コピペ中にエラーが発生しない順番にこだわりました。
ですので、このタイミングでこのコードが存在しているの?必要か?と言う部分もあります。
エラーチェック処理は不完全です。あらかじめご了承下さい。

下記の仕様で作成しました。

– [SQLServer接続編](https://qiita.com/t_skri/items/4e3c11050f93e4761dda)で作成したプロジェクトを拡張する。
– 独自のユーザーテーブルを作成して認証を行う。
– ロールによる動作の違いを見られるように、管理ユーザーと一般ユーザー2つを作成する。
– 一般ユーザーを登録出来るのは管理ユーザーのみとする。
– 管理ユーザーは一つしか作成出来ない。
– CSS、JavaScriptは使用しない。

#環境
OS:Windows 10 Pro 64bit
DB

元記事を表示

OpenJDK11 のソースをビルドするシェルスクリプト

OpenJDK11 のソースを CentOS 7.2 上でデバッグオプション付きでビルドするシェルスクリプトです。

# 確認環境
Windows10
VirtualBox 5.2
Vagrant 2.2.0
ゲストOS CentOS 7.2 (cpu 2、メモリ 4GB 、ディスク 100GB)
OpenJDK11 jdk-11+28

# シェルスクリプト

“`
#!/bin/sh

yum -y update
yum -y install java-11-openjdk-devel
yum groupinstall -y “Development Tools”
yum install -y libXtst-devel libXt-devel libXrender-devel libXi-devel cups-devel fontconfig-devel alsa-lib-devel
yum -y install epel-release
yum -y install python-devel python-pip
pip install -U pip
pip ins

元記事を表示

MacOSでSTS(SpringToolSuite)が起動しない時の対処 エラー内容 No java virtual machine is not….

MacOS Mojave でSTSが立ち上がらなかった時に実施した処理をまとめました。

#エラー内容

No java virtual machine was not found after…

STSを起動しようとすると上のメッセージが表示されて起動しません。一般的には下記3点実施すれば起動するらしい…

1.環境変数の設定
2.JAVA_JOME
3.STSの.iniファイルにJAVA_HOMEを追記

上の点に関してはこちらの記事が参考になるかもしれません。

[MacでのJava開発環境構築を通して「PATHを通す」意味を学ぶ](https://qiita.com/s_hino/items/a185deb4f9fc31c0f5e2)

自分の場合は上記3点を設定しても改善しなかったため、全部まっさらな状態からやり直したところ上手くいきました。下記手順になります。

#手順1 java(JDK?)のアンインストールと環境変数の削除
何が原因かわからなかったため、全部0からやり直すことにしました。
Mac内を確認したところ3つのjava(全部JDK?)が入っていたので、まず

元記事を表示

jenvでjava1.7(zulu7)を特定のディレクトリ配下で利用する

# jenvでjava1.7(zulu7)を特定のディレクトリ配下で利用する

## jenvインストール
“`
$ brew install jenv
“`

## jenv設定
“`
$ echo ‘export PATH=”$HOME/.jenv/bin:$PATH”‘ >> ~/.bashrc
$ echo ‘eval “$(jenv init -)”‘ >> ~/.bashrc
“`

## java1.7(zulu7)をインストール
“`
$ brew cask install zulu7
“`

## インストールされているjdkの一覧を表示する
“`bash
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
14.0.1, x86_64: “OpenJDK 14.0.1” /Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home
1.8.0_241, x86_64: “Java SE 8”

元記事を表示

OTHERカテゴリの最新記事