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

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

[学習内容のまとめ]Javaのデータ型について

## Javaのデータ型の種類
– 基本データ型(プリミティブ型)
– 参照型(リファレンス型)
以上の2つに分けられる。

### 基本データ型(プリミティブ型)について
基本データ型には数値、文字(文字と文字列は違うので注意)、真偽値を代入できる。
char, int, long, float, double, booleanが該当する。

### 参照型(リファレンス型)について
参照型は、インスタンスへの参照。
種類としては、
– 配列型
– クラス型
– インターフェイス型
が挙げられる。文字列を扱うStringはクラス型(Stringクラス)である。Stringクラス以外にも、Dateクラスなどがある。

###[補足]
char型の変数には整数が代入できる。文字には番号が振られて管理されているため(文字コード)。

“`java
public static void main(String[] args){
char c1 = 97;
System.out.println(c1); // 実行結果: a
char c2 = ‘\u0061’; //unico

元記事を表示

SpringBoot2で簡単なアプリを作ってみよう!(3/3) ~DB操作(SpringDataJPA)~

この記事は以下の続きです。
[SpringBoot2で簡単なアプリを作ってみよう!(2/3) ~画面表示~](https://qiita.com/nmaolks/items/95d1fe42809642167f27)

第3回目はJPAを使ってDB操作をしていきたいと思います。
#SpringDataJPAとは
一言で言えば、SQLをより扱いやすくするためのライブラリです。
個人的な意見としてのメリット、デメリットは以下となっております。
#####メリット
・SQLを書く必要がない(場合によりますが)
・DB移行時影響が少ない(Oracle→MySQLなど)
・JPAの記述、管理がしやすい

#####デメリット
・動的SQLが初心者には難しい
・副問合せ(サブクエリ)が少し苦手

こんな感じでしょうか。
まずはコードを書いてみてどんな感じの雰囲気か学んでいただければと思います。

##各クラスを作成する
とりあえず前回同様プロジェクトはこんな感じです。
![スクリーンショット 2021-03-27 22.25.27.png](https://qiita-image-store.s3

元記事を表示

Java Tomcat 404 エラーとServletの関係

##目次
・はじめに
・環境
・該当ソース
・原因
・終わりに
・参考記事

##はじめに
Java+JSP+Servletを使用して、ポートフォリオ作成しています。
初回サーバー起動時に、毎回Tomcat404エラーが出るので調べ、アウトプットも兼ねて記事にしました。

###エラー詳細
サーバー起動後、ログイン画面でログイン情報入力し、
メインメニューへ画面偏移する際に、Tomcat404エラーが出てしまう。

ただ、時間を置き何回か実行すると、
エラーは解消され、正常に画面偏移する。

###Tomcat404エラー
指定したURLに対するファイルが見つからず、表示されるエラー。

考えられる原因として主な事は、

・URLの誤字・脱字
・コンテキストパスの配備
・xmlファイルの配置場所

などがあり、ググった情報を元に調べられることは調べましたが、解決しない…。
(んー:thinking:)

##環境
Java version 1.8.0_231
MySQL 8.0
Tomcat 9.0
Eclipse

##該当ソース
###DAO
“`Java:EmployeeD

元記事を表示

サーブレット、jsp、pageが正常に表示されない時のまとめ【Java】

#目的
サーブレット、jspなどのWeb page作成で上手くページが表示されない時のまとめ

#環境
eclipse2020-12 (4.18.0)
tomcat8.5
#Web pageを開いたら・・・・

■このサイトにアクセスできませんlocalhost で接続が拒否されました。

・サーバーに何か原因があるのかも
・今までアクセス出来ていたなら
  →全てのサーブレットファイルのアノテーションを確認
  /を忘れてないか?

“`
@WebServlet(“/MainServlet”)
“`

■HTTPステータス 404 – 見つかりません。
ファイルがありません

・フォワード、リダイレクト、リンク先など転送先のファイルがあるか、ファイル名が正く指定されているか
・本当にファイルはあるのか

