- 1. eclipse Javaソースコード入力する際、自動補完トリガーの有効化設定(auto activation triggers)
- 2. Heapdump/Javacore 解析
- 3. (小ネタ)今更言うほどでもない数値→アルファベットの簡単な変換方法(Java)
- 4. springbootでのアプリ作成につきまして
- 5. IntelliJでJava SpringBootのプロジェクトを作成
- 6. Spring Initializr を使って爆速でHello World!!!
- 7. staticについて
- 8. AndroidのWebView#shouldInterceptRequestでリクエストをinterceptするときに忘れがちなこと
- 9. 我流プログラミング学習8選
- 10. 【Java】インスタンス変数とクラス変数の違いについて
- 11. Person.java 引数にVehicle型の値を受け取るbuyメソッドを新たに定義する。
- 12. Car.java
- 13. Main.java 自転車 車のガソリン残量 給油
- 14. Person.java
- 15. Main.java
- 16. IntellijでSpringBootプロジェクトを作成してGithubにpushするまで
- 17. オブジェクト指向言語でのメモリの仕組み
- 18. Main.java
- 19. いまさらLombokの使い方
- 20. 【Java】完全未経験者が2週間でpaizaBランクになる方法
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.javapackage 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で修飾されたメンバは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? = nullval 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.3Java11が入っていない方は以下の記事が参考になります。
[OpenJDK 11 を Homebrew で macOS にインストールする](https://qiita.com/niwasawa/items/fed67553845f8d1b72bc)# プロジェクト作成
Intellij Ultimate Editionの方はSpring Initizalizrでも構いません。「Spring Assistant」のプラグインをインストールします。
オブジェクト指向言語でのメモリの仕組み# 記事を書こうと思った理由
仕事で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ランク