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

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

Javaの比較 compareTo()メソッドを使って

“`ruby:filename.rb
public static void main(String[] args) {
System.out.println(“—–a.compareTo(b)を使ってみよう!—–“);
//aが大きい場合
Integer a = 2;
Integer b = 1;
System.out.println(“a の方が大きい場合” + ” ” +a.compareTo(b)); // 1 が返る
//aが小さい場合
a = 1;
b = 2;
System.out.println(“a の方が小さい場合” + ” ” +a.compareTo(b)); // -1 が返る
//a と b が同じ数字の場合
a = 1;
b = 1;
System.out.println(“a と b が同じ場合” + ” ” +a.compareTo(b)); // 0 が返る

}
“`
compareTo()・・・・まだ使い道がよくわかりません(笑)

元記事を表示

Google Cloud FunctionsでJava11を使う

#はじめに

2020年5月にGoogle Cloud FunctionsでJava11がβ版ですがサポートされました。[こちら](https://cloud.google.com/blog/ja/products/application-development/introducing-java-11-on-google-cloud-functions)
当記事ではHTTPリクエストをトリガーに動くJava11アプリケーションを実際にデプロイをするまでを解説しています。

操作にはCloud Shellを使っています。

#Mavenの準備
まずはMavenに必要なpomファイルから用意します。Cloud Functionsで動かすのに必要なfunctions-framework-apiへの依存性と
ローカルで動かすために必要なプラグインの記述をします。

“`xml:pom.xml VSCode Remote Containers を利用して最強のローカル開発環境を作りたい

# はじめに
VSCodeの神拡張機能であるRemote Containersの自分なりの設定の紹介です
[公式サンプル](https://github.com/Microsoft/vscode-dev-containers)は公開されていますが、そのままだと流石に使いずいので自分なりに使いやすいように編集した設定を紹介します
なお、本記事で紹介する設定ファイルは全て以下のリポジトリで公開しています(紹介していない環境のものも入っています)
https://github.com/sabure500/remote-container-sample

また、Remote Containersを使ってみて良いなと思ったので色々使いやすいように設定を弄っていますが、本記事は最強のローカル環境を「作りたい」なので、ここをこうした方が良いといった案があったら是非教えてくれると嬉しいです

# VSCode Remote Containers とは
VSCodeの拡張機能であり、使用することでコンテナの中でVSCodeを開いて作業を行うことができるようになる
コンテナの中で直接VSCodeを開いて作

元記事を表示

Java Gold対策:フォーマット

# はじめに

本稿は、Java Goldの学習のまとめとしてフォーマットについてまとめる。

### フォーマットとは

Javaで扱うデータを表示箇所に応じて、
書式を変更したい場合に書式化するためのもの。

数値や、日付などでそれぞれフォーマットする
方法が異なるため、以下にそのフォーマットの
方法をまとめる。

## 数値のフォーマットで使用する主なクラス一覧

`java.text.NumberFormat`
`java.text.DecimalFormat`

### ■ java.text.NumberFormat

NumberFormatはnewすることが出来ないため、
staticメソッドによってオブジェクトを取得する。

NumberFormatの主なメソッドは以下

| メソッド | 内容 |
|:-:|:-:|
| static final NumberFormat getInstance() | デフォルトロケールに対応した数値formatオブジェクトを返却 |
| static final NumberFormat getInstance(Locale l

元記事を表示

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

#進行状況
– jsp⇔サーブレット間のパラメータの受け渡し
– クッキー/セッション管理

##今回やること
– EL式
– JSTLタグ

#EL式使いましょう
EL式(Expression Language)とは、ざっくり言うとjsp側でリクエストパラメータの受け渡しを簡潔に記述できる方法です。
`${パラメータ名}`と書くだけです。(オブジェクトの場合は`${パラメータ名.プロパティ名}`)

jsp側で`name`という名前のパラメータを受け取って表示させる場合、

“`jsp:mypage.jsp(今まで)
<% String username=request.getAttribute("name").toString(); %>
<%=username%>さん、ようこそ
“`

と二段階のプロセスを踏んでいましたが、EL式を使うと

“`jsp:mypage.jsp
${name}さん、ようこそ
“`
と書くだけで良くなります。
記述量が減って見やすくなるのもそうですが、`javaのロジックを書く必要がなくなる`ことが最大のメリットです。
EL「式」と付いてい

元記事を表示

【実践‼】Spring Boot で Hello World を表示する

## 1.事前知識
– [【初心者でもできる‼】Windows10にEclipseをインストールする方法(Java環境構築)](https://qiita.com/ryome/items/b47c5acdaa52cffbec58)

事前知識として、上記リンクの内容が必要です。

## 2.事前準備

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449867/594d8a72-235d-b356-a3b2-dbfbfd0159c9.png)
1. Eclipseを起動する。
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449867/45df6d6a-46e0-f2bf-1f4c-017db75f9727.png)
2. `[ウィンドウ(W)]→[パースペクティブを開く]→[その他]` を選択する。
![03.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

Java Gold対策:ローカライズ

# はじめに

本稿は、Java Goldの学習のまとめとして以下項目についてまとめる。
(同じくJava Goldを学習中やローカライズについて知りたい方の参考になればと。)

* ロケール
* リソースバンドル

## ロケールとは

`java.util.Locale`

言語や国ごとに異なるものの表記規則を示す。
# 例:単位・記号・日付・通貨など

アプリケーションを使用した国毎に、表示を変えたい場合などにロケールを利用する。
(アプリを使用する国によって文字を日本語・英語と分けたり等)

インスタンス生成方法は主に以下3種類ある。

* new
* Localクラスの定数
* getDefault()メソッド

### ■ 主なコンストラクタ・メソッド

| コンストラクタ | 内容 |
|:-:|:-:|
| Local(String language, String country) | 引数の言語/国コードからオブジェクトを生成 |

“`java
// newによるインスタンス生成
// ja・en:言語名コード | JP・US:国名コード
Locale

元記事を表示

MapStructを使用するBeanコピー

# 1. なぜMapStruct

Javaを使用して、Beanコピーする際、よく使われるライブラリはいくつかある。

– org.apache.commons.beanutils.BeanUtils.copyProperties
– org.apache.commons.beanutils.PropertyUtils.copyProperties
– org.springframework.beans.BeanUtils.copyProperties
– org.springframework.cglib.beans.BeanCopier.copy
– org.mapstruct

この中で、私が一番推奨するのは`mapstruct`である。その原因は、`mapstruct`が**一番速い**のだ。以下のソースでは、上記の5つのライブラリを使用してBeanコピーする際に、それぞれ掛かった時間を統計している。

“`java
@Slf4j
public class CopyDemoTest {

public UserMainBO bo;

public stati

元記事を表示

JavaのHashMapの中身を覗いてみた

[](https://github.com/AdoptOpenJDK/openjdk-jdk8u/blob/master/jdk/src/share/classes/java/util/HashMap.java)

JavaのHashMapの[ソースコード](https://github.com/AdoptOpenJDK/openjdk-jdk8u/blob/master/jdk/src/share/classes/java/util/HashMap.java)を読んで、`hashのキーの比較がequals()`で行われる`ことを確認した。

“`java
/**
* Implements Map.get and related methods.
*
* @param hash hash for key
* @param key the key
* @return the node, or null if none
*/
final Node getNode(int hash, Obje

元記事を表示

[Java]Eclipseでstruts1.3を開発するための環境構築手順

2020年4月から現場が変わることになりましたが、そこの案件がStruts 1.3(2.xでもない:innocent:)ということで、勉強を兼ねて環境を構築をした手順をまとめました。

世間では、JavaといえばSpring bootが主流になっていますが、Strutsもまだまだ現役です。
レガシー環境に流れ着いてしまった不運なあなた、むしろそんな現場を求めているあなたにとって、手助けになるかもしれません。

# 前提条件
– 使用PCはWindows
– Java1.5以上がインストール済み(Oracle JDKでもOpen JDKでも何でも良いので、インストールしてください。)
– Git for Windowsがインストール済み

# 事前準備
## Tomcatのインストール
### ダウンロード
Tomcatを以下からダウンロードします。(※2020年3月現在、最新の安定版は9.0.33)
http://tomcat.apache.org

### 任意のフォルダに解凍
ダウンロードしたファイルを解凍します。
今回は以下に配置しました。
C:\public\tool\ap

元記事を表示

JavaとRubyを個人的に比較してみた

面接で聞かれてしゅって答えられず痛い目にあったので自分用に整理としてみる。

# 概要
自分の経験期間は以下(2020年7月現在)

|言語|使用期間|使用用途|
|—-|—-|—-|—-|
|Python|2018.5 ~ 2020.3|(1)JupyterNotebook上でのWebスクレイピングや機械学習を含むデータ解析 (2)MLOpsにおけるAWS Lambdaの実行スクリプトやAWSBatchの実行ファイル|
|Java| 2018.8 ~ 2019.5|Javaによるスタンドアロンアプリ開発|
|Ruby| 2019.11 ~| RailsでのWebアプリ開発|

– オブジェクト指向やシステム開発の基礎を身に付けたのはJava、Webアプリを実際に作ったのはRuby on Railsである。
– PythonのDjangoはチュートリアルだけやった
– PYthonはデータ解析メインで使ったため、システム開発の経験があるJavaとRubyを比較する。

# Java
– kafka, Hadoopなどデータ処理系には結構よく使われているイメージ。

元記事を表示

10年日语营业转行IT从深圳到日本东京圈工作生活2019

# 10年日语营业转行IT从深圳到日本东京圈工作生活2019

**主旨:成人学历可以来日本,拖家带口可以来日本,不通过中介可以来日本,只会日语不会IT可以来日本。**

## 序章

日本对于我来说确实曾经像一个童话,

日本对于我来说确实曾经是高不可攀的目标,

日本对于我来说确实曾经是一个做醒了就扔到一边的梦。

2011年,日语语言学校毕业取得日语一级,刚毕业就想过去日本,当时说是要10万元保证金,全日制本科学历,还有留学学费,这种事情咱想想就蒜了吧。由于贫穷限制想象,一直在东莞的各大人才市场大显身手,进了各种坑货台湾工厂。

2014年,真正进了一家传统日企,真正做上了业务,真正锻炼到了终身难忘的日语,真正成家,真正成人,这家日企经历了两三年。

2018年,深圳地王大厦之上,加班到半夜,深圳夜景万家灯火,曾经的日语同学一通电话问哥们你还想去日本试一下吗?这通电话点燃了多年的梦想,星星之火迅速燎原。

到日本可以留学,也可以工作,留学的话前期费用和打工的辛苦程度很高,选择工作到日本挺稳妥的。有钱人可以投资移民到日本,不过终究不是穷人考虑的

元記事を表示

Mac Javaホームディレクトリ

Macで、Javaのバージョンアップをする際に、毎回ホームディレクトリの場所を忘れてしまう。

.bashrc に記載している環境変数を見て、「そーだった」と納得しつつ、覚えられない自分がいる。

“`bash
export JAVA_HOME=”/Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home”
“`

ついでに brewでのJavaインストールコマンドも残しておきます。

“`bash
brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk14
“`
https://github.com/AdoptOpenJDK/homebrew-openjdk

元記事を表示

【Folio LSP】プロジェクトで必要な技術的スキル

#プロジェクトで必要としている人材

具体的なロールと、何時間の稼働が求められるかはこちら[Confluenceの募集ページ「Technical Skills in Demand」](https://wiki.folio.org/display/TC/Technical+Skills+in+Demand)をご確認ください。

##バックエンド開発者
– Java 8 と オブジェクト指向設計・プログラミング
– マイクロサービスモデル(RAML, JSON, XML)でのRESTful interfacesの実装
– データベース(SQLとNoSQLの両方) 特にPostgreSQL
– 仮想化– Docker,Vagrant

## フロントエンド開発者
– クライアントサイド Javascript (React) と関連するテストツール/フレームワーク

## フロントエンド開発者・バックエンド開発者共通
– テストツール/フレームワーク
– CI/CD – Jenkins
– サーバーサイドJavaScript (Node JS)と関連するテストツール/フレームワーク
– セキュ

元記事を表示

【Folio LSP】Okapi-Stripes Platformとは

チュートリアルの前提となる知識を書いていきます。
ざっと読んでからチュートリアルに進んだほうがいいかもしれない。

# Okapi-Stripes Platformとは

– Folio LSPプロジェクトのインフラストラクチャとして開発されたもので、Okapi、Stripesとその他のコンポーネントで構成されています。
– OSみたいなもので、Folioの基本的な部分です。

# Okapi-Stripes Platformのいいところ

– マルチテナント
– 拡張可能(テナントがそれぞれ、ニーズに合わせてアプリを選択できる)

# Okapi-Stripes Platformの決まりごと

– 機能をアプリに分割すること。例:請求書のアプリ、ベンダーのアプリ、支払いのアプリ など
– 個々のアプリはそれぞれビジネスロジックとデータストレージを持っています。
– アプリ同士は、APIを通じて通信します。※APIは同じバージョンでないといけない

逆を言うと、他のアプリが持っているデータを、SQLとかで直接データを取るようなアプリはダメよ、ということです。

# Okapi-Stri

元記事を表示

EclipseからIntelliJへの移行(途中)

#はじめに
ついにIntelliJを購入!なんて思ってたんですが….
元々Eclipseを使ってた人向けのキーバインドもあるのですがそれでも完全ではなかったので備忘録代わりにしようと思います。
ついでに個人的な設定情報も書いておきます。

#キーコンフィグ
まずは本題のキーコンフィグですが現在でもよく書き換えているので暫定的ですが以下を変更しました。

– キーマップのプリセットをEclipseに変更
– エディタアクション
– フォントサイズを縮小 【Alt + マイナス】
– フォントサイズを拡大 【Alt + プラス】
– メインメニュー
– ファイル
– 新規 【Ctrl + N】
– コード
– コードの整形 【Ctrl + Shift + F】
– リファクタリング
– ファイル名変更 【Ctrl + R】
– プラグイン
– Java
– GetterとSetter 【Alt + S, Alt + R】
– t

元記事を表示

[Processing×Java] ループの使いかた2—入れ子構造,座標変換

この記事はプログラムの構造をProcessingを通じて理解していくための記事です。
今回はループについて少しだけ詳しく書いていきます。

![スクリーンショット 2020-07-03 16.03.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/793268a0-97bb-be80-31ff-7d61c0346c30.png)

目次
0.forループ

#0.forループ

##0-0. **forループと座標変換**
Processingでは、”**図形を描くときの基準点**”や”**座標そのもの**”を自分の都合のいいようにカスタマイズできます。

###◯”図形”の基準点を移動するプログラム

“`for00.java
size(500,500);
background(255);
//四角形の中心を基準にして図形を描けるようにする。
rectMode(CENTER);

//5回繰り返す(i = 0,1,2,3,4)
for(int i = 0;i < 5;i++

元記事を表示

AndroidStudioのAlarmManager実装時に苦戦した点

AndroidStudioでAlarmManagerを使う方法について
自分がコードを書いていた時につまずいた点などを踏まえて紹介します。

※Qiita初投稿です、ちょくちょく変なところや違うところがあるかもしれませんが多めにみてください…

#AlarmManagerの設定の仕方

今回作るのは何分後(秒、時間、etc…)かに処理するというコードを作ります。
まずは、AlarmManagerの設定の仕方を見ていきます。

###重要!
##1: AndroidManifestに設定を加えていきます。

“`AndroidManifest.xml

元記事を表示

文字列を操作する時に使用するメソッド一覧

Yuheiです。

文字列内容を変えたり、動かしたりするときに使用する各メソッドの一覧です。

# equals
文字列の変数の中身が等しいかどうかを調べる為に、使用するメソッドです。

基本データ型の整数比較とは異なり、equalsを使用する際は、参照データ型の文字列比較になる点が異なります。

# equalslgnoreCase

大文字小文字を区別せずに中身が等しいかどうかを調べる為に、使用するメソッドです。

equalsメソッドでは、中身を調べる時に大文字か小文字かどうかも区別しますが、このメソッドの場合は、区別しないで、調べることができます。

# lengh

文字列の長さを調べます。

長さはバイト数ではなく、文字数にです。

例えば、下記の場合、結果は9になります。

“`java
String rong= new String(“おはようございます”);

System.out.println(rong.length());

“`

# isEmpty

文字列が空かどうかを調べます。

先ほどのlengthでは、文字数を調べるのに対し、こちらのメソッド

元記事を表示

Static変数の特徴

# Staticとは?

英語では、`静的`
という意味であり、メソッドの種類では「静的メソッド」の種類にあたります。

クラスをインスタンス化せずに使える変数を,staticな変数と言います。

#特徴
インスタンスの有無にかかわらず使える。
逆にstatic以外はインスタンスがないと使えない。

# static変数の使い方

まず、下記のように宣言します。

“`
アクセス修飾子(publicなど) static 型名 変数名
“`

変数ではデータ型を指定して宣言すると初期値が与えられる。

初期値の表

“`
整数:0
float:0.0f
double型:0.0d
文字型:’\u0000′
boolean型:false
参照型(String):null
“`
# 呼び出し方

“`
クラス名.変数名
“`

クラスのインスタンスを生成せず、クラス名を使って呼び出す。

# static変数で変わること

newせずに指定メソッドやメンバ変数にアクセスできる。

例:

“`
public static String name = “”;

//st

元記事を表示

OTHERカテゴリの最新記事