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

JAVA関連のことを調べてみた2020年09月01日
目次

VSCodeでJARファイルからライブラリを読み込む方法《Maven/Gradleを使わない方法》

Javaで軽くプログラミングをしたくて、ビルドツールをセットアップするのは面倒な場合に直接JARファイルを読み込みたいときのための忘備録。

2020年4月のVSCode Java Extensions Packの[アップデート](https://github.com/microsoft/vscode-java-pack/blob/master/release-notes/v0.9.0.md#work-with-jar-files-directly)で、Maven/Gradleを使わずに読み込むことができるようになった。

# Java Extensions Pack
Java Extension PackはVSCodeでJavaプログラムを作成・デバッグ・テストするための拡張機能。インストールは[ここから](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack)。

# JARファイルを読み込む
左のタブで「JAVA DEPENDENCIES」の下の「Referenced Librar

元記事を表示

2020年のMavenリポジトリの作り方

# はじめに

Javaのエンジニアであれば何だかんだでMavenリポジトリを使うことは非常に多いと思います。Gradleであっても使いますしね。

OSSなどはセントラルリポジトリから落とすとして自作のライブラリの管理をどうしていますか? ローカルだけで開発していれば`mvn install`で事足りますが、CI/CDを行っていたりチームや組織でライブラリを共有している場合はそうもいきません。

という分けで今回はMavenで作成したライブラリを公開するための方法に関してまとめました。ちなみに2020年8月時点でのおすすめはGCSをリポジトリにする方法です。

– Maven Central Repositoryに登録
– OSSのリポジトリサーバを立てる
– GitHub Pagesを使う
– GitHub Packages + Actions を使う
– S3/GCS/Azure Blobにリポジトリを構築する
– GCP Artifact Registry

# Maven Central Repositoryに登録

もっとも正攻法の手順となります。登録手続きはややめんどく

元記事を表示

ObjectMapperクラス

# ObjectMapperとは
ObjectMapperは、Jacksonライブラリの主要なアクタークラスです。 ObjectMapperクラスは、基本的なPOJO(プレーンオールドJavaオブジェクト)、または汎用のJSONツリーモデル(JsonNode)との間でJSONを読み書きする機能と、変換を実行するための関連機能を提供します。

また、さまざまなスタイルのJSONコンテンツの両方で動作し、ポリモーフィズムやオブジェクトIDなどのより高度なオブジェクトの概念をサポートするように高度にカスタマイズできます。 ObjectMapperは、より高度なObjectReaderおよびObjectWriterクラスのファクトリーとしても機能します。

**※簡単にいうと?**
JacksonのObjectMapperはJava Objec↔Jsonパーシングを簡単にしてくれるクラスです。

# 使ってみた!
今回、WebSocketを利用してチャットアプリケーションを作成していますが、
実際、使っている箇所のソースコードを共有します。

“`java

@Slf4j
@Require

元記事を表示

#3【備忘録】do〜while文

#はじめに
 今日の東京は曇りだったおかげで日中はいつもより涼しかったです(32℃はあったと思いますが、、、)
 今日は私自身まだ慣れていないdo〜while文について書いていこうと思っています!

#開発環境
今回も”Eclipse”で総合開発環境でやってみました。
こちらの記事を参考に開発環境を構築してみてください。

[EclipseでJava開発環境を作る(Mac編)](https://codeaid.jp/eclipse-java-mac/)
※今回もMacでの作業となります。

#実装
“`java

class Main {
public static void main(String[] args) {
int number = 1;
do {
number ++;
System.out.println(“number = ” + number);
} while (number < 5); number = 4; do {

元記事を表示

アリババ大規模データセンターのパフォーマンス監視と分析の課題と実践

本記事では、**アリババ**の大規模データセンターの**パフォーマンス**監視・分析の課題と実践を紹介します。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/performance-analysis-of-alibaba-large-scale-data-center_594676)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

#独身の日、ショッピングフェスティバル
アリババの代表的なデータクランチイベントは、毎年中国の独身者の日を記念してプラットフォーム全体でセールを行う「11.11グローバルショッピングフェスティバル」です。

下図は2017年時点のデータを使用しています。イベントの規模がわかるように、左上のグラフは売上高の数字を示しています:約253億米ドルで、これは同年のアメリカの感謝祭、ブラックフライデー、サイバーマンデーを合わせた売上高を上回っています。

![image.png](https://qiita-image-

元記事を表示

[ev3×Java] 複数モーターの制御(メソッド、ランダム、確率、制限時間、配列)

この記事はJavaでev3を操作してみたい人のための記事です。
今回はタンクをいろいろな方法で制御していきたいと思います。

#目次
0 . 用意するもの
1 . 複数モーターの制御
 1-0 . タンクを前進させるプログラム
 1-1 . メソッドをつくって制御する
 1-2 . 引数を指定できるメソッドをつくる
 1-3 . StopWatchクラスを使うプログラム
 1-4 . メソッドを指定した確率で呼び出すプログラム
 1-5 . 配列を使うプログラム
最後に

#0.用意するもの
◯ ev3(タンク)
◯ Lモーター/Mモーター
◯ パソコン(eclipse)
◯ bluetooth
◯ microSD
◯ [API Documentation](http://www.lejos.org/ev3/docs/)(これをみながら進めていくのがオススメです。)

 

#1.複数モーターの制御

##1-0 . タンクを前進させるプログラム

◯タンクが5秒間前進して方向転換するプログラムです。
必要なメソッドを並べるだけのシンプ

元記事を表示

JVMパフォーマンスチューニング:チューニングとは何か、適切なプランの立て方について

![Something went wrong]()
**JVM**のパフォーマンスチューニングは、体系的で複雑な作業です。この記事では、その概念を説明し、**JVM**のパラメータを使用してアプリケーションのチューニングを実行する方法を示します。

**本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/how-to-properly-plan-jvm-performance-tuning_594663)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。**

#パフォーマンスチューニングレイヤー
システムの性能を向上させるためには、様々な視点やレイヤーから最適化する必要があります。最適化の対象となるレイヤーは以下の通りです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/c760a744-75b1-f0c4-cdb0-fda2a18b7a

元記事を表示

JavaでTODOアプリを制作しよう6 検索機能の実装

こんにちは。今回はSpringで検索機能の実装を行いたいと思います。

## TODOアプリ作成リンク集
[1: MVCの簡単な説明](https://qiita.com/nomad_kartman/items/bce2f4831b7b769f84f2)
[2: Spring Initializrで雛形を作ってHello worldしたい](https://qiita.com/nomad_kartman/items/e173ea95b3ead96a412a)
[3: MySQLに仮のデータを保存 -> 全取得 -> topに表示する](https://qiita.com/nomad_kartman/items/f5f13037f048eeecf492)
[4: 投稿機能の実装] (https://qiita.com/nomad_kartman/items/113cdfc3c5cd1f5c0cef)
[5: TODOの表示を切り替える] (https://qiita.com/nomad_kartman/items/c86f77c0435962b9ca37)
6: 検索機能の実装(今ここ)

元記事を表示

[Java] 条件分岐

#if文
 if文は数値や文字列などの評価(比較)結果を判定します。評価結果が「true(真)」の場合、ifブロック内の処理が実行されます。評価結果が「偽 (false)」 の場合はelse文を組み合わせます。

“`
if( 条件文 ) {
// 条件文が真 (true) のときにここが実行される
}
else {
// 条件文 が偽 (false) のときにここが実行される
}
“`
 if文など、処理分岐するためには条件を判定する必要があります。判定のことを「評価」と呼びます。

##関係演算子

![関係演算子.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646368/0e286b4c-f331-0b89-1311-879360d4e46f.png)

##論理演算子

![drow.io.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646368/0e3126f7-94e5-c1cb-

元記事を表示

KotlinとC#からみたJava言語

# はじめに

「KotlinとC#からみたJava言語」というタイトルからは、KotlinやC#に詳しい人間が、Javaを体験してみた結果の報告というようなものを期待する人もいると思うのだが、これはそうした文章ではない。JavaもC#も遊び程度に触ったことがある人間が『Kotlin In Actin』という本に刺激を受けて(また、業務都合でC#の本も一冊読んで)書いたものだ。この本は大変面白い本で、Kotlinの知識だけでなく、Java言語についての見識も深めることができた。

本稿はその知見を、プログラミング言語について考える材料になるのではないかと思い、残すものだ。

# Javaの弱点

なぜKotlinやC#を勉強するとJavaの知見が得られるのか。それは両言語ともにJavaを大いに参考にし、それをもっと使いやすくするために設計された言語だからだ。そのため両言語が補った部分を見ると、逆にJavaの何を弱点として認識したのかが分かる。

では一体Javaの弱点とは何なのか。沢山あるのだが、ここでは、①値型定義機能の欠如、②仮想関数の継承、③NULL安全の欠如の3つに絞ることにす

元記事を表示

担当したPJの単体テストが地獄絵図だったので独自に作成したガイド(?)を公開する

# はじめに
こんにちは, ねげろんです。

2020年上期にとあるJavaの開発案件にアサインされたのですが, 自分含めメンバが作成したUTコードが __カオスここに極まれり__ でした。

例えば,
・JUnit4とJUnit5のコードが混在しているテスト
・何もassertせずにただメソッドを呼んでいるだけのテスト
・成功するときと失敗するときがある再現性がないテスト
・ステータスコードが200だろうが404だろうが500だろうが成功してしまうモックを使った正常系テスト
などなど・・・。

本PJは追加機能実装のため下期も開発を継続するのですがこのままではまずいと思い,
先輩社員の方に相談のもと単体テストのガイド(?)を作ることにしました。

本記事ではそのガイドを公開します。

ただし, 上述したような __混沌とした現場__ のためのガイドであるということをご承知おきください。

また筆者自身も単体テストに精通しているわけではありません。
もし「もっとこうしたほうがいいよ!」や「それは間違っている!」みたいな意見がございましたら是非コメントに書いていただければと思います!

元記事を表示

bootstrap-selectで作ったセレクトボックスを活性化できないときの対応方法

– 環境
– CentOS Linux release 7.8.2003 (Core)
– openjdk version “11.0.7” 2020-04-14 LTS
– JSF 2.3.9
– jquery 3.2.1
– bootstrap 4.3.1
– bootstrap-select 1.13.14

# 事象 : bootstrap-selectで作ったセレクトボックスを活性化できない

1. 初期表示時にセレクトボックスを非活性にする
1. チェックボックスを変更すると`onchange`イベントでセレクトボックスの活性非活性を切り替える

はずが活性化しない・・・・
![a.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159761/09dac3cf-d89e-3516-3048-b81f823c8e64.gif)

“`xml:XHTML


元記事を表示

逆コンパイルして理解する、Java視点からのScala入門(基本編)

この記事は富士通システムズウェブテクノロジーの社内技術コミュニティで、「イノベーション推進コミュニティ」
略して「いのべこ」が企画する、いのべこ夏休みアドベントカレンダー 2020の14日目の記事です。
本記事の掲載内容は私自身の見解であり、所属する組織を代表するものではありません。
ここまでお約束 😉

# はじめに

この記事は、Scalaを始めたJavaプログラマが、Scalaをコンパイルして生成されたclassファイルを逆コンパイルし、
Java的な観点からScalaを理解したいなと思いついて始めたものです。

基本的な流れは以下の通りで進めていきたいと思います。

* [docs.scala-lang.org/ja](https://docs.scala-lang.org/ja/)の「TOUR OF SCALA」を見ながら、scalaコードを写経する
* [jd-gui](http://java-decompiler.github.io/)というJava Decompilerを使用してclassファイルを逆コンパイルする
* 逆コンパイルしたソースコードを眺めて、あ

元記事を表示

新卒SESの備忘録 【Java オブジェクト指向編】

#【Java オブジェクト指向編】

新人研修時のJava オブジェクト指向のメモです。

##オブジェクト指向(プロパティ、メソッド) 

部品化の考え方であり、「人間が把握しきれない複雑さ」を克服するために考えられた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/472549/8d4fea25-4675-94c9-be92-bbaf44bcdb8d.png)

“`java
//①
public class Car{
String maker
int displacement
String color

void start(){
System.out.println(“発進”)
}
void turn(){
System.out.println(“曲がる”)
}
void stop(){
System.out.println(“停止”)
}
}
“`
“`java
//②
public class TestCar

元記事を表示

Effective Java 回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使う

Effective Javaの独自解釈です。
第3版の項目70について、自分なりにコード書いたりして解釈してみました。
# ざっくり
「回復可能」とは、例外が発生してもカレントスレッドを停止させず、別の制御に状態を戻せること。例外が発生する可能性をメソッド実装者が認識しているので、チェック例外を出力し、メソッドの呼び出し元にハンドリングを強制させる。
「プログラミングエラー」とは、メソッドが実装者の禁止している使われ方で使われ、カレントスレッドを停止させる必要があるもの。(一般にキャッチすべきではない)実行時例外を出力させる。
# チェック例外が必要な例
以下のようなサービス層のメソッドを考える。

– 指定したIDの本を購入
– 参照テーブルは「本」「銀行口座」「購入済み本」テーブル
– 「銀行口座」に本を購入できる金額があれば、「購入済み本」に本を追加し、「銀行口座」の残高を減らす
– 「銀行口座」に本を購入できる金額がなければ、残高不足例外を出力

※ テーブル定義などは省略しています。

**本購入メソッド**

“`java

/**
* 指定したID

元記事を表示

SXSSFWorkbookを利用する際の個人的な注意点 (行単位のアクセス単位は避けたほうが無難 / 既存のxlsxファイルで書き込み済みの行にはアクセスできない)

# 概要

Apache POIでXSSFWorkbookを利用する場合、頭をもたげてくるのはメモリ問題。XSSFWorkbookは読み込んだデータや書き込んだデータをすべてメモリ上に展開します。そのため、大きなサイズのExcelを作ったり読んだりするときはよくよく注意しないと、OutOfMemoryErrorを起こしがちです。

Apache POIではこのXSSFWorkbookのメモリ食いすぎ問題に対応するため、SXSSFWorkbookという、全データをメモリには展開せず、一時ファイルに書き出すことで、メモリ消費量を節約するAPIが用意されています。XSSFWorkbookと同じWorkbookインターフェースを実装しているので、

“`java
Workbook book = new XSSFWorkbook();
// ↓
Workbook book = new SXSSFWorkbook();
“`

というように、実装クラスだけ差し替えて、メモリ消費量節約を実現した気になることが多いのですが、SXXFWorkbookには利用上の注意点があります。

# 1. 行単位

元記事を表示

JavaFX + IntelliJ + Scene BuilderでGUIアプリケーションを作るサンプル

# はじめに
GUIアプリケーションを作りたいと思いました。GUIアプリを作るためのライブラリやフレームワークは色々ありますが、個人的には一番得意なJavaで作れたらいいなと思い、JavaFXを使って開発するための環境構築をしてみました。
~~サンプルを作っただけで満足しちゃったけど!~~

肝心なところは他の記事に丸投げするクソ記事ですのでご注意ください。
でも、他の記事に書かれているのと同じことをそのまま書くのは色々とアレだと思うので仕方ないのではないかと(言い訳)

ソースはこちらです。
https://github.com/dhirabayashi/javafx_sample

# 超適当な用語説明
## JavaFX
* Javaでいい感じのGUIアプリを作れるライブラリ
* もともとはRIAのライブラリだったが、~~RIAがオワコンになったため~~今は普通のGUIライブラリになっている
* 今はJDKに同梱されなくなったので、OpenJFXを別途導入する必要がある(Gradleがいい感じにやってくれるけど)

## IntelliJ(IntelliJ IDEA)
* Jav

元記事を表示

AtCoder Beginner Contest 177 C問題「Sum of product of pairs」解説(Python3,C++,Java)

注意)解答例はPython3のみ出来ております。C++,Javaの方は「全ての提出」からコードを見て実装することをおすすめします。

皆さんこんにちは(コンテスト後の方はこんばんは!)Ruteです!

AtCoder Beginner Contest 177 C問題の解説をこれから始めます!
A問題,C問題の解説は以下のリンクより見ることが出来ますのでご確認下さい!!

##各問題の解説
|A問題|B問題|C問題|
|—|—|—|
|準備中|準備中|この記事です|

#問題概要
$N$個の整数$A_1,…A_N$で構成された数列が与えられる。
$1 \leq i < j \leq N$を満たす全ての組$(i,j)$についての$A_i×A_j$の和を$mod(10^9+7)$で求めよ。 問題URL :https://atcoder.jp/contests/abc177/tasks/abc177_c ##制約 ・$2 \leq N \leq 2×10^5$ ・$0 \leq A_i \leq 10^9$ ・入力は全て整数 #解説 $A_1,...A_N$

元記事を表示

【Android 9.0 Pie Java】RecyclerView 長押しで要素毎に内容の変わるコンテキストメニューを表示する

RecyclerViewで要素を長押しして、要素毎に内容の変わるコンテキストメニューを表示する方法の記事が見当たらなかったのでメモしてみます!

↓完成イメージ↓
![7c30d4aa9804094e0e83ddb1b9247cb8.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285286/85bfd135-43e4-7a80-315c-c2ee6e4e2fd7.gif)

## 実装方法
### コンテキストメニューの表示
Activity or Fragmentに

“`
View.OnCreateContextMenuListener
“`
をimplementsします。

“`java:SampleFragment.java
public class SampleFragment extends Fragment
implements View.OnCreateContextMenuListener {
“`
他にもViewHolderにimplementsするパターン

元記事を表示

AtCoder Beginner Contest 177 B問題「Substring」解説(Python3,C++,Java)

皆さんこんにちは(コンテスト後の方はこんばんは!)Ruteです!

AtCoder Beginner Contest 177 B問題の解説をこれから始めます!
A問題,C問題の解説は以下のリンクより見ることが出来ますのでご確認下さい!!

##各問題の解説
|A問題|B問題|C問題|
|—|—|—|
|準備中です|この記事です|準備中です|

#問題概要
文字列$T$が$S$の部分文字列となるように、$S$のいくつかの文字を書き換えます。
少なくとも何文字書き換える必要があるでしょう。
ここでの部分文字列は連続する部分列のことを指します。
例) `’xxx`’は`’yxxxy’`の部分文字列であるが、`’xxyxx’`の部分文字列ではない。

問題URL : https://atcoder.jp/contests/abc177/tasks/abc177_b

##制約
・$S$,$T$は$1$文字以上$1000$文字以下
・$T$の長さは$S$の長さ以下
・$S,T

元記事を表示

OTHERカテゴリの最新記事