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

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

【Eclipse】サーブレットの準備

# サーブレットプログラムの準備

サーブレットのプログラムを動作するまでの、個人的な手順まとめです。




## Step:1 動的Webプロジェクトの作成

### eclipseを使いプロジェクト作成する際に 動的Webプロジェクトで作成

1. プロジェクト名と ターゲット・ランタイムを設定
– ここで指定したプロジェクト名がコンテナの名前になる
– プロジェクトのロケーションで指定したフォルダがコンテナの実行ディレクトリになる
– ソースコードが配置されるフォルダの名前および場所は基本的にそのまま

2. コンテンツ・ルート (デフォルト: プロジェクト名)
– プロジェクトをサーバー上で動作させる際の名前になり、ブラウザからURLを入力する際、そのプロジェクトを指す為に使用されます。

元記事を表示

イテレータとは、わんこ蕎麦をよそう人である

#はじめに
以下では、「イテレータが何者か理解したい」という方へ、そのイメージを伝えることを優先しており、実際の動きとは多少異なります。 正しい動きについては、各種リファレンスをお読みください。
また、.Net(VB/C#)では「イテレータ(Iterator)/反復子」ではなく「イニュマレータ(Enumerator)/列挙子」と呼んでいます。

#イテレータ…?
私は、.NET(VB/C#)とJavaしか知らないのですが、どの言語にもイテレータまたはそれに類するものが存在すると思います。 これについて、私が理解(らしきことを)した時のことをまとめてみます。
##ネットで情報を漁る
ネットでいろいろな方が、イテレータについて具体的な例を挙げ分かりやすいように説明しています。 しかし私は「それがどんな感じか?」を先に(それも比喩で)掴んでいないと、理解が進まない人でした。 そこで、こんな風に理解しました。
##わんこ蕎麦とイテレータ
わんこ蕎麦は、お盆の上に少量の傍がもられたお椀が載っており、給仕する方が一つずつ、食べる人の前にあるお椀によそうことを繰り返します。 ここでの登場人物が、そ

元記事を表示

[VSCode]Spring BootでHello World!

## はじめに
VSCodeを使って、Spring Bootで作るWebアプリケーションを作成しました。画面に”Hello World!”と表示するだけの簡単なアプリケーションです。

## 想定開発環境
**OS**: Windows10 64bit
**Visual Studio Code**: 1.51.1
**Java**: Java14
※Mavenプロジェクトにて作成します。

## 開発環境準備
VSCodeに以下の拡張機能をインストールしておく。
・**Java Extension Pack**
https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack

・**Spring Boot Extension Pack**
https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-boot-dev-pack

## プロジェクトの作成
– Visual Studio Codeで「コマンドパレット」(Ctr

元記事を表示

【Java・SpringBoot】Spring JDBC / RowMapper(SpringBootアプリケーション実践編15)

ホーム画面からユーザー一覧画面に遷移し、ユーザーの詳細を表示するアプリケーションを作成して、Spring JDBCの使い方について学びます⭐️
前回までで、Jdbc Templateを使った基本のCRUD操作について学びました
今回は応用編で、RowMapperを学びます^^
構成は前回の記事を参考にしてください

⭐️前回の記事
[【Java・SpringBoot】Spring JDBC でユーザー削除処理(SpringBootアプリケーション実践編14)](https://qiita.com/suema0331/items/fe54bbf8d089be8eb1fe)

#RowMapper
* RowMapperとは、**データベースのレコード(行)と、Javaオブジェクトのマッピングを行う**ためのクラス
* これまでは、Userテーブルのデータを1件取得するには、
select文で取得した結果をMapから取り出して、Userクラスのインスタンスにセットしていた
* 似たようなselect文を沢山作ると、コードの可読性が下がる。。
* →そんな時に、**RowMap

元記事を表示

パラダイムシフト

[Coming Soon – EC2 C6gn Instances – 100 Gbps Networking with AWS Graviton2 Processors](https://aws.amazon.com/jp/blogs/aws/coming-soon-ec2-c6gn-instances-100-gbps-networking-with-aws-graviton2-processors/) / [Graviton](https://aws.amazon.com/jp/blogs/aws/category/compute/graviton/)
この発表を見て、今後 IaaS では x86_64 ではなく arm64/aarch64 を選択することにした。
私が好んで使う Google Cloud や Azure は未対応なので AWS 一択ということになる。

使用する言語も、もう Java は使わず、Go/C++(ひょっとすると Rust)を使用することにしている。
x86_64 から arm64 へ、Java から Go へ。

私はこれまで書いてきたすべての Ja

元記事を表示

【Java】GET(データの受け渡し)


# タイトル

「ホームページのサーバから情報を取得する HTTPメソッド」


## 【説明】GET / GETメソッドとは
要約すると

– HTTPの[メソッド]の一つ。
– 何か情報を検索したり取得する時に使用する[メソッド]
– 指定したリソースの表現を転送するようにリクエストする [メソッド]
– 値をリクエストURLの後に付け加えてサーバに送る。

つまりブラウザでURLを入力し検索するとき無意識にGETメソッドを使っています。


## 【メリット】
GETを使うとどのような処理をしていたとしてもクライアントには安全なAPIだと見なされます。
これは、クライアントからはサーバがどのような処理をやっているかを知ることはできないためです。


## 【特徴】
GET送信の方法は、パラメータが明示的というのが特徴です。
そのため「パラメータを見れば、ページの遷移や、行われている処理がわかる」というメリットの反面、「パ

元記事を表示

[VSCode] Javaの開発環境構築、はじめの一歩

## はじめに
Javaでの開発が長いのですが、案件で使うエディタと言えば、eclipse(またはSTS)かIntelliJ IDEAが多かった私。InteliJに慣れてしまうと、ライセンス払ってでもInteliJ一択!だったんですが、ふと触ってみたVisual Studio Codeがいい感じ!だったんです。本記事では、Visual Studio CodeでJavaの開発環境を構築していきたいと思います。(**はじめの一歩**)

## 想定開発環境
**OS**: Windows10
**Visual Studio Code**: 1.51.1(2020年12月)
※ JDKのインストールは既に済んでいる前提
JDKのインストールについては、以前記事を書いているので、そちらをご参照ください!
[Amazon Corretto11 インストール](https://qiita.com/takumi_links/items/8f7793b0dd7032be7de8)

## 手順(2ステップ)
1. Java Extension Packインストール
2. Javaを動かしてみよう!

元記事を表示

Javaの文字列入門

今回はJavaの文字列についての扱いを簡単にまとめて見ます。

#1 Javaでの文字列変数の定義方法

Javaでは文字列は標準クラス(Javaの言語機構に標準で含まれているクラス)のStringを使います。

“`Java
String str = new String(“Hello world”);
“`

こんな感じです。
あるいは、下記のような書き方でも宣言できます。

“`Java
String str = “Hello world”;
“`

ただし、newを使うやり方だと無駄なインスタンスを使うことになってしまうので、通常はString str = “Hello world”;のようにします。

#2 文字列を扱う便利なメソッド

文字列の扱いは、文字列用に用意されたStringクラスのメソッドを使うことで便利になります。

“`Java
// length 文字列の長さを取得
String str1 = “apple”;
int strlen = str1.length(); // 5

// substring 文字列の部分文字列を取得
// 1番目の引

元記事を表示

ArchUnit 実践:Layered Architecture のアーキテクチャテスト

“`
// 実行環境
* AdoptOpenJDK 11.0.9.1+1
* JUnit 5.7.0
* ArchUnit 0.14.1
“`

## レイヤーの依存関係

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899/66e05f48-a1ca-ea67-4584-deed321895f4.png)

## Java プロジェクトのパッケージ構成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899/9db0b94b-45f8-edc3-4600-7372456b0b40.png)

## アーキテクチャテストの実装

“`java
package com.example;

import com.tngtech.archunit.core.domain.JavaClasses;
import com.tngtech.archunit.core.importer.

元記事を表示

【Java】チェックボックスが選択されているかどうかを取得する

#プログラミング勉強日記
2020年12月1日
チェックボックスはクリックされるごとに選択状態と非選択状態になっている。その状態を取得する方法について紹介する。

#選択しているかどうか取得する
 チェックボックスが選択されているかどうかを取得するためにはJCheckBoxクラスの親クラスであるAbstractButtonクラスで用意されているisSelectedメソッドを使う。
 isSelectedメソッドは、ボタンが選択されている場合はtrueを、されていない場合はfalseを返す。

“`java
if ([チェックボックス名].isSelected()) {
// チェックボックスが選択されている場合
} else {
// チェックボックスが選択されていない場合
}
“`

#メモ
 isSelectedメソッドのように`is`で始まるメソッドは答えが真が偽になるので、if文の条件式に利用することができる。

#参考文献
[インタフェースButtonModel](https://docs.oracle.com/javase/jp/8/docs/api/

元記事を表示

【Java】例外処理メモ(try, catch, finally, throw, throws)


# 例外処理
「想定外の動作が起こったときの対応を、あらかじめ指定しておくこと」


## 【説明】 例外とは


例外の発生する原因として、例えば

– ファイルの終了検出
– エラーの発生
– 0除算の実行

といったなど、通常ではない特別の状態のときに発生します

例外はランタイムシステムが投げる場合もありますし、 自分で例外オブジェクトを作って投げる (throw する) こともできます。

## 【説明】 例外処理とは
例外が起こったときの対応を、あらかじめ指定しておくことを例外処理といいます。
通常の条件分岐(if文や case文) をつかようより 例外処理を使うことによって、プログラムの構造がシンプルでわかりやすものになる。

## スタックトレース (stack traceback)
スタックトレースとは、実行中のコンピュータプログラムにエラーが発生した際に、直前に実行していた関数や[メソッド]などの履歴を表示すること。


サーブレットは、「**Webサーバー(HTTPサーバー)上で、ウェブページなどを動的に生成したり、データ処理を行うためにサーバサイドのプログラム** 」で、WEBアプリの中心を担う機能をもっています。

## 【メリット】

サーブレットはWEBアプリを開発する上で便利な特徴を持っています。

### データを再利用(ライフサイクルの管理)
処理が始まってから終了するまでの一連の流れを管理する機能をもっていて、効率よく仕事をするようにできています。
通常は、一連の処理が完了したらそれまでに使ったデータを破棄してしまいますが、サーブレットは一連の処理が終わっても、データを保持して再利用できるようにします。
そのため、最初の1回目は処理に時間がかかるものの、それ以降データを再利用するので処理が早くなります。
WEBアプリのような頻繁に不特定多数の処理を行う場合は、データをできる限り共有して使いまわした方が効率が良くなります。

### マルチスレッドに対応

元記事を表示

【Java】web.xmlについてメモ

# web.xmlについて

「*Webアプリケーションに関する様々な設定を、xml形式で定義するためのもの*」

## 【説明】
web.xmlは

– アクセスされたURLに対して呼び出すクラス
– エラー時に実行する処理の指定

などの設定をします。


## 【配置箇所】(結論: WEB-INF直下)

**web.xmlは 「WEB-INF」ディレクトリ直下 に配置し、Webアプリケーション毎に作成**します。
(※「web.xml デプロイメント記述子の生成」にチェックして作成した場合は、デフォルトで作成されます。

## 【読み込みのタイミング】
Webサーバ(HTTPサーバ)の起動時にWebアプリケーション毎にweb.xmlが読み込まれます。

## 【web.xmlの基本構造】
「XML宣言」、「DTD宣言」、「本体」の順で構成されています。


## 【書き方】

“`java

元記事を表示

Java 文字列の一部を切り出すためのメソッド!

#はじめに
学習用のメモになります。

#substringメソッドとは?
`substring`とは文字列の一部を切り出すために使えるメソッドになります。

#文字列の一部を切り取る(substring)
“`
文字列.substring( int biginIndex)
“`
biginIndex → 開始インデックス(この位置にある文字は含まれる)

##サンプルコード

“`Main.java
public class Main {
public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// String s = sc.next();

String message ; //[1]
message = “おはようございます。”;//[2]
String result = message.substring(4);

System.o

元記事を表示

Java containsメソッドと用途

#containsメソッドとは?
containsメソッドは特定の要素を含むかどうか判定するメソッドです。

###サンプルコード
標準入力で入力された要素が要素の何に含まれているかみます

入力例

“`
Z
Kirishima
“`

“`Main.java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next(); //1行目の要素を取り出す
String s = sc.next(); //2行目の要素をたりだす

if (s.contains(a)) { //変数sの要素の中にaの要素が含まれているかみます
System.out.println(“YES”);
} el

元記事を表示

【Java】ポリモーフィズム ( 呼び出す関数が呼び出し元に適した振る舞いをすること )


# ポリモーフィズム
「中に入るものによって同じ[メソッド]でも違う処理を行える」というプログラミング言語自体の特徴のこと。


## 【説明】


結論、ポリモーフィズムは「 *呼び出す関数が呼び出し元に適した振る舞いをすること* 」。

[Wikipedia「ポリモーフィズム」]には以下のように書かれていました。

> 「プログラミング言語の型システムの性質を表すもので、プログラミング言語の各要素(定数、変数、式、オブジェクト、関数、メソッドなど)についてそれらが複数の型に属することを許すという性質を指す。」

正直、自分には難解でしたが、つまりは「*大量の同じ処理を一つの[メソッド]でまとめて処理する」ようにすることで、短いコードで管理がしやすく、修正に強いコードにすること*」が「 **ポリモーフィズム** 」であると思いました。

ポリモーフィズム(和訳: 多相性)は、[オブジェクト指向]三大要素([継承], [カプセル化], ポリモーフィズム)の1つで、そのなかでも一番

元記事を表示

OTHERカテゴリの最新記事