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

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

EC2にJavaWebアプリ環境を構築 #4

[EC2にJavaWebアプリ環境を構築 #1](https://qiita.com/harusiso/items/551a0a438c68586eca3d)
[EC2にJavaWebアプリ環境を構築 #2](https://qiita.com/harusiso/items/80ffb3201d65078a4c4d)
[EC2にJavaWebアプリ環境を構築 #3](https://qiita.com/harusiso/items/103760e7ba20ffe2032d)
__EC2にJavaWebアプリ環境を構築 #4__

#目次

__1.はじめに__
__2.プログラム作成__
__3.データベース作成__
__4.動作確認__
__5.アップロード__

##はじめに

* 前回
* インストール作業終了

##プログラム作成

簡単なプログラムを動してみる

eclipse起動

新規→動的Webプロジェクト
今回はプロジェクト名を”sample”にする

Tomcatは10を使用する
プロジェクト作成Java学習 基礎編 mainメソッドとは?

Java学習の備忘録になります。
内容は初心者なので基礎的な部分となります。
Javaに興味がある方やJava学習初心者の参考になれば幸いです。

* * *
#### mainメソッドとは?

Javaのmainメソッドとは、**Javaで処理を実行するときの入り口となるもの**。
いわゆる**エントリーポイント**。
(コンピュータプログラムを実行する際に、一番最初に実行することになっている箇所のこと)
mainメソッドに書かれた処理からJavaの実行がはじまる。

* * *
###### さらに詳しく見ていくと

一般的なプログラミング言語では、プログラムの実行が、どこから・どのようにはじまるかは、大きく以下の2種類にわかれる。

**1.プログラミング言語の仕様で決められた、関数・プロシージャ・メソッドからはじまる**
(C言語、C#、Go、kotlinなど)

**2.プログラムの先頭行から最後の行まで順番に実行されていく**
(Perl、Ruby、Python、PHPなど)

Javaは、上記1ののプログラミング言語になる。
この仕様で決められた関数・プロシージャ・メソッ

元記事を表示

SpringBoot2+JUnit5+DBUnitでREST API(POST)のブラックボックステスト

はじめに

REST API(POST)のテストをController,Service,Daoのレイヤ単位ではなく機能単位でJUnitでテストするために必要な準備、テストケースの作成方法を記載します。

※API単位の試験ならPostman叩いて実行すればいいじゃん!ってなるのですが、
以下の理由によりJUnitで行っています。

– レスポンスのJSON、実行後のDBの状態、機能内で呼び出している外部APIへのリクエストの内容をアサーションしたい
– テストデータを自動登録して実行後は元の状態に戻したい
– 変更が発生しても容易に回帰テストできるようにしたい
– カバレッジを取得できるようにしたい

クラス構成

今回のテスト対象機能のクラス構成は下図の通りです。
![クラス構成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1141594/f472bbd2-67af-2197-74f9-5793dcf2211b.png)
JUnitからRestControllerにリクエストを送信し、実行結果を

元記事を表示

勉強メモ17_Javaの勉強(復習用、つどつど更新)

##はじめてのJava0 はじめに

Java Goldの資格持ってるが、ここ1年、Java触っていないため、
復習の意味をこめて、ドットインストールを使って、念のためJavaを学びました。
学んだ内容のURL
https://dotinstall.com/lessons/basic_java_v3

##はじめてのJava1 Javaを学んでみよう
0、説明
 ・Java にはいくつかの実装があるのですが、今回はオープンソース版の OpenJDK を使っていきます。
 ・Java は移植性に優れた言語で広い業界で使われているのですが、今回初めての Java ということで簡単な数当てゲームを作りながら雰囲気を掴んでいきましょう。

1、実行ソース

“`Java:MyApp.java
import java.util.Scanner;
import java.util.Random;

//Java を実行するには class とその中にメインメソッドが必要とまずは覚えておきましょう。
class MyApp {
public static void main(Strin

元記事を表示

Javaで地図を書く時に使うGeoToolsのリポジトリが変わっていました(←勘違い)

Javaで地図を書きたくてネット上のサンプルを写経したらGeoToolsライブラリがダウンロードできない問題に遭遇しました。
末尾に挙げた「[Gradleを介してGeoToolsdependencisを解決するための正しいURLは何ですか](https://knews.vip/postcrawl/stack/view?site=gi&key=13355981&alias=gradle-o-kaishite-geotoolsdependencis-o-kaiketsusuru-tame-no-tadashii-url-wa-nani-desu-ka)」に記されているとおり依存ライブラリのダウンロード先を変更したら解決しました。

# 遭遇した問題

“`bash
$ ./gradlew build
> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ‘:compileJava’.
> Could not res

元記事を表示

改めてpure javaでHello World

#はじめに
今やどこの開発現場でも何かしらのフレームワーク・ビルドツールを使うのが主流になっているかと思います。が、javacとかいうコマンドを使ってコンパイルする方法、みなさん覚えていますか?(私は覚えておりませんでした)
先日ふと「研修で習ったjavacコマンドってどうやって使うんだっけ?」と思い復習しましたので記録しておきます。

# 基本の流れ

1. javaファイルを作成
2. コンパイル
3. 実行

# さっそくHello World

## javaファイルを作成

Main.javaというファイルを作成しました。
標準出力するだけの簡単な内容です。
![スクリーンショット 2021-03-21 19.16.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395809/9714487f-d49c-b45a-8194-8c9895369296.png)

## コンパイル

先ほど作成したMain.javaをコンパイルします。

コンパイルとは、ソースコードの内容をコンピューター

元記事を表示

EC2にJavaWebアプリ環境を構築 #2

[EC2にJavaWebアプリ環境を構築 #1](https://qiita.com/harusiso/items/551a0a438c68586eca3d)
__EC2にJavaWebアプリ環境を構築 #2__
[EC2にJavaWebアプリ環境を構築 #3](https://qiita.com/harusiso/items/103760e7ba20ffe2032d)
[EC2にJavaWebアプリ環境を構築 #4](https://qiita.com/harusiso/items/5b8c99799efe0a41e7ba)

#目次

__1.はじめに__
__2.インストール__

##はじめに

ざっくり説明するとeclipseで作ったアプリをEC2で動かす

* 前回
* インスタンスの作成が完了

##インストール
__JDK__

開発環境と同じjdk11を使用する
インストールはamazonが提供しているパッケージからおこなう

>__インストール__
>
“`bash
sudo amazon-linux-extras install java-openjdk

元記事を表示

public static void mainとは何なのか(Java学習1日目)

#はじめに
java初学者による備忘録になります。
なにか間違っている事などございましたらご指導して頂けると幸いです。

#エントリーポイントとは

プログラムを開始する場所をエントリーポイント(開始点)と呼びます。
javaのエントリーポイントはmainメソッドです。
mainメソッド=開始点ですから、これが存在しない場合や正しく記述されていない場合は
他のメソッドを使用する事が出来ません。
さて。このmainメソッドですが、定義する為のルールがいくつか存在します。

#mainメソッドを定義する上でのルール

ルールは5つあります。

1.アクセス修飾子はpublic
2.staticメソッド
3.メソッドの戻り値はvoid
4.メソッド名はmain(小文字)
5.メソッドの引数はStringの配列(またはStringの可変長引数1)のみ

上記のルールを守った記述をした場合、以下の様なコードになるでしょう。

“`
class Main {
public static void main (String[] args) {
// 処理
}
}

元記事を表示

実はJrubyはgradleだけで管理できる

# はじめに
Jruby覚えてますか?JRubyはまだ現役です。こういう言語を扱うと必ずと言っていいほど、「javaでいいじゃん」と言われます。確かにJRubyでできることはJVMでできることです。
現状ではRubyが好きな人がたまに使うといった感覚でしょうか。

ですが、私はJrubyでJava開発のテストを書いてます。理由は生産性が高いからです。

この記事では普段Java使いのみなさんがJrubyで楽できるtipsを紹介します。

##依存環境
* gradle
* https://gradle.org/releases/
* Jruby
* https://www.jruby.org/
* jruby-gradle-plugin
* http://jruby-gradle.org/
これだけです。

ですが、全て意識なくていいです。管理はすべてgradleで行います。ここでは一旦、jrubyのコマンドも忘れてしまいましょう。

## 初期プロジェクトを立ち上げる
必要なのは2つのファイルだけです。

“`bash:terminal
mkdir sam

元記事を表示

[Android] Jetpack DataBinding

Android Studio 4.1.3(windows版) での流れとなります

Jetpack DataBindingでボタンイベントを設定する方法を例にして説明します

Android DeveloperのJetpack DataBindingの説明は以下です

https://developer.android.com/topic/libraries/data-binding?hl=ja

## 準備
以下を参考にJetpack Navigation + ViewModelを作成してください

https://qiita.com/smurata_pvt/items/a8454cc635ba693df6b8

## DataBindingを使用するための設定
build.gradleに以下を追加します
DataBindingを有効にするとBindingクラスが自動生成されます

“`build.gradle
android {
dataBinding {
enabled = true
}
}
“`

## ViewModelでの準備
ボタンイベ

元記事を表示

仮引数と実引数

###実引数
渡す値の事

“`Sample.java
List list = new ArrayList<>();
finalSample(list);//これ

add(100,200)//これ
“`

###仮引数
受け取る変数(変数名はなんでもいい)

“`Sample.java
public static void finalSample(List list)//これ
public static void add(int x , int y) //これ

“`

元記事を表示

参照渡し+値渡し+String+オブジェクトの場合+List

###Stringクラスのオブジェクトの場合
Stringクラスのオブジェクトをメソッドに渡した場合、メソッド側の引数には同じオブジェクトの位置が渡されるのは配列と同じですが、文字列変数に新しい文字列を代入するとまったく別の場所にオブジェクトが新しく作成され、その新しい場所の位置がメソッド内の変数に代入されます。その為、元の場所には元の文字列が格納されたままなのでメソッド呼び出し元の文字列には何も影響を与えません。

“`String.java

public static void main(String[] args) {
String str = “abc”;
test(str);//先にここのtext()が実行される
System.out.println(str);
}
private static void test(String str) {
str = “def”;
System.out.println(str);
}
実行
def
abc

“`
###List

参照型の変数の場合は、final修飾子をつけても値の変更が可能になっ

元記事を表示

参照渡し+Method

##参照渡し(引数にアドレスを渡す)
#####基本型変数などではなく配列など引数としてアドレスを渡していることを参照渡し、参照渡しを行うと呼び出し先で加えた変更が呼び出し元にも影響を与える
『配列をメソッド呼び出しで渡すと』
.呼び出し元の配列のアドレスが、呼び出し先の引数にコピーされる
.呼び出し先で配列の実体を書き換えると、呼び出し元にも影響を与える

##値渡し(値そのものが渡されること)
『基本型の変数をメソッド呼び出しで渡すと』
.呼び出し元の変数の内容が、呼び出し先の引数にコピーされる
.呼び出し先で引数の内容を書き換えても呼び出し元の変数は変化しない

##参照渡しと値渡しの例

“`MethodArray.java

public static void main(String[] args) {
int num = 8;
int array[] = {10, 4};

System.out.println(num);
System.out.println(array[0]);

test(num, arra

元記事を表示

Javaアクセス修飾子表

##アクセス修飾子表

時々忘れてしまうことがあるのでメモしておきます。

|アクセス修飾子 |同じクラスからのアクセス |同じパッケージからのアクセス |サブクラスからのアクセス |その他のアクセス |
|:-:|:-:|:-:|:-:|:-:|
|public|〇|〇|〇|〇|
|protected|〇|〇|〇|×|
|記述なし|〇|〇|×|×|
|private|〇|×|×|×|

元記事を表示

血圧測定結果管理プログラムのソースコードを公開いたします

血圧測定結果管理プログラムのソースコードを公開いたします

“`java
//
//
// 血圧記録プログラム
//  新規作成日 2021/03/19(Ver1.0)
// 作成者   乃木坂46好きのITエンジニア
//
//
//
//
//
//

//パッケージの定義
package Ketsuatsu;

//importするAPIを定義
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

//標準入力クラス
class top_ketsuatsudata{
//日付オブジェクトを呼び出す
//Date d = new Date();
//日付フォーマットオブジェクトを呼び出す
//SimpleDateFormat d1 = new SimpleDateFormat(“yyyy/MM/dd”);
//文字列型のデータに

元記事を表示

Java: EasyBuggy – 30分でわかる!SQLインジェクションの脆弱性

# 概要

[EasyBuggy](https://github.com/k-tamura/easybuggy/blob/master/README.jp.md)と[EasyBuggy Boot](https://github.com/k-tamura/easybuggy4sb/blob/master/README.jp.md)を利用して、SQLインジェクションの脆弱性をシミュレーションし、その修正を試みます。

環境構築はこちらの記事から。

https://qiita.com/flyaway/items/4922af5dbaafa1942e88

## 注意事項

本記事では脆弱性をついた攻撃手法について解説しています。

しかし、実際に第三者が運用しているWebサービスなどに対して、勝手に脆弱性の検査をおこなうのは違法行為となる可能性が非常に高いです。無害な検査用文字列を送信しているだけのつもりであっても、意図しない破壊を招いたり、監視システムによって攻撃と勘違いされる可能性があります。

絶対にやめましょう。

参考事例: [脆弱性検査について](https://www.whi

元記事を表示

【Java】AtCoderのABC-196に参加しました(レート:251→220)。

こんばんは。

2021/3/20に、AtCoderのABC-196に参加しました。
レートは以下の通りとなっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402487/ab6cc4f3-dec0-c7cd-d0aa-362baf008a20.png)

https://atcoder.jp/users/ishikawaryou

A,B問題は解けました。
家の都合で40分ほど遅れて参加し、C問題は間に合いませんでした。
すると、、レートは251→221に低下!ぐあっ。
遅れて参加するのは止めた方が良いのか、A,Bをミスなしで解くだけでは下がってしまうのか、どうなのかな。

###A問題
a,b,c,dの4つの数字を入力。
a

元記事を表示

ActivityResultContracts.RequestMultiplePermissions チートシート

最近はパーミッション関連の処理が随分と簡潔に書けるようになったのは嬉しいのだけれども、なにが困るってJavaで書かなければならない時に少し混乱することがあるのでチートシートとして :scroll:

– [ActivityResultContracts.RequestMultiplePermissions  |  Android Developers](https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContracts.RequestMultiplePermissions)
– [Getting a result from an activity  \|  Android Developers](https://developer.android.com/training/basics/intents/result)

## Java

“`java
private final ActivityResultLauncher reque

元記事を表示

forwardPath+URL?action=”done”の条件分岐

URL?action=”done”で受け取ればelse if(true)
action次第fowardPathの行き先変更

“`forwardPath_action.java
String forwardPath = null;
String action = request.getParameter(“action”);

if(action == null) {
forwardPath = “/WEB-INF/jsp/registerForm.jsp”;
}else if(action.equals(“done”)){
forwardPath = “/WEB-INF/jsp/registerDone.jsp”;
}
RequestDispatcher done = request.getRequestDispatcher(forwardPath);
done.forward(request, response);
}
“`

元記事を表示

JavaにおけるDB操作(その2)

[この記事](https://qiita.com/zaburo/private/b8c2ab8db7b972d614e7)の続き。
長くなるので分けました。Hibernate(JPA)による操作。とりあえずは動いたがいまいち構成や依存関係がわからない。

## 事前知識(段取り)

Hibernateを利用する場合、おおよそ下記のものを作ることになるらしい。
Javaの世界は不慣れなので表現とかが間違ってるかもしれない。

* hibernate.cfg.xml(DBの接続情報やクラスのマッピング等を指定)
* Modelクラス(DBテーブルと対応するクラス)
* SessionFactory(Config)クラス(xmlから設定を読み込んで利用できる状態にする?っぽい)
* 実行ファイル(App.java)

## 準備

### テンプレート生成

まずはテンプレートの生成。quickstartで特に問題ない。

“`bash
mvn archetype:generate \
-DarchetypeArtifactId=maven-archetype-quickstart \

元記事を表示

OTHERカテゴリの最新記事