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

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

Macでインポートする際、Gradleビルドが止まってしまう時

# 発生している問題・エラーメッセージ
表題の通りSTSでSpringbootを使用したアプリケーションの作成時にインポートをする際、
ビルド中に固まってしまい、STSが完全に止まってしまった。
エラーメッセージを見てみると

“`
org.gradle.tooling.BuildException: Gradle distribution ‘https://services.gradle.org/distributions/gradle-5.4.1-bin.zip’ を使用してビルド・アクションを実行できませんでした。
“`
が出てくる。

#結論
https://stackoverrun.com/ja/q/11329562
スクリーンショット 2020-05-21 16.01.59.png

こちらの回答

元記事を表示

DaprでRubyとJavaを連携させてみる

## はじめに

[マイクロサービス開発を容易にするDaprをJavaで利用してみた](https://qiita.com/koduki/items/bf50cb3aa14b88243ad2)に引き続きDaprです。

[チュートリアル](https://github.com/dapr/samples/tree/master/1.hello-world)のStep6に相当します。
コードは下記を参照
https://github.com/koduki/example-dapr/tree/v01

## 構成概要

チュートリアルではPythonですが、趣味の問題でRubyを使っています。
この構成のポイントはRubyとJavaは直接通信しないどころはRubyはあくまで自分のサイドカーのDaprと話すのであってJavaを起動しているDaprとは直接話さないことです。

![dapr_sample01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54904/9de0ce94-b09b-966e-d76d-

元記事を表示

StringBuilderメモ

可変な文字列であるStringBuilder。文字列を高速に連結するのに使うらしいです。
今回もStringBuilderのメソッドを使用して、使い方を学んでいきます。

#append
appendを使って文字列の追加処理が可能です。
boolean型、char型、String型、配列などいろんな型を文字列として追加することができます。

“`java
StringBuilder sb = new StringBuilder(“おはよう”);

//boolean
boolean bool = true;
System.out.println(sb.append(bool));

//char
char c = ‘A’;
System.out.println(sb.append(c));

StringBuilder sbr = new StringBuilder(“Aさん”);

//配列
String[] str = {“こんにちは”,”おやすみ”};
System.out.println(sbr.append(str[0]));
System.out.println(sb

元記事を表示

[Spring Boot] ページング処理簡単レシピ

# 環境

言語 : java 1.8
フレームワーク : spring boot 2.2.4.RELEASE (spring-boot-starter)
テンプレートエンジン : thymeleaf 2.2.4.RELEASE (spring-boot-starter)
データベース : H2 1.4.200 (spring-boot-starter)
orm : data-jpa 2.2.4.RELEASE (spring-boot-starter)

# ソースコード

**Entity**

“` java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Board {

@Id @GeneratedValue
private String id;

private String title;

private String user;

// Gett

元記事を表示

Ruby Python Java 大文字小文字を区別しないソート

# はじめに
ソートと言えば、数値順・辞書順ですが、それ以外のソートについて調べてみました。
# 嵌った話
@jag_507 さんの*[AtCoderでRuby学習10【第一回アルゴリズム実技検定 DoubleCamelCase Sort】](https://qiita.com/jag_507/items/5cc3e09121679ef48f51)*を読んで、*[AtCoder 第一回アルゴリズム実技検定 F – DoubleCamelCase Sort](https://atcoder.jp/contests/past201912-open/tasks/past201912_f)*をやってみましたが、ソートがうまくいかないです。

“`sort.rb
a = [“FisH”, “DoG”, “CaT”, “AA”, “AaA”, “AbC”, “AC”]
a.sort
# => [“AA”, “AC”, “AaA”, “AbC”, “CaT”, “DoG”, “FisH”] # 実際の返り値
[“AA”, “AaA”, “AbC”, “AC”, “CaT”, “DoG

元記事を表示

Java volatileを使用した際の性能影響について検証

#概要
volatileを使用した際の性能影響について検証したメモページ。

#volatileとは
フィールドに付ける修飾子。
マルチスレッドのプログラムの場合に、スレッドがフィールドの値をキャッシュする可能性がある。
volatileを付けると、キャッシュの対象外にすることができる。
(本ページではvolatileの役割についての詳細は割愛。)

#性能検証
##性能検証に使用した環境
**マシンスペック**
CPU:Intel(R) Core(TM) i5-2400S CPU
RAM:8GB
OS:windows10 64ビット

**実行環境**
Eclipse(2020-03 (4.15.0))
Java8

##volatileを使用した場合の性能
volatileを付与した状態で、int型のフィールドを1億回カウントアップする処理の時間を計測。

“`java
private volatile int cnt = 0;

private long exe() {

long start = System.currentTimeMillis

元記事を表示

Javaのクラスの使い方や定義、import

###他クラスのメソッドの呼び出し
クラス名.メソッド名()とすることで、クラスのメソッドを呼び出せます。
【例】

“`Main.java
class Main {
public static void main(String[] args) {
Person.hello(); //Personがクラス名でhelloがメソッドです
}
}
“`

“`Person.java
class Person { //Personがクラス名です
public static void hello() { //helloがメソッドです
System.out.println(“おはよう”);
}
}
“`
上記のようにMain.javaのPerson.hello();でPerson.javaのPersonをクラスを呼び出します。
ちなみに、クラスの定義は「class クラス名」となります。
クラス名の最初の文字は大文字にし、ファイル名は「クラス名.java」に必ずします。
【例2】

“`Main.java
public class Main {

元記事を表示

Spring Boot で簡単RESTful APIを作成する

# 目的

RESTってなんだかお堅いイメージ?があるかもしれませんが、実のところシンプルで使いやすいインタフェースだと思います。
実際、WebAPIではよく使われていますね。利用することは多いけど作るのはなんだか大変そう。。でも実は、アプリケーションフレームワークを使用するとこういうデザインパターン系はとても**楽に**造れたりします。

そこで、ここではSpring Boot を使用して**簡単に**RESTful APIを作成してみたいと思います。インタフェースを作るだけだと使いどころが分かりにくいので、Androidアプリから利用する部分もちょっとだけ載せます。

## そもそもRESTって

RESTって技術書なんかでは難しく解説していたりするけど、私の理解ではHTTPサーバーによってリソースを出し入れするインタフェースを提供することだと思っています。
そうするとWebAPIはみんなREST?ってことになりますが、ステートレスでシンプルなリソースであることがRESTの特長。つまりSQLみたいにHTTPのリクエストを使用するってことですね。

RESTに出し入れするデータのフ

元記事を表示

【JavaServlet】千里の道も一歩から 一歩目

#Servletとは
WebアプリケーションをJavaで実現するための仕組み
#Webアプリケーションとは
会員制のサイトを例に挙げる

1. クライアント(PCやスマホ)に、ユーザ情報を入力してログイン
2. サーバーが、送られてきたユーザ情報を受け取る
3. データベースなどを利用してユーザやパスワードが合ってるか確認する
4. 合っていたらマイページを表示、間違っていたらログイン画面に戻してエラーメッセージを表示

ざっと下のようなイメージ
servlet2.png
サーバーに送る情報を「リクエスト」、サーバーから送られてくる情報を「レスポンス」という
また、クライアントの画面はHTMLではなくjspと呼ばれるファイルで構成される(中身はほぼHTMLと同じで、javaのコードも書くことが可能)
#プロジェクト

元記事を表示

AtCoder【PracticeA】技術メモ

#はじめに
*AtCoder*を始めたので、わからないことをメモしていく
関西弁に憧れを抱いているので関西弁を使用

#Scannerクラスとは?
標準入力を取得するクラス
取得した入力情報を使って何か処理をしたいときや、対話型のプログラムで使用

“`
Scanner scanner = new Scanner(System.in);

System.out.println(“何か入力してや”);

String input = scanner.nextLine();

System.out.println(input + “が入力されたで”);

scanner.close();
“`
これを実行すると…

“`
何か入力してや
“`
と表示され、
「おはよう」と入力すると

“`
何か入力してや
おはよう
おはようが入力されたで
“`
と表示される

#解説
Scannerクラスのインスタンスを生成し、引数にSystem.inを指定

*System.in*…InputStreamのオブジェクトで、標準入力(通常はキーボードからの)のこと

next

元記事を表示

Eclipseを使ってJavaからMySQLへ接続する

JavaでMySQLを操作する方法について解説していきます。
今回はWindows環境にXAMPPをインストールしてMySQLを使用します。

#事前準備
・JDKのインストール
・Eclipseのインストール
・XAMPPのインストール
・JDBCドライバの準備

#Eclipseの準備
###1.Javaプロジェクトを作成
左上の**「ファイル(F)」>「新規(N)」>「Javaプロジェクト」** で今回使う新規プロジェクトを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581663/d40734fa-f721-256a-7a8f-0553b39a8afa.png)
プロジェクト名はわかりやすく**「MysqlTest」**とでもしておきましょう。**「完了(F)」**をクリックして作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581663/2d942a4

元記事を表示

Javaのデータ型(特にプリミティブ型)とリテラルについて

Oracle Java Programmer,Silver SE11認定資格取得に向けて学習を開始しました。
その中で出てきたデータ型に関するまとめを行いたいと思います。
間違っている等、指摘事項あればご教示いただけると幸いです。

#プリミティブ型
|型|分類||
|———|———————-|————–|
|boolean|論理型|True/False|
|char|文字型|16ビットUnicode,¥u0000~¥uFFFF|
|byte|整数型|8ビット整数,-128~127|
|short|整数型|16ビット整数,-32768~32767|
|int|整数型|32ビット整数,-2147483648~2147483647|
|long|整数型|64ビット整数,-9223372036854775808~9223372036854775807|
|float|浮動小数点型|32ビット単精度浮動小数点型|
|float|浮動小数点型|64ビット倍精度浮動小数点型|

#参照型
参照型にはクラス型、インターフェース型、配列型と言っ

元記事を表示

沈思黙考:自分で作る関数に関数型インタフェースを活かす方法(java)

## 初めに

streamなどでラムダ式を使うことはできても、自分で作る関数に関数型インタフェースを活かすことができない方がいるかもしれない。
そんな方にむけて、簡単な例を使って、自作関数への関数型インタフェースの適用方法を紹介したいと思う。

## 例題

あるオブジェクトのプロパティを別のプロパティにコピーすることは、よくあることだろう。
その際、プロパティの値がnullでない場合だけ、コピーするという条件がつくこともよくあることだ。
そして、この例題のように、様々な型プロパティのコピーがずらっと並ぶこともよくある。
このようにコピペで対応してもよい場合もあるだろうが、少し工夫をしたい。
次のコードに対し、共通関数を作って呼び出しを簡素化しよう。
なお、getName()はStringを返し、setName()は、Stringをセットする。
getFlag()はBooleanを返し、setFlag()は、Booleanをセットする。

“`java
if(objA.getName()!=null) {
objB.setName(objA.getName());
}
if

元記事を表示

JVM JITコンパイラの仕組み

JVMのJITコンパイラの仕組みを勉強したことをまとめていく。

## 環境
– macOS Mojava 10.14.4
– jvm version 1.8
– 64bit
– Scala 2.13.1

“`shell
~/workspace/$ java -version
openjdk version “1.8.0_222”
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)
“`

## JITコンパライトとは

Just In Timeコンパイラのことで、JVM上に実装されているコンパイラである。
Just In Timeの通り、「必要な物を、必要な時に」コンパイルするコンパイラのこと。

## JVM上での実行までの流れ

めっちゃ大まかに言うと、以下の流れ

“`
ソースコード -> コンパイル -> 中間コード -> 実行(コンパイル)
`

元記事を表示

java(抽象クラス)

##抽象メソッドを含むクラスの宣言

#####abstract(アブストラクト) = 抽象メソッド

“`java:Character.java
public abstract class Character { //抽象クラスとして宣言
String name;
int hp;
public void attack(Matango m) {
}
}
“`

**抽象クラスは、newによるインスタンス化が禁止される**
 ・`newによる利用`と`継承(extends)による利用`を区別できる

##attack()を抽象メソッドとして宣言

“`java:Character.java
public abstract class Character {
String name;
int hp;
public abstract void attack(Matango m); // {}を付けず、;(セミコロン)を書く
}
“`

**抽象メソッドは「現時点で何をするか確定できないメソッド」として区別**
 ・「何もしない」と「

元記事を表示

Iteratorメモ

Iteratorの使い方を簡易的に残します。
今までIteratorについて触れてこなかったのですが、頻出らしいので基本的な使い方についてはまとめておこうと思った次第です。

#Iterator

“`java
//リスト初期化
List list = new ArrayList<>(Arrays.asList(“apple”,”banana”,”orange”,”fish”));

//Iteratorの宣言
Iterator iterator = list.iterator();

//IteratorのメソッドhasNext()を使用してループ処理
//hasNext():反復処理でさらに要素がある場合にtrueを返します。
while(iterator.hasNext()) {
//Iteratorのメソッドnext()で要素を取り出す
//next():反復処理で次の要素を返します。
String str = iterator.next();

if(str.equals(“banana”)) {
//Iteratorのメソッドre

元記事を表示

java(is-a原則の継承)

##is-aの関係

**SuperHero(子クラス)はHero(親クラス)の一種である**
**抽象的なクラス(親クラス)と具体的なクラス(子クラス)の関係**

##has-aの関係
**HeroはSwordを持っている**

##参考にした画像

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/588091/ccf44e8f-b8cc-3661-7b8e-fff1d6db3a07.png)

元記事を表示

初心者によるオブジェクト指向まとめ (Java)

#はじめに
研修で学んだオブジェクト指向について、自分用のメモのつもりで書きました。
詰まったり調べたりした内容を自分なりに咀嚼してまとめています。

#内容
・クラス
・インスタンス
・メンバ変数
・メソッド
・コンストラクタ
・クラス変数(static変数)
・継承
・オーバーライド

#ざっくり説明
・クラス:ひな型、テンプレート(ex. 人間)
・インスタンス:クラスをもとにつくられた実体(ex. Aさん、Bさん、… )

・メンバ変数:インスタンスの属性(ex. 体力、知力、年齢)
・メソッド:インスタンスのできる動作(ex. 歩く、挨拶する)
・コンストラクタ:メンバ変数の初期設定

・クラス変数(static変数):クラスの属性(Aさんのデータを書き換えるとAさんのデータもBさんのデータも同じように変更される)

・継承:クラスを派生させたとき、もとのクラス(スーパークラス)の機能も使える仕組み
・オーバーライド:クラスを継承するときに、スーパークラスのメソッド(処理)を、サブクラスにおいて再定義(上書き)すること

#例

下の方に、クラス・インスタンス・継承などの関係

元記事を表示

Java – 画像ファイルをバイナリで比較する方法

# 画像ファイルの比較

## 比較元ファイル
素材はPhotoACから拝借しました。
コピー元画像:PCを持つ女性
![woman_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190809/830346c8-28f5-6782-a4c7-4d9e5840fccb.jpeg)

## コピーしたファイルとの比較(True)
コピー元ファイルをコピーしただけのファイル。
バイナリデータに差異が無いため、比較結果はTrueになる想定。
![woman_1_copy.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190809/d763accc-b1e7-affd-5751-be5b1dd0d708.jpeg)

## 比較元ファイルをわずかに編集して比較(False)
コピー元ファイルをコピーした後、わずかに編集したもの。
顔の右側にある、小さな黒いドットが編集箇所。
編集したため、比較結果はFalseになる想定。
![

元記事を表示

Apache DerbyをEclipse上で使う方法

# はじめに

以前に書いた[【Eclipse】DBViewerのインストール](https://qiita.com/nkojima/items/2a865b819071e7943761)の続きとして、DBViewerを使ってApache Derbyを使う方法をまとめてみました。

# Apache Derbyとは

* Javaで作られたRDBMS。
* OracleやMySQLのような「クライアント/サーバーモード」と、SQLiteのような「組み込みモード」の両面を併せ持つ。

# Apache Derbyの用意

## ダウンロード

* [Apache Derbyのサイト](https://db.apache.org/derby/)から、JARファイルをダウンロードします。
* [ダウンロードページ](https://db.apache.org/derby/derby_downloads.html)を見ると、Javaのバージョンに応じて利用可能なApache Derbyのバージョンが異なるため、手元のJavaのバージョンを確認した上でダウンロードします。
* 私の場合は手元の

元記事を表示

OTHERカテゴリの最新記事