“`
RequestDispatcher dispatcher = request.getRequestDispatcher(
“/WEB-INF/jsp/main.jsp”);
dispatcher.forward(re

元記事を表示

Think Java エクササイズ

#Think Java Chapter 8
##語彙
array
element
index
reference
alias
traversal
search
reduce
accumulator
deterministic
nondeterministic
pseudorandom
histogram
enhanced for loop

“`java:ex8_2
public class ex8_2 {
//パラメータは配列a
//配列の数分ループを回す
//kiwiとかけていきます。
//Kiwiを出力します。
public static int banana(int[] a) {

int kiwi = 1;
int i = 0;
while (i < a.length) { kiwi = kiwi * a[i]; i++; } return kiwi; } // 配列aをループ分回す

元記事を表示

Eclipse を使用したデプロイパッケージの作成

公式ドキュメントとが一部変な日本語になっており見づらかったので、直したものを掲載。
参考URL:https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/java-package-eclipse.html

###実行環境
– OS: Mac
– Eclipseバージョン: 2020

##前提条件

>Eclipse 用 Maven プラグインをインストールします。

1. Eclipse を起動します。Eclipse の [ヘルプ] メニューから、[新規ソフトウェアのインストール] を選択します。
1. [Install (インストール)] ウィンドウで [作業対象] ボックスに http://download.eclipse.org/technology/m2e/releases と入力し、Enter。
1. Eclipse用Maven統合にチェックを入れ、「次へ」を選択します。何度か「次へ」を選択し、最後に「使用条件の条項に同意します」を選択し、「完了」を選択。

##プロジェクトを作成、ビルドする

> このステップでは、Ecli

元記事を表示

JavaのExecutorServiceを正しく終了する

# コード

ExecutorServiceを停止するユーティリティ的な(Kotlin)

“`kotlin
object ExecutorServiceUtils {

val log by logger()

/**
* [ExecutorService]を正しく終了する。
* 実行中のタスクがある場合は終了を待機する。
* 一定時間待機しても終了しないタスクがある場合はキャンセル(interrupt)しようとする。
*
* @param pool [ExecutorService]
* @param waitTimeout 実行中のタスクの待機時間
* @param cancelTimeout 実行中のタスクをキャンセルするときの待機時間
*/
fun shutdownAndAwaitTermination(
pool: ExecutorService,
waitTimeout: Duration,
cancelTimeout: Duration
) {

元記事を表示

JavaのCalendarクラスで、フィールド値を取得する際に、どうしてgetメソッドを使用する必要があるのか?

#概要
Calendarクラスにて、フィールド値を取得する際に、getメソッドを使用してフィールド値を取得する必要がある。
ただ、それが何故かわからなかったので、調べた結果をここに記載する。
(少し、冗長になってしまったので、記事全体が分かりにくくなっています。
ただ、記事全文を見なくても、最低限、仮説と結論だけを見れば、意図するところは伝わるように作っています。)

##疑問の経緯
当初の私は、定数SECONDは、public final static int で宣言されているフィールド値であるので、
getメソッドで、わざわざ、SECONDを引数に指定しなくても、
直接、calendar.SECONDで指定すれば、秒数が取得できるのではないかと考えたのだ。

#私の想定したコード
“`Java:正常に動かないコード
public class Main {
public static void main(String[] args){
// 現在時刻を取得
Date now = new Date();
// カレンダークラスのインスタンスを取得(カ

元記事を表示

Javaプログラミング(環境構築、変数の扱い、演算子、データの型変換)

# 最近Javaの勉強を始めたので学習記録を残します:city_sunset:

### 1.Javaの特徴
######・圧倒的求人数
Javaで書かれたプログラムはJVMによってハード ウェアやOSの違いを意識することなく動作させることが できます。(Javaの設計思想:一度書けば、どこでも動く)
→業務システム、スマートフォンアプリ、 WEBシステムなど、 様々な開発現場で使用されている。

######・未経験向き
Javaは大規模なシステムで主に採用されている言語です。 こういった大規模なシステムでは技術力の高さよりも 単純な人手を求めているケースが多く、未経験からでも 挑戦しやすい環境と言えます。

######・基礎が身につく
プログラミングの基礎を抑えた規則正しくキレイなコードが 書ける言語であり、Javaを使いこなせるようになると他の 言語を覚えることが楽になります。 Java以外の案件にも自信をもって臨めるようになります。

### Javaの環境構築(Mac)
以下の2ステップでJavaの開発/実行環境が整います

1.JDKのインストール
開発/実行するための機

元記事を表示

【Kotlin】リフレクションで、kotlin-reflect無しでデフォルト引数を用いて関数を呼び出す

# TL;DR
– `Kotlin`のデフォルト引数付き関数は`Java`のリフレクションからも呼び出せる = `kotlin-reflect`無しでも呼び出せる
– ただし、`kotlin-reflect`無しで呼び出しのための情報を集めることは困難が伴うため、依然として`kotlin-reflect`の削除は難しい

# 本文
## デフォルト引数付き関数がどうコンパイルされるか
まず、デフォルト引数付き関数がどうコンパイルされるかを見ていきます。
例として、以下のようなデフォルト引数付きコンストラクタを取り上げます。

“`kotlin
data class Clazz(val foo: String = “Hello World.”)
“`

このコンストラクタは以下のようにコンパイルされます。

“`java:デコンパイル結果からコンストラクタ部分の抜粋
public Clazz(@NotNull String foo) {
Intrinsics.checkNotNullParameter(foo, “foo”);
super();

元記事を表示

パッケージとアクセス制御

無名パッケージに属するクラスは、同じ無名パッケージに属するクラスからしかアクセスできない。
例えば、下記の2つのクラスは同じパッケージ(無名パッケージ)に属しているためOfficeクラスからPersonクラスを使う事ができる。

“`java
class Person{}

public class Office{
Person p;
}

“`

しかし、下記のように仕様を変更し明示的にパッケージ宣言したクラスから、無名パッケージに属するクラスにアクセスしようとするとコンパイルエラーになる。

“`java
class Person{}

“`

“`java
package ex4; //明示的にパッケージを宣言する

public class Main{
public static void main(String[] args) {
Office office = new Office();
}
}
“`

元記事を表示

SpringFoxでデフォルトのパラメータを追加

たとえば、contollerには定義しないがアプリケーション固有のheaderを渡す必要があり、それをswagger-uiで表示したい場合、“`Docket#globalRequestParameters“`を使用する。

“`gradle:build.gradle
plugins {
id ‘org.springframework.boot’ version ‘2.4.4’
id ‘io.spring.dependency-management’ version ‘1.0.11.RELEASE’
id ‘java’
}

group = ‘com.example’
version = ‘0.0.1-SNAPSHOT’
sourceCompatibility = ’11’

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
implementation ‘org.s

元記事を表示

輪読会:第4回 Javaで学び直すオブジェクト指向プログラミング

こんにちは。
株式会社アクシスのヤマウチです!
弊社の福岡オフィスでは、木金の昼休みの時間を利用して輪読会を行っています。
現在は[Software Design 2021年3月号](https://www.fujisan.co.jp/product/1535/b/2076902/)の「Javaで学び直すオブジェクト指向プログラミング」を読んでいます。

今回は第4回の記事になります。
第4回は第1章 オブジェクト指向プログラミングのメリットから第1章の最後まで読みました。

※以下、オブジェクト指向プログラミングをOOPと略します

## オブジェクト指向プログラミングのメリット

ここでは「再利用性」という言葉が出てきました。
そこがこの節の議論ポイントで色々話したので、それについて書いていこうと思います。

まず結論として、再利用性は**汎用性が高い**とニアリーイコールで、汎用性が高いからこそ、再利用が可能となる。というような感じの結論になりました。
個人的な感想としては、「再利用性」ってワードはOOPの中では聞いたことがなかったので、今回、僕らが出した結論である汎用性の方がし

元記事を表示

JUnitのテストで嵌ったパス指定

# はじめに

今回、Javaでの開発中にテストを行うため、テストクラスを作成しました。
そして、`JUnitCore`の実行を行う際にパス指定を行うのですが、記述方法で躓いたのでまとめておこうと思います。

**~注意~**
開発環境や Shell などの違いで予想と異なる結果の場合があるかもしれません。
下記環境を参照.

# 環境
* macOS 11.0.1
* JDK 11.0.10
* JUnit 4.13.2
* vscode 1.54.3

# 前提条件

Javaプロジェクトの構成

Javaプロジェクトの src 直下に移動
注意:上記のプロジェクト構成の場合

“`
cd ~/Workspace/Java/Project/src
“`

# 問題点

下記を実行するとエラーが出力される。

`

元記事を表示

Javaでオセロゲームを作る

Tech academy サイト参考にJava復習したかったので、オセロゲームを作ろうとしました。

Javaでオセロゲームを作成を現役エンジニアが解説【初心者向け】

Board.javaクラスファイルと
Othello.javaの実行ファイル作成。

だが実行するとシンボルを見つけられませんとのエラーが出る。

シンボルエラーもTech Academyサイトで復習した

Javaのエラー「シンボルを見つけられません」の対処法を現役エンジニアが解説【初心者向け】

が、何故Othelloでエラーが出るのか不明という状態

元記事を表示

[api document] JApiDocsを使って、spring bootのapi documentの自動作成

# 概要
[JApiDocs](https://github.com/YeDaxia/JApiDocs)とはアノテーションを書かなくても、apiのドキュメントを自動生成できるライブラリーだそうです。便利かなと思い、使ってみました。
> A magical api documentation generator without annotation for springboot.

# requirement
* Supported JDK:1.8+
* maven・gradle(今回は Gradle 6.8.3を使います)
* spring-boot cli(Spring CLI v2.4.4)

# OS
macOS

# 手順
## spring-boot cliを使い、spring bootのプロジェクトを作成

“`bash
spring init –build=gradle –java-version=1.8 –dependencies=web japidoc
“`

上記のコマンドを実行し終わると下記のようなディレクトリは作成されました。

“`bash
├──

元記事を表示

JSPファイルを作成してlocalhost環境で動かしてみた日記。

自宅の趣味用PCで**JSPファイルを作成してlocalhost環境で動かす**というのをやってみたくなったのでやってみた。
※この記事は私の自分用の日記みたいなものですので、読む価値があるかどうかはアレです。

# Javaをインストール
Javaをインストールした。超簡単に書くと下記のような流れ。

・ネット上から **jdk-15.0.2_windows-x64_bin.exe** を入手してきてインストール
・ユーザー環境変数のPATHに`C:\Program Files\Java\jdk-15.0.2\bin`を追加
・システム環境変数のJAVA_HOMEに`C:\Program Files\Java\jdk-15.0.2`を追加
・念のためコマンドプロンプトで`java -version`して結果を確認

# tomcatをインストール
こちらの解説サイトの通りに作業した感じ。

【はじめての方向け】Apache Tomcatのインストール方法を簡単に!

今回は`C:\apache-tomcat-9.0.44`に置くことにしたので、
tomca

元記事を表示

【Java】Selenium+ChromeDriverで突然「あなたは人間ですか?」と聞かれた時は

# 突然の死
Seleniumで作ったツールで保存したキャプチャ画像みんなCAPTCHA認証(Cloudflare)になってるやろがい!
先週までちゃんと動いてたのに何で急に認証を要求してくんの!?聞いてないわ!
そんな感じで突然それまで動いてたツールが死んでしまったので、その対処法のメモです。

なお、突然の死が発覚したキャプチャ対象はMavenのリポジトリでした。
手動では閲覧のために認証を必要としない普通のサイトです…

動作確認を行ったChrome本体とChromeDriverのバージョンは以下の通りです。

– Google Chrome: 89.0.4389.90(Official Build) (64 bit)
– ChromeDriver – WebDriver for Chrome:89.0.4389.23

# ソース
“`java
ChromeDriverService service = new ChromeDriverService.Builder()
.usingDriverExecutable(new File(“chromedriver.exe

元記事を表示

Java PDFをPDF/A-1A, 2A, 3A, 1B, 2B及び3Bで保存

PDFにはいろいろな家族があります。例えば、PDF/1Aは、PDFの各種オブジェクトの中で、必須とする機能、使用を制限する機能、使用を禁止する機能などを決めています。今回は Spire.PDF for Javaを使ってPDFをPDF/A-1A, 2A, 3A, 1B, 2B及び3Bで保存する方法を紹介します。コードはとても簡単ですから、一緒にみましょう!

下準備

1.E-iceblueの公式サイトからFree Spire.PDF for Java無料版をダウンロードしてください。

f:id:lendor</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>PDF</div>
<div class='tag-cloud-link'>保存</div>
<div class='tag-cloud-link'>PDFA</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/iceblue/items/00027d36647e2cc20004'>元記事を表示</a></div>
<h3 id= Java PDF添付ファイルの追加

PDF およびそれ以外のタイプのファイルを PDF に添付できます。PDF を別の場所に移動すると、添付ファイルも PDF 文書と一緒に移動します。今回は Spire.PDF for Java を使ってPDFに添付ファイルを追加する方法を紹介します。

下準備

1.E-iceblueの公式サイトからFree Spire.PDF for Java無料版をダウンロードしてください。

f:id:lendoris:20210331103946p:plain

  • OTHERカテゴリの最新記事