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

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

eclipse Javaソースコード入力する際、自動補完トリガーの有効化設定(auto activation triggers)

##eclipseの自動トリガー補完
eclipseを使用するメリットの一つは、Javaソースコード入力する際に、自動補完トリガー機能です。しかし、普段の操作で、「.」を入力した後に効きますが、それより、もっと活用させたい時の設定方法がありますでしょうか。
![01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609143/46a2270f-cb97-09c9-28a1-da8d23d28bc1.png)
##設定手順
eclipse > ウインドウ(W) > 設定(P)
![02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609143/fe02b426-1bfc-22b0-a4da-4831e74ae068.png)

Java > エディター > コンテンツ・アシスト > 自動有効化 から設定する
![03.PNG](https://qiita-image-store.s3.ap-northeast-1.ama

元記事を表示

Heapdump/Javacore 解析

## Memory Analyzer
https://www.eclipse.org/mat/

## IBM Heap Analyzer
https://www.ibm.com/support/pages/ibm-heapanalyzer

## IBM Thread and Monitor Dump Analyzer for Java (TMDA)
https://www.ibm.com/support/pages/ibm-thread-and-monitor-dump-analyzer-java-tmda

## IBM Pattern Modeling and Analysis Tool for Java Garbage Collector (PMAT)
https://www.ibm.com/support/pages/ibm-pattern-modeling-and-analysis-tool-java-garbage-collector-pmat

## 参考
[Java開発の性能改善! その3 ヒープダンプを取ろう](https://qiita.com/i_matsu

元記事を表示

(小ネタ)今更言うほどでもない数値→アルファベットの簡単な変換方法(Java)

# TL;DR
数値をcharにキャストすることで、簡単にアルファベットに変換できる

# 実践
### 具体的なコード1
“`java:Main.java
public class Main {
public static void main(String[] args) throws Exception {
for (int i = 0; i < 26; i++) { System.out.print((char) (97 + i) + " "); } } } ``` ### 具体的なコード2 ```java:Main.java public class Main { public static void main(String[] args) throws Exception { for (int i = 0; i < 26; i++) { // こんな書き方もできる ** System.out.print((char) ('a' +

元記事を表示

springbootでのアプリ作成につきまして

今、以下の機能を有するアプリの作成しています。
 ・データの入力、登録
 ・登録データの一覧表示
 ・登録データの削除
 ・登録データの曖昧検索

上記のうち、曖昧検索だけがいまだにエラーなどでできていない状態になっています。

どこをどのように修正すれば、エラーが解消し、検索機能が動くようになるかご教示頂けますでしょうか。
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
データベース
 sp→観光地を入れる変数(String型)

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

コード
//MyDataRepository.java

package com.example.demo;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;

import org.springframework.stereotype.Repository;

@Repository

pu

元記事を表示

IntelliJでJava SpringBootのプロジェクトを作成

# はじめに

IntelliJ IDEAでSpringBootのプロジェクトを作成する手順を整理します。
今回はJava、Gradleを利用します。

# 手順

## プロジェクト作成

IntelliJを起動して**Create New Project**をクリックします。

![スクリーンショット 2020-06-19 0.06.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/e9d922b9-262d-b86b-f40b-cae75571f479.png)

Gradle、Javaを選択して**Next**をクリックします。

![スクリーンショット 2020-06-19 0.13.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81113/e5e234f5-e245-2bbc-1543-e998ce4f0ddf.png)

SprintBootTestとしてプロジェクトを作成します。

!

元記事を表示

Spring Initializr を使って爆速でHello World!!!

#目的

JavaのフレームワークであるSpringBootを用いて、
`Hello World`をとりあえず出力させたい!という方のためへ残しておきます。

#Spring Initializrってなに?

ブラウザ上で、ビルドツールや開発言語を選択して、雛形となるアプリケーションを簡単に生成することが出来るもの。
(Ruby on Railsでいう所のscaffold(スキャフォールド)みたいなものと認識しています。)

#実践編

##今回扱う各種バージョン

OS:macOS Mojave バージョン10.14.6
テキストエディタ:Visual Studio Code(以下VSCode)

“`
$ java -version
openjdk version “11.0.2” 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
“`

“`
$ mvn -version
Apache

元記事を表示

staticについて

クラスファイルはロード後、staticな部分とそれ以外に分離され、それぞれ異なるメモリ領域に保存されます。
static.png

staticで修飾されたメンバはstatic領域に配置され、それ以外の定義はピープ領域に配置されます。

– インスタンスが生成される時には、**ピープ領域にあるクラス定義に従ってインスタンスが生成される**
– **staticなフィールドはインスタンスを作らなくても使える**
– staticなフィールドにアクセスするには「class名.フィールド名」と記述する。もしくはインスタンスを生成してその参照を使ってアクセスする。
– staticなメンバはインスタンスがなくても使えるのに対し、staticではないメンバはインスタンスがないと使えない。よって、**staticなメソッドから

元記事を表示

AndroidのWebView#shouldInterceptRequestでリクエストをinterceptするときに忘れがちなこと

AndroidのWebViewでHTTPレスポンスのハンドリングやタイムアウトを独自に実装したいときに、shouldInterceptRequestをオーバーライドして、独自にHTTP通信を実装することがありますよね。

サンプルなので大雑把な実装ですが、例えば以下のような感じに実装したとしましょう。

“`Kotlin
override fun shouldInterceptRequest(view: WebView?, request: WebResourceRequest?): WebResourceResponse? {
val latch = CountDownLatch(1)
var res: InputStream? = null

val call = createOkHttpClient().newCall(Request.Builder().url(request?.url.toString()).method(“POST”, RequestBody.create(null, “hoge”)).build())
call.enque

元記事を表示

我流プログラミング学習8選

期せずしてITを生業とするようになってしまいました。
今でこそITプロダクトのPMをやっているけれども、当初は「未経験」ながらもあらゆることをキャッチアップせねばなりませんでした。

「文系/未経験」が技術を理解し身につけていくファーストステップは、開発案件にアサインされてフィードバックを得ていくパターンが王道かと思います。
自分の場合は、周囲に頼れる人/情報が多くなかったため試行錯誤の末プログラミングを身に着け、今に至ります。
本記事は、そんなかなり我流のプログラミング学習を振り返ることで、なんらかの参考になれば幸いです。

ちなみに、自分は仕事ではJavaを使い、プライベートではKotlin、JavaScriptを使うことが多いです。
以下、断りがなければJavaのことを暗に言っているんだと思ってください。

記事の最後に学習に使用した書籍やサイトのリファレンスをまとめたので、よろしければそちらもご覧ください。

# 学習履歴から
挙げたらきりがないくらい、なにかを作ったり教材、リファレンスにあたってきましたがその中でも特に学習効果が高かったと感じるものを8つ、挙げてみました。
1

元記事を表示

【Java】インスタンス変数とクラス変数の違いについて

## 目的
インスタンス変数とクラス変数の違いについて理解するため

## 検証環境
– Eclipse Oxygen.3a Release (4.7.3a)
– Java8

## 検証用ソースコード
**1.クラス変数とインスタンス変数**

“`
public class Oimo {
public static int CNT_CLASS; // クラス変数
public int CNT_INSTANCE; // インスタンス変数
}
“`

**2.クラス変数を試す**

“`
public class Kensho01 {

public static void main(String[] args) {
// クラス変数
Oimo oimo3 = new Oimo();
Oimo oimo4 = new Oimo();

oimo3.CNT_CLASS = 30;

System.out.println(oimo4.CNT_CLASS); // 30が出力される
}
}
“`

**3.インスタンス変数を試す**

“`
public

元記事を表示

Person.java 引数にVehicle型の値を受け取るbuyメソッドを新たに定義する。

class Person {
private String firstName;
private String middleName;
private String lastName;
private int age;
private double height;
private double weight;

Person(String firstName, String lastName, int age, double height, double weight) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.height = height;
this.weight = weight;
}

Person(String firstName, String middleName, String lastName, int age, double height, double weight) {

元記事を表示

Car.java

class Car{
private String name;
private String color;
private int distance = 0;
private int fuel = 100;
Car(String name,String color){
this.name = name;
this.color = color;
}

public void printData(){
System.out.println(“名前:”+this.name);
System.out.println(“色:”+ this.color);
System.out.println(“走行距離:”+this.distance+”km”);
System.out.println(“ガソリン量:”+this.fuel+”L”);
}
public void run(int distance){
System.out.println(distance+”km走ります”);
if(dista

元記事を表示

Main.java 自転車 車のガソリン残量 給油

import java.util.Scanner;

class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Bicycle bicycle = new Bicycle(“ビアンキ”,”緑”);
System.out.println(“【自転車の情報】”);
bicycle.printData();
System.out.println(“—————–“);
System.out.print(“走る距離を入力してください:”);
int bicycleDistance = scanner.nextInt();
bicycle.run(bicycleDistance);
System.out.println(“=================”);
Car car = new Car(“フェラーリ”,”赤”);
System.out.pri

元記事を表示

Person.java

class Person {
private static int count = 0;
private String firstName;
private String middleName;
private String lastName;
private int age;
private double height;
private double weight;
// インスタンスフィールド「job」を追加してください
private String job;

// コンストラクタを書き換えてください
Person(String firstName, String lastName, int age, double height, double weight,String job) {
Person.count++;
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.height = heigh

元記事を表示

Main.java

class Main {
public static void main(String[] args) {
// 仕事を「医者」にしてください
Person person1 = new Person(“Kate”, “Jones”, 27, 1.6, 50.0,”医者”);
person1.printData();
// 仕事を「教師」にしてください
Person person2 = new Person(“John”, “Christopher”, “Smith”, 65, 1.75, 80.0,”教師”);
person2.printData();
System.out.println(“———————-“);
// person1の仕事を「獣医」に変更してください
person1.setJob(“獣医”);

// 「person1の仕事を◯◯に変更しました」と出力されるようにしてください
System.out.println(“person1の仕事を”

元記事を表示

IntellijでSpringBootプロジェクトを作成してGithubにpushするまで

# 概要
SpringBootを使ったプロジェクトの環境構築の手順をまとめました。
手順をよく忘れるので自分用にGithubにpushするところまで書きます。

# 環境
Spring Boot 2.3.1 (Spring Framework 5.2.7)
Java11 (OpenJDK 11.0.2)
Intellij Community Edition 2019.1.3

Java11が入っていない方は以下の記事が参考になります。
[OpenJDK 11 を Homebrew で macOS にインストールする](https://qiita.com/niwasawa/items/fed67553845f8d1b72bc)

# プロジェクト作成
Intellij Ultimate Editionの方はSpring Initizalizrでも構いません。

「Spring Assistant」のプラグインをインストールします。
スクリーンショット 2020-06-20 22.24.49.pngオブジェクト指向言語でのメモリの仕組み

# 記事を書こうと思った理由
仕事でspring bootを使っており、その肝であるDI(Dependency Injection)では、
singletonデザインパターンが採用されており、デフォルトで1つしかインスタンスが生成されないという。
ネットで調べてもspring bootで状態を持つような実装をしてるとバグるみたいな記事がわんさか出てきた。
色々考えると、あれ???インスタンスは1個しか作られないけど、1つのAPIに対して同時リクエストとかされると、大丈夫か?どうなってんだ???と思ったりした。
たぶんメモリ配置がどこに?どの期間?というのが理解できていないためだと思ったので改めて整理した。
# メモリの仕組み(Javaベース)
まずは、メモリ領域
・静的領域
・ヒープ領域
・スタック領域

続いて、メモリへ展開するのも(だいたいなので、他にもありそうな)
1. コード情報(クラス本体)
2. グローバル変数
3. インスタンス
4. インスタンス変数(コンストラクタとかで指定)
5. ローカル変数
6. 各メソッドの引数
7. 戻り値

それぞれを表でまとめたのがこちら

元記事を表示

Main.java

mport java.util.Scanner;

class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print(“何人分の情報を入力しますか:”);
int n = scanner.nextInt();

int maxAge = 0;
int totalAge = 0;
for(int i = 0; i < n; i++){ System.out.println(i + 1 + "人目"); System.out.print("名前:"); String firstName = scanner.next(); System.out.print("名字:"); String lastName = scanner.next(); Sy

元記事を表示

いまさらLombokの使い方

#はじめに
あるプロジェクトのソースをインポートすると、ビルドエラーがいっぱいありました。
XXXBuilderが存在しないようなエラーがいっぱいあります。
build.gradleを見るとlombokのライブリを使ってますが、実はIDEにもLombokのプラグインインストールする必要があります。

#Lombok
https://projectlombok.org/

>Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

#Spring Tool Suite
##lombokダウンロード
htt

元記事を表示

【Java】完全未経験者が2週間でpaizaBランクになる方法

##概要
弊社の新人研修は「自己学習をしつつ、分からない所を先輩エンジニアに質問する」
というスタイルなのですが、一応の中間目標としてPaizaのスキルチェックでBランクを取る事が設定されていました。
今回未経験でほぼ知識なし状態から、約2週間程度でBランクに達したので、学習した内容をまとめます。
![キャプチャ254.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526290/e16fb3b5-9d95-94ff-16d0-e452fc9e0e09.png)
##前提
ただ、paizaのBランクは特に凄くありません。Bランク問題に一度でも正解すればランクが上がるので、私のような未経験者でも取れてしまいます。
ランクがBだからと言って、他の問題も余裕で解けるとは言い難く、今の実力通りのランクが反映されているとは正直思いません。
そもそも研修は業務で必要な基礎的な知識と技術をしっかり身につけるためのものなので、Paizaのランクはあくまで目安に過ぎません。

とはいえ、Cランク問題をそこそこ解いてBランク

元記事を表示

OTHERカテゴリの最新記事