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

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

プログラミング言語の比較(Pythonと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

元記事を表示

utf8mb3に入るようにJavaで制限をかけたい

## やりたいことは簡単なのに。。。

MySqlのvarcharが扱える文字コード(character set)は、デフォルトでutf8であり、これはutf8mb3(3バイト文字)のエイリアスでもあるようです(バージョンがあがるごとにだんだんutf8mb4に移行しつつあるようですが)。
で、業務で使うmysql5.7には、utf8で接続することになっているため、4バイト文字が入りません。
というわけで、サーバー側(java)で文字を切ってあげればよいことになりました。

調べてみたものの、なんかスマートな方法がぱっと出てこなかったので、なんとなく調べたことをまとめておきます。

## サロゲートペアと4バイト文字の違い

まずこれがわからなかった。
上司に言われた指示は「絵文字を使えないようにしたい」だった。
自分の会社の先達が作ったコードでは、バリデーションでサロゲートペアをひっかけており、これを参考にしろと提示された。

で、サロゲートペアって?

## わからんので調べてみる

いったんUnicodeとutf8、サロゲートペアの話をある程度理解してから進みます。

– ある文字

元記事を表示

【Java】equals()メソッド実装に「同一性」のチェックは不要なのか?

#はじめに
ご覧いただきありがとうございます.Javaのequals()メソッドについて,同一の場合即座にtrueを返す以下の実装の有り無しで実行時間を比較してみました.

“`java
// equals()の冒頭で同一性チェック
if (this == obj){
return true;
}
“`

#いきさつ(長くてすみません)
私は現在SIerの新卒SEということで研修を受けています.Java未経験者前提の内容であるため少し退屈ではありますが楽しくやっております.
(少しでも隙間時間に自分のための勉強もしなければならないという危機感を持っていたりもしますが...)

さて,いま研修では開発演習というものを行っています.作成済みの外部設計書をもとに,単体,結合テスト,内部設計書(コンポーネント仕様書)作成,コーディングを行うといったプロジェクト体験のようなものです.

内部設計ではすでに決められたフィールド名メソッド名をもとに,コーディングできるようメソッドのフローチャートを作成します.
とあるDTOの仕様書に取り掛かるとそこには
**「equals()メソッドをオーバー

元記事を表示

ソース変更もブレークもせずにデバッグで変数の値を変更する(条件付きブレークポイント使用)

プログラムを作ったあと、通常は通らないルートをテストしたいとき、皆さんはどうしていますか?
一般的には以下のような形で実行すると思います。

– 特定の箇所にブレークポイントを設定する
– テストしたいアクションを実行する
– ブレークポイントに止まるのを待つ
– ブレークポイントに止まったら、手動で値を変更する

でも、値を変更した状態を何度か操作を繰り返したいときってありまして、こういう場合は値が自動で書き換わってほしいと思うわけなんですよ。
思ったことありませんか?

実はこれは条件付きブレークポイントを使用することで実現できますが、ベテラン勢でも割と知らない人も多いので残しておきます。

# 前提条件と予備知識

## サンプルコードと想定パターン

RestAPIを実行して、状態チェック→パース→モデル変換を行うメソッド。(内容は特に重要ではありません)

“`java
public JmaFeed getFeed() {
ResponseEntity response = restTemplate.getForEntity(uri,

元記事を表示

Javaを知らずに、Java Silverを2週間で合格してみた

#はじめに
Javaをほぼ知らない状態でJava Silverに受かるか挑戦してみました。
Java SE 8 Programmer I(JAVA Silver)の学習方法を参考にして勉強し、合格できたので、Java Silverを取りたい方はご参考ください。

#試験について、試験までの手続き

まず試験申込が意外と大変。
下記の記事は試験をとる意味や手続きまで把握できるので是非ご参考ください。

参考にした記事
[「Java Silver受験手続きの仕方と学習方法」](https://qiita.com/tunelog/items/2c78d753b385b09576c9)

自分もこちらの記事をまるまる参考にしてます。

#勉強資料

以下の2冊のみを使い倒しました。

– [「徹底攻略Java SE 8 Silver問題集」](https://www.amazon.co.jp/dp/B01ASGJYIE/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)
こちらはごりごり問題を解いていく用です。基本的にはこちらしか使いませんでした。

元記事を表示

ProgateでJava 勉強メモ2

#型の話
データの型は結構いろんな種類があるみたい。
intとか数字ってざっくり思ってたけど、正確には「整数」。
少数点以下を持つ数字はdouble型に分類される。
int型同士の計算は結果はint型で返ってくるし、double型同士の計算はdouble型で返ってくる。

“`Java
System.out.println(5/2); 2 //int型
System.out.println(5.0/2.0); 2.5 //double型

“`
結果が変わるので、注意:hand_splayed_tone2:

データ型が違うもの同士を`+`などで処理することはできないので、**型を変換**する必要がある。

##型変換
###自動型変換

“`java
//String型+int型
System.out.println(“今日は” + 6 + “月です”)
=>(“今日は” + “6” + “月です”)
int型がString型に自動で変換される
“`

####int型とdouble型 ⇒ double型
int型がdouble型

元記事を表示

【Spring Boot】独自のプロパティファイルを追加して、env.getProperty()で値を取得したい。

# デモアプリの構成
デモアプリ構成.png
src/main/resources/test.properties
が追加したプロパティファイル。
このファイルから、値を取得する。

プロパティファイル内.png
プロパティファイル内は、↑の状態。
# @PropertySource でEnvironmentにプロパティファイルを追加する
“`java
import org.springframework.boot.SpringApp

元記事を表示

簡単な学習 Java

初心者がJavaをより速く、より速く学ぶために一歩一歩

![簡単な学習 Small.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/665405/e5701956-f74d-b78f-b2cb-af5f8ecb735a.jpeg)

Javaは強力なプログラミング言語です。 習得が簡単で楽しいJava。 この本はJavaを生き生きとさせ、風変わりでフルカラーのイラストが物事をより明るい面に保ちます。 オブジェクト指向プログラミングを整理し、クラスとメソッドでコードを再利用する方法、ループや条件ステートメントなどの制御構造を使用する方法、Javaでシェイプとパターンを描画する方法、キャンバスでゲーム、アニメーション、グラフィックを作成する方法を学びます。

ほんの少しの時間で、Javaを使用して設計および開発する方法を学ぶことができます。 この本の各レッスンは、わかりやすいステップバイステップのアプローチを使用して、前のレッスン

元記事を表示

PATHが通らない…原因は文字コード

新しく買ったPCにJDKをインストールし、環境変数を設定しました。そしてjavacコマンドを実行、、、

![コマンド プロンプト 2020_07_04 10_41_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581663/95a612a2-662b-d318-87b2-5cd6a4ae54f9.png)

うーん、環境変数の設定を再確認してみても間違いは見当たらない。
そこで文字コードの問題かもしれないと思い、入力したパスの文字コードを確認してみると
![2020-07-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581663/5ff11cb1-2ca4-912a-050a-933ae4271cf4.png)

どうやら円マークが**U+005C**ではなく、**U+00A5**になっていたようです。
そもそも私たちがWindowsの日本語キーボードで入力している円マークは実は円マークではなく**バック

元記事を表示

【Java】ジェネリクスクラスおよびジェネリクスメソッド

## はじめに
ListやMapでお馴染みのジェネリクスについて、なんとなく利用しているが、自作クラスに対してジェネリクスを使用する場合にあやふやになることがあるので最低限覚えておきたいことを残しておく。

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

## 検証用ソースコード

“`java:Generics.java
package generics;

import java.util.ArrayList;
import java.util.List;

public class Generics {

public static void main(String[] args) {
Bean beanForStr1 = new Bean();
beanForStr1.setValue(“文字列”);
System.out.println(beanForStr1.getValue());

Bean beanForInt1 = new Bean

元記事を表示

Javaのメソッドバインディングについて

今日はJavaのメソッドバインディングに関して記事を書こうと思います。
普段Javaを勉強していてあまり意識していなかったのでこの際ちゃんと整理することにします。
#事前知識
事前知識としてキャストについて復習しておきましょう。キャストには明示的な型変換と暗黙的な型変換があります。詳しくは以下のURLを見てみてください。

Javaでint型とdouble型を変換する方法を現役エンジニアが解説【初心者向け】


それとコンパイル時と実行時のタイミングについても知っておいた方がいいでしょう。コンパイル時とは自分が書いたJavaファイルがバイトコードに変換されるタイミング。実行時とはそのバイトコードをJVMが実際に実行するタイミングです。Eclipseで開発している場合は通常コードを書いたら勝手にコンパイルされ、実行ボタンを押したタイミングでコードが実行されます。ターミナルなどで開発してる時はjavacコマンドでコンパイルしてclassファイルを作ったらjavaコマンドで実際に実行しますね。
それと記事内で使用してる「結びつける」とか「バインドする」っていうのは全部同じ意味で使っています。(紛らわしくてご

元記事を表示

OTHERカテゴリの最新記事