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

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

【対処法】protocol is disabled or cipher suites are inappropriate エラーが出た

#目次
[現象の説明](#現象の説明)
[解決手順](#解決手順)
[参考](#参考)

# 現象の説明
docker-compose up でコンテナを起動します。
その後、ローカル環境でアプリケーションにアクセスしようとしたら以下のエラーが出ました。

“`
com.microsoft.sqlserver.jdbc.SQLServerException:
The driver could not establish a secure connection to the server.
Reason: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
“`

# 解決手順
ポイント:java.security ファイルを修正するだけ

* docker-compose up した後、まずコンテナに入ります。
`docker exec -it [コンテナ名] /bin/bash`

* java.security ファイルのあるディレクトリまで移動します

元記事を表示

[Java基礎③]データの変換(キャストする)整数→実数 文字列→整数

初めに

Java学習3日目です。今回は、データ型の変換について学びました。

データ型の変換をデータのキャストと言うそうです。

小数点あり→整数型

double型の3.14と定義した値を3と表示します。

“`perl:コード
public class Main {
public static void main(String[] args) {
double number1 = 3.14;
System.out.println((int)number1);
}
}
“`

整数を小数点ありに変換

“`perl:コード
public class Main {
public static void main(String[] args) {
double number1 = 3;
System.out.println((double)number1);
}
}
“`

文字列を数値に変換

“`perl:コード
public class M

元記事を表示

== operator for String object in Java

First please read [this](https://qiita.com/saladlam/items/c867416f9b0db83b5e1d) if you don’t sure how to use == operator for object.

# Example from The Java® Language Specification

Got from [here](https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.5).

“`Java
package testPackage;
class Test {
public static void main(String[] args) {
String hello = “Hello”, lo = “lo”;
System.out.print((hello == “Hello”) + ” “); // (1)
System.out.print((Other.hell

元記事を表示

消費税

TAX_RATE =0.8;

元記事を表示

== operator for object in Java

In past I don’t understand why code in inner block doesn’t run.

“`Java
if (new Integer(1) == new Integer(1)) {
doImportantJob();
};
“`

Since “==” operator for object means if both objects point to the same memory location. The code above means two Integer(1) object is created, of course two sides must point to different memory location.

元記事を表示

Salesforceアプリを起動して取引先情報を表示する方法(for Android)

ところで、Androd開発では、別のアプリを起動する処理を書くことが多いですね。

公式ドキュメントの[別のアクティビティを開始する](https://developer.android.com/training/basics/firstapp/starting-activity?hl=ja)を一読すれば、コード自体は簡単に書くことができます。

“`java:Javaで別アプリを起動する処理
Uri intentUri = Uri.parth(“[Intentに渡すための文字列]”);
String packageName = “[起動するアプリのpackage名]”;
String className = “[起動するアプリのClass名]”;
intent.setClassName(packageName,className);
Intent intent = new Intent(Intent.ACTION_VIEW, intentUri);
startActivity(intent);
“`

“`kotlin:Kotli

元記事を表示

Java PDFファイルにパスワードを設定とそれを解除

機密情報を扱ったりする方は、セキュリティ保護に気をつかわなくてはならないでしょう?それに時々、PDFをパスワードで保護しよう!ってこと結構ありますよね。従って、今からfree Spire.PDF for Javaという無料のライブラリを使ってPDFファイルにパスワードを設定、そしてパスワードを解除する方法を紹介いたします。

下準備

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

f:id:lendoris:2021</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'>パスワード</div>
<div class='tag-cloud-link'>解除</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/iceblue/items/9301fd1a48580a368997'>元記事を表示</a></div>
<h3 id=JavaでTCP通信によるデータ送受信

# TCP通信特徴

* [3ウェイハンドシェイク](https://www.infraexpert.com/study/tcpip9.html)
* クライアントとサーバーでの通信

# データー送信側(クライアント)

Socket クラスでデータ送受信を行う。
`Socket sock = new Socket(IPアドレスまたはホスト名,ポート番号);`

“`Client.java
package com.maekawa.base;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;

public class Client {
public static void main(String[] args) throws IOException {
Socket socket = null;
OutputStream os = null;
try {

元記事を表示

SpringBootAppricationをWarファイル化してサーバーのTomcatにデプロイする方法

##SpringBootAppricationをwarファイル化
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto.traditional-deployment.war

|順番|結果|
|—-|—-|
|extends△△ implements◆◆◆|〇|
|implements◆◆◆ extends△△|コンパイルエラー|

“`:コンパイルエラー
public class CmsApplication implements WebMvcConfigurer extends SpringBootServletInitializer {
}
“`
“`:正解
public class CmsApplication extends SpringBootServletInitializer implements WebMvcConfigurer {
}
“`
##ポイント
* extends SpringBootServletInitializer
* configur

元記事を表示

【JPA】JPQL徹底入門

JPQL (Java Persistence Query Language) は JPA で利用できる SQL ライクなクエリ言語です。JPA を採用したプロジェクトでの検索処理は

– Spring Data JPA の Specification
– Query DSL
– Criteria API

などを利用することも多いですが、これらのライブラリ・API の動作を深く理解するには JPQL の理解が必須です。JPQL では Update / Delete を行うこともできますが、この記事では 利用頻度の高い検索処理に限って解説していきたいと思います。

## 前提

この記事で解説するコードとサンプルデータは [GitHub](https://github.com/sooogle/jpademo) に push してあります。

### サンプルコード

– サンプルコードは、Spring Boot のテストコードとして Java11 で実装しています。パッケージは [こちら](https://github.com/sooogle/jpademo/tree/main/src/

元記事を表示

[Java基礎②]西暦から平成を出す 自動的に現在の年を取得(import java.util.Calendar)

初めに

Java学習開始2日目です。
今回は、西暦から平成を出すプログラムを作成しました。

“`
public class Main {
public static void main(String[] args) {
int seireki = 2015;
System.out.print(“西暦” + seireki + “年は”);
int heisei = seireki – 1988;
System.out.print(“平成” + heisei + “年です”);
}
}
“`
「system.out.print」で改行されないようにしています。

自動的に現在の年を取得

以下のCalendarの使用方法については理解できていませんが、
以下のように記述することで、自動的に現在の年を取得できるそうです。

“`
import java.util.Calendar;
public class Main {
public static void main(Stri

元記事を表示

Eclipse と Github を連携する方法 ~ パーソナルアクセストークン の 使用方法 ~

# 2021/8/13以降、Eclipse から Github を使う方法 

Githubは **2021/8/13** 以降、[パスワード認証でGit操作ができなくなり](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/)ました。

これにともない Eclipse の Gitクライアント(EGit) でパスワード認証をしていた場合は、パーソナルアクセストークンを利用したものに変更する必要があります。

– 環境: **Eclipse 2021-06**

## Github でパーソナルアクセストークンを発効する

– メニュー > **Settings** を選択する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/170905/a9521aab-0037-c624-0076-efd27274f6e9.png)

– **Developer settings*

元記事を表示

ランダムな整数

##目的
ランダムな整数を生成したい。

##使い方
###①Randumクラスをインポートしてインスタンス化。
Randum rm = new Randum();

###②nextInt()メソッドの呼び出し
rm.nextInt();
※少数ならdoubleやint
###③整数の範囲を指定
引数に指定した数の範囲の数が生成される。

“`
//引数に10を指定した場合は、0〜9の10個の数字。
//引数に6を指定した場合は、0〜5の6個の数字。

rm.nextInt(10);
“`

###④ランダムの数字をプログラムに当てはめる

“`
//500、100、50、10、5、1の6個の数字を格納したint型の配列をランダムに出力するプログラム
int coinCase[] = new int[6];
coinCase[0] = 500;
coinCase[1] = 100;
coinCase[2] = 50;
coinCase[3] = 10;
coinCase[4] = 5;
coinCase[5] = 1;

Randum rm = new Randum();
in

元記事を表示

オーバーライドとオーバーロード

##オーバーライド
親クラスで定義したメソッドを子クラスで子クラス専用のメソッドに書き換えること。

###使い方
Animalクラスを継承したDogクラスでAnimalクラスのSpeakメソッドを書き換える。

“`java
public class Animal {
public void Speak(){
System.out.println( “……” );
}
}
public class Dog extends Animal{
//オーバーライド
public void Speak(){
System.out.println(“わんわん”);
}
}
“`

###約束ごと
引数、型、メソッド名が全て同一でないとオーバーライドできない。

##オーバーライド
引数の違いによって同一のメソッドを呼び出した時に違う処理をさせる

##使い方
引数が一つある場合はの処理と2つある場合の処理。

“`java
public class Animal{
public void Speak(int i){

元記事を表示

未経験入社4ヶ月目でJava Gold11に合格した話

2021年4月の下旬にJava shilverを取得したのですが、Oracleの再受験無料キャンペーンがあったのでJava Goldも受験してみようと思ったのが受験のきっかけです。
あとは給料が上がるという不純な理由もありました^^;
案の定1回目は不合格だったので、2回目で合格ということになりました。
##受験時のスペック
**1回目受験の時**
受験したのが5月下旬だったので、入社からもうすぐで2ヶ月になろうかというところでした。
研修ではJavaのサーブレットやJSPを用いてTODOアプリを作っていました。
**2回目受験の時**
受験したのは7月中旬だったので、入社してから3ヶ月半が経過していました。6月からフロントエンドの開発に携わったので、業務でJavaを使うことはなくなりました。
なので、業務時間以外で勉強を進めていきました。
##使用したもの
①https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5-Java-Gold-%E5%95%8F%E9%A1%8C%E9%9B%86-1Z0-809/dp/429

元記事を表示

Javaマルチスレッド

# なんでマルチスレッド使う

例えば、複数なユーザーがバイクレースゲームするとし、みんながそれぞれログインして、見てる画面が同じとか、ウィブで記事を見ながら音楽も聴けます、トイレしながらスマホをいじったりとか。こいうような複数な処理を行うのがマルチスレッドの役割です。

ご存知のように、javaのプロジェクト一つにあたり、メインメソッドが一つしかない、じゃ上記の場合には複数のメインメソッドが必要になりますね。

↑を解決するために、マルチスレッドを使います。

# マルチスレッド作成種類

作成するのに以下の三種類があります。

## thread(重要)

以下三つのステップでスレッド作れます。
①Threadクラスを継承する
②runメソッドをオーバーライドする
③startでスレッド開始する

[Threadクラスドキュメント](https://docs.oracle.com/javase/jp/8/docs/api/)

“`java:ThreadTest.java
package com.maekawa.base;

//Threadクラスを継承する
public cla

元記事を表示

ソート処理について

現場でたまにソートして出すという要件があります。
その時に毎回「どうやるんだっけ」となってしまうので、簡単に記事にしようと思います。

##配列の場合
これは簡単です。
Arraysクラスの**sort**メソッドを使用します。
昇順の場合は、

“`java:Shojun.java
int[] numArray = {3,2,5};
// Arraysクラスのsortメソッドに並び替える配列を渡す。
Arrays.sort(numArray);
// ソートした配列を出力
Arrays.stream(numArray).forEach(System.out::println);

// 出力結果 2 3 5
“`

降順の場合は、**sort**メソッドの第二引数にCollections.reverseOrder()を指定します。
ただし、int型配列を並び替えるメソッドは用意されていない為Integer型にすると良いでしょう。

“`java:Kojun.java
Integer[] numArray = {3,2,5};

元記事を表示

[Java基礎①]サイコロを作る(ランダムな値の出力)Math.random() 型変換/変数の定義

初めに

今回はJavaでサイコロを作りつつ、Javaでの変数の定義方法を
学んでいきます。

コード

“`
public class Main {
public static void main(String[] args) {
double rand = Math.random() * 6 + 1;
int number = (int)rand;
System.out.println(“サイコロの目は” + number + “です。”);
}
}
“`
これを実行するとランダムに「サイコロの目は◯です。」と表示されます。

“`double rand = Math.random() * 6 + 1;“`
doubleで変数の型を宣言しています。
“`doubleは、小数点以下の数値です。“`

続いて、“`Math.random()“`はランダムな数を出力するメソッドです。
“`* 6 + 1“`は、何個の数字を取り出すか(6)、いくつからスタートするのか(1)を表します。
今回の場合1〜6と言うことです。

元記事を表示

【実践!Java】Stream APIをちゃんと理解する

# ■ Stream APIとは
Stream APIは、Listや配列を簡単に操作することができるイテレーションの拡張API。
例えば、for文でListから条件に合う値を取得する処理などはStream APIを使うことでよりシンプルに書くことができる。

大きく分けて以下の3つの操作を行う。
➀ Streamを生成

➁ 中間処理(省いてもOK)

➂ 終端処理

# ■ Stream生成
配列からストリーム生成

“`java
Arrays.stream(配列のdata)
“`
listからストリーム生成

“`java
list.stream()
“`

mapからストリーム生成

“`java
map.entrySet().stream()
“`

# ■ 終端処理

生成したストリームを集計し、結果を返す処理。
簡単な処理であれば中間処理を省いて終端処理だけで実装できるため、先に紹介。

## 代表的なメソッド

| メソッド | 概要 |
|:————|:————: |
| anyMatch() | 少なくとも一

元記事を表示

Spring Data JDBCで1対多テーブルを結合して取得する方法

#はじめに
Java言語初学者ですが、SpringBootフレームワークを使用してSQLを操作する際に、
1対多のテーブルを結合した結果を取得する方法でハマったため、
1対1のテーブル結合の方法と、1対多のテーブル結合の方法を比較したメモとして残します。

#環境
|OS|version|framework|使用環境|
|:—:|:—:|:—:|:—:|
|windows10|Java11|spring boot|Spring Tool Suite 4|
・Java11でSpring Data JDBCを使用できる状態
・動作するデータベース用意済み
・1対多の関係でテーブルを2つ作成済み
・テーブルにデータを格納済み

※今回の説明では「clabs」、「members」で記載します。

※また今回はテーブル結合方法の説明の為必要最低限の記載だけします。(importなどは省略)

#1対1のテーブルを結合して取得する方法
1対1のテーブルを結合してデータを取得する際は以下の方法を使用します。

※1対1のテーブル説明の為、1つのクラブには1人しか入れないこととします。

元記事を表示

OTHERカテゴリの最新記事