- 0.1. Couchbase Server Java SDKによるアプリケーション開発へのロードマップ
- 0.2. Top 100 Java Interview Questions with Answers
- 0.3. OpenJDKのインストール(mac)
- 0.4. Java Silver 3章 演算子と分岐文①
- 0.5. 転職活動管理アプリを作ろう②(開発環境構築~ログイン画面)
- 0.6. 転職活動管理アプリを作ろう①(導入)
- 0.7. Java Tips
- 0.8. Couchbase Server Java SDK解説: フィールドレベルの暗号化
- 0.9. [paiza]スキルチェック見本問題 掛け算/足し算(paizaランク D 相当)
- 1. 初めに
- 2. 掛け算 (paizaランク D 相当)
- 3. 足し算 (paizaランク D 相当)
- 4. 初めに
- 5. forでのループ処理の基本形
- 5.2. java 標準入力 (記録)
- 5.3. JDKをインストールして実行環境を作る(前編)
- 5.4. Java Silver 2章 変数と配列
- 5.5. Java 『equals』と『 == 』 の違いについて
- 5.6. 関数型インタフェースとラムダ式
- 5.7. 【Java】ArrayListまとめ
- 5.8. 【CLI不要】VSCodeでJava+SpringBoot環境を作る(Windows・Mac共通)
- 5.9. Java Silver 1章 Javaの基礎
- 5.10. SpringBootのWebアプリケーションをHTTPS化する
- 5.11. IntelliJでJava SpringBootのWebページを作成
Couchbase Server Java SDKによるアプリケーション開発へのロードマップ
# はじめに
Couchbase Server Java SDKによるアプリケーション開発に関する記事を、カテゴリー別に整理しています。
## 基本機能解説
### [Couchbase Server Java SDK解説:分散トランザクション API解説と利用例](https://qiita.com/yoshiyuki_kono/items/26b1045b7a756ef8e9e8)
本記事の関連情報として以下があります。
[Couchbase Java SDK解説:分散トランザクションの内部メカニズム](https://qiita.com/yoshiyuki_kono/items/2d428b16b224b8c01239)
[Couchbase Java SDK解説:分散トランザクション〜エラー処理を理解する](https://qiita.com/yoshiyuki_kono/items/d7eb2b9553d858c7cb93)
[Couchbase Java SDK解説:分散トランザクションプログラミング入門](https://qiita.com/yoshiyuk
Top 100 Java Interview Questions with Answers
https://www.guru99.com/java-tutorial.html
Guru99.comなるJavaのチュートリアルが載っているサイトがある。
それのTop 100 Java Interview Questions with Answersセクションをまとめてみた。# Top 100 Java Interview Questions with Answers
### 1. Inner ClassとSub Classの違い
内部クラスは、クラス内にネストされたクラス
サブクラスは、スーパークラスを継承しているクラス### 2. Javaクラスのアクセス指定子は何ですか?
Public:どこからでもアクセス可能
Protected:同じクラス、サブクラス、同じパッケージから参照可能
デフォルト:同じパッケージからのみアクセス可能
Private:同じクラスからのみ### 3. Static methods と static variablesの目的は何?
Staticなフィールドはプログラム全体で1つしかないことが保証される
インスタンスを生成しなくても使え
OpenJDKのインストール(mac)
# はじめに
最近PCを入替えたので備忘を兼ねてメモ
最新版だけ入れておけばいいんだけど、レガシーなシステムだといまだに
JDK8 を使っていたりするので、OpenJDK いれて切り替えができるまでの手順を残しておく# やりたいこと
1. OpenJDK のインストール
2. バージョンの切替ができること# 環境情報
“`
% sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.7
BuildVersion: 19H1323
“`# やったこと
1. homebrew で OpenJDK のインストール
2. バージョンの切替# 1.homebrew で OpenJDK のインストール
adoptopenjdk の OpenJDK をインストールします。
今回は、8, 11 のインストールを行います“`
# JDK 8 のインストール
% brew install adoptopenjdk8 –cask
? adoptopenjdk8 was successfully installed!# JD
Java Silver 3章 演算子と分岐文①
#演算子
![20160202141147.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601137/fbd35cc1-8f90-2e23-43a1-b08c7af55ad2.png)###演算子の優先度
式の中に複数の演算子があった場合に、どの演算子から計算するかの順序づけ###演算子の結合規則
式の中に同じ優先度の演算子が複数ある場合に、左右どちらから計算するか“`java
+と-は優先度同じで結合規則は左
int num = 10 – 5 – 3 + 12
= 5 – 3 + 12
= 2 + 12
= 14
“`##演算の例
オペラント:演算の対称となる変数やリテラル
リテラル:コード内に書く文字列や数値 0.2F null とか特殊な意味を持たせる事もある“`java
System.out.println(10 / 3);
System.out.println(10 / 3.0);
System.out.pr
転職活動管理アプリを作ろう②(開発環境構築~ログイン画面)
前回は [コチラ](https://qiita.com/soso555/items/049d566fd23f601dccb9)
# ツール
– OS
– Windows 10
– IDE
– eclipse (Version: 2020-12 (4.18.0))
– [新規] > [Spring スターター・プロジェクト] より新規プロジェクトを作成
– [ウィンドウ] > [ビューの表示] より「Bootダッシュボード」を開いておく
– DB
– MySQL (docker)
– [ココ](https://github.com/soso555BoBs/local-dev-mysql) に docker-compose を置きました
– localhost:3306 で接続可能
– “`http://localhost:8081/“` で phpMyAdmin へ接続# プロジェクト設定
– Spring Boot
– 必要なモジュールは以下の通り
転職活動管理アプリを作ろう①(導入)
# 目的
転職活動のステータス管理を Excel でやっているのですが、Mac と Windows それぞれでファイルを持ってしまっているため管理が煩雑になりました。
マルチデバイスで管理し、かつ個人情報を自分がセキュリティレベルをコントロールできるところに配置したいと思い立ち、新規に(簡単に)作成することにしました。
(「Notion とか使えば?」という声は聞こえません)# 欲しい機能
1. ログイン
2. 企業の応募ステータス管理
3. Markdown によるメモ機能
4. ノウハウを貯めておく Wiki
5. (できれば)CSV 出力
6. (できれば)CSV 取込# サイト要件
– 動作環境
– Linux
– Amazon Linux か Heroku か別のホスティングかは未定
– Chrome 最新版
– その他のブラウザは知らない# 技術要件
– 言語 / フレームワーク
– Java 11
– Spring Boot 2.4
– DB
– MySQL
– サーバ
– T
Java Tips
# Java Tips
## Objectをjsonに変換
Gsonを使う。
https://github.com/google/gson“`gradle
dependencies {
implementation ‘com.google.code.gson:gson:2.8.7’
}
“`“`java
SampleModel results = SampleModel.findAll();Gson gson = new Gson();
System.out.println(gson.toJson(results));// 出力結果
// [{“id”:1,”name”:”Sample001″}, {“id”:2,”name”:”Sample002″}, {“id”:3,”name”:”Sample003″}]
“`## StreamAPIのmap
PHPでいうarray_map、rubyでいうmap
[Java Stream APIをいまさら入門](https://qiita.com/takumi-n/items/369dd3fcb9ccb8fcfa
Couchbase Server Java SDK解説: フィールドレベルの暗号化
Couchbase Server Java SDKを使用して、JSONドキュメントの特定のフィールドを暗号化および復号化することができます。
CouchbaseのJava SDK暗号化ライブラリは、独自の暗号化コンポーネントを実装するためのフレームワークを提供します。
## ライブラリ
フィールドレベルの暗号化機能は、エンタープライズサブスクリプションライセンス契約により、提供されるオプションのライブラリとして提供されています。
暗号化ライブラリを使用するには、プロジェクト構成ファイルに明示的に含める必要があります。
Mavenのdependency(依存関係)セクションを例示します。“`xml
com.couchbase.client
couchbase-encryption
${version}
“`
## 使用法### 構成
フィールドレベルの暗号化
[paiza]スキルチェック見本問題 掛け算/足し算(paizaランク D 相当)
初めに
ここまでのJavaの学習でpaizaラーニングにある
スキルチェック見本問題の掛け算、足し算が解けるようになりました。掛け算 (paizaランク D 相当)
見本問題なので問題の公開、コードの公開は問題ないそうです。
https://paiza.jp/works/mondai/skillcheck_sample/multiplication
解答コード
“`java:
import java.util.*;public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int num2 = sc.nextInt();
System.out.println(num1*num2);
}
}
“`足し算 (paizaランク D 相当)
https:
[Java基礎⑤] forで繰り返し処理
初めに
今回はforでのループ処理の基本と、
標準入力からデータを読み込む方法を学びました。最後に標準入力とループ処理を行います。
forでのループ処理の基本形
“`java:
public class Main {
public static void main(String[] args) {
for(int i = 0; i<=4; i++){ System.out.println("hello world"); } } } ``` 実行すると hello worldが4回出力されます。HTMLを作成する
“`java:
public class Main {
public static void main(String[] args) {
System.out.println(““);
for(int i = 1; i <= 100; i++) { System.
java 標準入力 (記録)
##N行のデータの入力
“`java
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[]input_line = new String[sc.nextInt()];
sc.nextLine();
for(int i=0;i###3つのデータの入力
“`java
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
S
JDKをインストールして実行環境を作る(前編)
< 目次 >
◆(導入)統合開発環境 Eclipse について
・Eclipseとは
・ビルド機能
・プラグイン機能◆Open JDK 11のインストールと設定
・インストール
・環境変数とは
・環境変数PATH
・環境変数JAVA_HOME##◆ (導入)統合開発環境 Eclipse について
・Eclipseとは
EclipseはIBMがJavaで開発したオープンソースの統合開発環境です。
統合開発環境(IDE)とはテキストエディタやコンパイラ、デバッガが1つにまとめられたアプリケーション開発用のソフトウェアです。
もともとシステム開発はテキストエディタでソースコードを書き、コマンドライン上でコンパイルし、リンカでリンク(後述します)し、デバッガでバグ取りをするというように、行う処理によってツールが分かれていました。
そのような中でプロジェクト管理や開発効率などの観点から、これらのソフトウェアとその他の支援ツールをまとめて統合開発環境として生まれ、利用されるようになりました。####・ビルド機能
ちなみにEclipseではコンパイルという名前の機能がなく、「ビルド」
Java Silver 2章 変数と配列
#リテラル
“`java
// リテラル:ソースコードに書き込んだ値、その表記方法
public class Main {
public static void main(String[] args) {
System.out.println(255); // 10進数(整数値):普通に表記
System.out.println(0b11111111); // 2進数:先頭 0b
System.out.println(0377); // 8進数 :先頭0
System.out.println(0xff); // 16進数:先頭0x
System.out.println(12.33); // 10進数(小数):普通に表記
System.out.println(3e4); // 指数:3.0 × 10の4乗
System.out.println(‘A’); // 1文字:1文字だと”
Syste
Java 『equals』と『 == 』 の違いについて
IF文で条件分岐を行うときに
『equals』と『 == 』を知らずに、『 == 』を使用すると
かなりの確率で不具合(バグ)が発生します。例えば、下記の処理を実行すると
コンソールには、何が出力されるかわかりますか?# プログラム
“`java
public class Test {public static void main(String[] args) {
String test1 = new String(“100”);
String test2 = new String(“100”);if (test1 == test2) {
System.out.println(“同じです”);
} else {
System.out.println(“違います”);
}if (test1.equals(test2)) {
System.out.println(“同じです”);
} else {
System.out.println(“違います”);
関数型インタフェースとラムダ式
## 関数型インタフェースとは
実装が必要な抽象メソッドを1つだけ持つインタフェースのこと。“`java:Logic.java
interface Logic {
void run(String name); // ← 抽象メソッドを一つだけもつ。
}
“`## ラムダ式
関数型インタフェースの実現を、簡潔なコードで行うための記述方法。
ラムダ式を使用すれば、新たにクラスを宣言せずにインタフェースを実現できる。
※ ラムダ式以外にも、匿名クラスを使用する方法もある。ラムダ式を使用する場合と使用しない場合のコードで比較してみます。
☟のような、Logicインタフェースを使用するServiceクラスを定義します。“`java:Service.java
class Service {
private Logic logic;public Service(Logic logic) {
this.logic = logic;
}public void do(String name) {
this.logic.run(name);
【Java】ArrayListまとめ
## ArrayListとは
複数の値を管理するための可変長配列。通常の配列は、あらかじめ要素数を決めておく必要があるのに対し、ArrayListは要素の追加・削除が自由にできるため、不特定量のデータを扱うことができます。## 利用方法
#### ArrayListクラスのインポート“`java:Java
import java.util.ArrayList;
“`#### インスタンス化
“`java:Java
ArrayList<型> インスタンス変数名 = new ArrayList<型>(初期サイズ値);
“`
初期サイズ値は省略可能です。
型にはクラス名を指定しますが、リストの要素は参照型である必要があるため、基本型を扱うリストを作成したい場合は、ラッパークラスを用いて定義します。“`java:例
ArrayListintList = new ArrayList ():
“`## ArrayListクラスのメソッド
#### addメソッド
リストの最後に1つデータを追加“`java:Java
イン
【CLI不要】VSCodeでJava+SpringBoot環境を作る(Windows・Mac共通)
# はじめに
Javaは環境構築が大変という記事をよく見かけますが、今回はそれを払拭するために最短で構築する手順をまとめてみました。Javaだけではなく、SpringBootの構築も同時に行います。# ゴール
VSCodeでJava11 + SpringBootの環境を構築すること。
# 環境(2021/09/05時点)
– [Mac版] macOS Big Sur 11.5.2
– [Windows版] Windows10
– JDKは未インストール
– VSCodeインストール済# VSCodeのセットアップ
## プラグインインストール
以下のプラグインをインストールする。– Extension Pack for Java
– Spring Boot Extension Pack## JDKインストール
メニューバーの「View」→「Command Palette」を選択する。
表示されたコマンドパレット上で「Configure Java Runtime」を選択する。![スクリーンショット 2021-09-05 9.44.46.png](https:
Java Silver 1章 Javaの基礎
#コンパイルと実行
“`java
// ソースに複数のクラスがあれば複数のクラスファイルが作製される
class Foo {}// JavaではPublicクラスはファイルと同名
public class Main{
public static void main(String[] args){
System.out.println(“Hi!!”);
}
}// ソースファイル→クラスファイル(コンパイル)→実行(JVM:Java Virtual Machine上で実行)
// この学習ではWindowsOSにあるJVM.ver11を VScode Editerで参照してターミナル(PowerShell)で実行している。
“`
インタプリタ言語のPHP、JSと違いソースファイルをコンパイラして各クラスファイルを作製
実行環境の差をJVM(Java Virtual Machine)が埋めてくれる。##1億回ループさせた時の実行時間の差
“`java
public class Loop {
public static void main(Stri
SpringBootのWebアプリケーションをHTTPS化する
# はじめに
[IntelliJでJava SpringBootのWebページを作成](https://qiita.com/ykdevs/items/788ceeb0972c48bd1e74)で作成したWebアプリケーションをHTTPS化していきます。
# 手順
## 鍵ファイルの作成
以下のコマンドを実行して、local.keystoreという鍵ファイルを作成します。
“`bash
$ keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore local.keystore -validity 3650
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
姓名は何ですか。
[Unknown]: localhost
組織単位名は何ですか。
[Unknown]:
組織名は何ですか。
[Unknown]: ykdevs
都市名または地域名は何ですか。
[Unknown]: Yokohama
都道府県名または州名
IntelliJでJava SpringBootのWebページを作成
# はじめに
[IntelliJでJava SpringBootのプロジェクトを作成](https://qiita.com/ykdevs/items/77e3903ec0bb2aec8845)で作成したアプリケーションにTymeleafを使ってWebページの作成を行います。
# 手順
## build.gradleの編集
spring-boot-starter-thymeleafを追加します。
“`gradle:build.gradle
dependencies {
// SpringBoot
implementation “org.springframework.boot:spring-boot-starter-web”
testImplementation “org.springframework.boot:spring-boot-starter-test”
implementation “org.springframework.boot:spring-boot-starter-thymeleaf”
“`## Controllerを