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

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

Javaの配列について

## Java 配列
Javaの配列について学習しましたので、配列のメリットや使用例などアウトプットしていきます。

## 変数が持つ不便さと配列のメリット
今回は、点数管理プログラムを用いて変数と配列の使い方の比較をし、配列を使うメリットを解説します。

### 変数を使ったプログラム
“`java:test
public class Main {
public static void main(String[] args) {
int sansu = 20;
int kokugo = 30;
int rika = 40;
int eigo = 50;
int syakai = 80;
int sum = sansu + kokugo + rika + eigo + syakai;
int avg = sum / 5;
System.out.println(“合計点:” + sum);
System.out.println(“平均点:” + avg);
}
}
“`
### 実行結果
“`
合計点

元記事を表示

アリババのオープンソースのトラブルシューティングツール 「Archas 」

この記事では、**アリババ**のオープンソースの**トラブルシューティングツール「Archas」**の概要と主な機能、そして今日から使い始められる方法を紹介します。

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

#Arthasの全機能とは
この記事を書いている時点では[バージョン3.1.1](https://alibaba.github.io/arthas/en/release-notes.html?spm=a2c65.11461447.0.0.26773774iloTj8)ですが、現在のバージョンのArthasの主要な機能を見てみましょう。Arthasは以下のことができます。

– クラスがロードされているかどうかのチェック
– クラスを逆コンパイルしてコードが期待

元記事を表示

AnsibleとJenkinsを使用してTomcat、Java、MySQLからなるイメージをデプロイ

このチュートリアルでは、**Ansible**と**Jenkins**を使用して、Tomcat、**Java**、MySQLで構成されたイメージを**Alibaba Cloud**上にデプロイします。

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

#前提条件
1. 最低でも1台の[Jenkinsサーバ](https://www.alibabacloud.com/blog/ci%2Fcd-with-jenkins—part-1%3A-install-jenkins-on-ubuntu_593717?spm=a2c65.11461447.0.0.53a46c64aNElRK)が必要です(マスターのみまたはマスター/スレーブ設定の場合)。

そして、Jenkinsサーバのマスター/スレーブ(エ

元記事を表示

Ubuntu 18.04にWildFlyをインストールする方法

**WildFly** は、**Java** で書かれ、Red Hat によって開発されたフリーのオープンソースでクロスプラットフォームなアプリケーションです。

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

#必要条件
– Ubuntu 18.04デスクトップがインストールされた新鮮なAlibaba Cloudインスタンス。
– インスタンスにrootパスワードが設定されています。

#Alibaba Cloud ECSインスタンスを起動
[新しいECSインスタンスを作成](https://www.alibabacloud.com/help/ja/doc-detail/25424.htm)し、少なくとも4GB RAMを搭載したオペレーティングシステムとしてUbuntu 18.04を選択し

元記事を表示

【自分用メモ】BufferedReaderを使用したファイルの読み込み

FileReaderは一文字ずつ読み込むメソッド。
これをBufferingFilterを使用して、処理効率を上げよう!

“`java

package practice1;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Read {

public static void main(String[] args) {

//FileReader=1文字ずつ読み込む動き
//BufferedReader=一定数読んでため込んで、たまったら放出(普通は一行ずつ)

FileReader fr=null;
BufferedReader br=null;

//finallyメソッドでclose処理ができるように、tryメソッドの外側で宣言。
//もしtryメソッド内で宣言してfinallyメソッドでclose()しようとするとローカル変数重複になる。

try {
fr=new FileRe

元記事を表示

GCPのDataFlowを簡単に触ってみた記録

# Intro
Google Cloud Dataflowを触ることがあったので、備忘も兼ねてどんな感じだったか記録を残す。

# Google Cloud Dataflowって?
簡単に言うと、ストリーミングデータやらの操作・管理を取り持ってくれる[GCPのサービス](https://cloud.google.com/dataflow)です。
今回はPubSubで受けたデータをDataFlowを介してCloudStrageに配置しようと思います。
ログやトラッキングデータのような物が不特定多数postされ、それを保持したり後の分析に利用するようなケースを想定しています。

# 1.Pub/Subにトピックを作成
Pub/Subってまたストレートな名前ですが、こちらもGCPのサービスです。所謂メッセージングというかキューというか。
今回のデータの始点、ある意味トリガーとなります。
とりあえず普通にGUIのコンソールから名前をつけるだけです。

# 2.CloudStorageにバケット用意
今回の終点となる場所を用意しておきます。
新たにバケットを作るか、既存であれば任意のフォルダを用

元記事を表示

【自分用メモ】BufferedWriterを使用したファイルの書き込み

FileWriterは一文字ずつ書き込むメソッド。
これをBufferingFilterを使用して、処理効率を上げよう!

“`java

package practice1;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class Write {

public static void main(String[] args) {

FileWriter fw=null;
BufferedWriter bw=null;

try {

//cドライブには事前にworkファイル作成しておく

fw=new FileWriter(“c:\\work\\filetest.txt”,true);
//workフォルダにfiletestファイルを生成。もしあればそれを使用する

bw=new BufferedWriter(fw);
/*行ごとに書き込むために、「ため込んで一定量ずつ放出する」

元記事を表示

【JavaとSQLをつなぐJDBCについて】

# はじめに
JavaとSQLをつなぐJDBC(Java Database Connectivity)の実装が難しかったので備忘録として残します。

##開発環境
・OS  
 Windows10
・エディタ
 Ecripse
・Java
 OpenJDK 8
・SQL
 MySQL

##1,JDBCとは
JDBC(Java Database Connectivity) はJavaとRDを接続しJavaから操作するためのAPIです。
JDBCという概念を利用してJavaからSQLへデータを登録、更新、削除したり、SQLからデータを取り出したり出来ます。
DBにはOracle、MySQL、SQLServer等様々な種類がありそれぞれDBへ接続する方法も、DBの種類によって
変わってきますが、JDBC経由でDBに接続するとDB毎の個性をほとんど気にせずアクセスできるようになります。

JDBCの歴史等わかりやすい記事があったので載せておきます。

今さら聞けないIT用語:やたらと耳にするけど「API」って何?

##2,実装
実装にあたり下記手順でJDBCを実装して

元記事を表示

【Java】JSON 通信 with jackson

# java で json の通信を行う (jackson を利用)
### 環境
– windows10
– eclipse:2020-06 (4.16.0)
– jackson
– java 1.8

例によって忘備録です・・・

## 順序
1. Dto 生成
2. jackson を使って Dto -> json に変換
3. HttpURLConnection を使って通信
4. 結果取得

## Dto 生成
“`java
public class SampleDto implements Serializable {
private static final long serialVersionUID = 1L;  // ちゃんと生成した方が良さげ

private int id;
private String mail;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getMail() {

元記事を表示

開発未経験エンジニアのための開発業務に携わるためのプロジェクト

# 概要

未経験のエンジニアの方でどうやったら開発に業務に携われることができるかご相談を受けました。相談に対して回答していく中で2人で一緒に何か作っていこうという話になり、それ自体をプロジェクトとして発足しました。

最初に結論から申し上げるとこのプロジェクトの取り組みによって無事に開発現場が決まりました。継続的に活動を続けていくことで1つの成果となり、それらの記録として残すためQiitaの記事としてまとめようと思いました。

# なぜプロジェクトとして発足したのか?
今回の場合は未経験のエンジニアの方で目標設定も定めづらそうなイメージがありました。こちらから提案してもよいのですが、できるだけご自身の目標にあったテーマを一緒に考えてモノづくりを取り組むようにしました。

また取り組む際の考え方も一緒に共有できればと考えました。もちろんペアプログラミングなどで技術的なことは共有はしますが、技術だけでなく解決に至るまでの考え方を一緒に共有し、エンジニアとしてお互いに考える力を伸ばすことを大切にしました。

開発手法だけでなく問題に対する解決方法など総合的に取り組むためにプロジェクトとして

元記事を表示

JPAのOneToManyのdeleteがupdateになる

JPAのOneToManyのコレクションを削除をする場合、“`CascadeType.REMOVE“`や“`orphanRemoval = true“`を使用する。このとき、発行されるSQLは“`delete“`を期待するが“`update“`になってしまった。これの原因はエンティティ間の定義(“`OneToMany“`とか“`JoinColumn“`)がおかしい場合になるらしい。具体例を出せなくてアレだが https://stackoverflow.com/questions/17079649/jpa-orphanremoval-true-tries-to-update-not-delete とかが参考例になる、と思う。

元記事を表示

【Java】ライブラリを用いてJson文字列の要素を編集してみる

# やりたいこと
“`java
String jsonString = “{\”Apple\”:{”
+ “\”cost\”:\”0\”},”
+ “\”Pen\”:{”
+ “\”cost\”:\”0\”}}”;
“`
やりたいのは以下の2点です。

* 上記のJson文字列の`”0″`にあたる部分を編集したい。
* 新たなキー`”ApplePen”`を追加したい。

今回は以下の代表的(?)なJsonを操作するためのライブラリを使ってみます。

* Gson
* Jackson

# 実行環境
Android Studio: 3.4.1
gradle: 5.1.1

# ライブラリ追加
追加するライブラリをbuild.gradleのdependenciesブロックに記述します。

dependencies {

implementation ‘com.google.code.gson:gson:2.8.5’
implementation ‘com.fasterxml.jackson.core:jackso

元記事を表示

java.util.logging.Loggerのログレベルについて

## java.util.logging.Loggerとは
Javaの標準API。エラー情報を内容に応じてログ出力する。

## 使用方法

まずは基本的な使い方です。主な登場実物は以下の3つです。
1. Logger – ログを出力するオブジェクト。
2. Handler – ログの出力先を制御するオブジェクト。
3. Formatter – ログのフォーマットを制御するオブジェクト。

初めにLoggerインスタンスを作成します。

“`
Logger logger = Logger.getLogger(“loggerの名前”)
“`

次にHandlerインスタンスを作成し、loggerに登録します。Handlerは複数個登録できます。
今回はC:\sample\sample.logを出力先としたHandlerを作成します。ファイルを出力先とする場合はHandlerインターフェースの実装クラスFileHandlerを利用します。

“`
Handler handler = new FileHandler(“C:\\sample\\sample.log”);
logger.a

元記事を表示

インターフェースの利点

# はじめに

クラス間で共通する操作をひとまとめに定義させたり、空のインターフェースを定義することで実装クラスに何らかの特性をもたせて処理の意図を明確にさせたりと、インターフェースにはクラスの設計を助けてくれる利点が色々とあります。

中でも次に掲げる点は、インターフェースの最大の利点と感じる人が多いのではないのでしょうか。

* **利用者[^利用者]がそのクラスの内部構造を知らずして、ある契約[^契約]に沿ってそのクラスの機能を利用することを強制させることができる点**
* **実装が変更した場合に生じる不必要な修正を防ぎ、変更に強いプログラムを維持できる点**

ただ、これらの意味がいまいち整理できていなかったので、自分なりの言葉で整理することとしました[^me]。

# インターフェースを使わないと・・・

例えば次のように、Aクラスに3つのメソッドを定義したとします。

“`Java:
class A {
// コールするメソッド
void call() {
System.out.println(“たたいて・かぶって・ジャンケンポン”);

元記事を表示

[Java]処理時間の計測方法メモ

## コード

“`
long hogeStart = System.currentTimeMillis();

// 計測したい処理

long hogeEnd = System.currentTimeMillis();
long hogeTime = hogeEnd – hogeStart;
System.out.println(“処理時間: ” hogeTime + ” ms”);
“`

## 実際の使用

– 以下をClipy等でスニペット登録しておく

“`
long hogeStart = System.currentTimeMillis();
long hogeEnd = System.currentTimeMillis();
long hogeTime = hogeEnd – hogeStart;
“`

– 計測したい処理を行入れ替え等で間に挟み込む
![d321cd92f73344804aefe4af36029bfa.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4065

元記事を表示

IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた(6.DBアクセスアプリケーションの準備 (java))

#はじめに

「[IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた](https://qiita.com/shimauma_Zzzzz/items/9a513abdf02d11fff55b)」の 第6回です。
ここでは、 サンプルアプリケーションの準備ついて記載します。

実施内容は以下の通りです。

– コンパイル環境の概要
– ソースの準備
– war ファイルの出力

筆者自身がアプリケーション開発者ではないため、より良いやり方や
より品質の高いコードなどがあると思いますが、 当記事では動かすことを主目的とし、
品質やセキュリティ、エラー処理などは考慮しませんのでご注意ください。
個人的にテーブル名等をハードコードしているのも気に入りませんが、まぁ気にしないでください。

#コンパイル環境の準備

Java アプリケーションのソースからコンパイルするためには JDK を含む IDE (Integrated development Environment) が必要です。
(厳密には、JDK だけあればコンパイルできますが…)

IDE には E

元記事を表示

【Java基礎】for文で三角形を作ろう

会社の先輩から新米のぼくに出された、Javaでfor文を使い色んな三角形を作る問題です。
こちらはJavaですが、単純なfor文で作れるので他の言語でも挑戦してみてください。

扱う形は以下の画像のとおり。

![triangles.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/520805/bdc76cda-f0f2-1153-4c7d-c06295ef4278.png)

## 対象読者

・プログラミングを勉強中の方
・最近エンジニアになった方
・Javaを勉強したい方

#問題① 正三角形 ▲

“`
public class Main {
public static void main(String[] args) {
int max = 5;
String star = “*”;

for (int i = 0; i < max; i++) { for(int j = 0; j < max-i; j++)

元記事を表示

競プロ(AtCorder)の標準入力を楽にするためmakeを使う  C++/Java/PythonのサンプルMakefile掲載

# はじめに
 最近、学生プログラマや現役プログラマの間で競技プログラミングが流行ってますね(体感)。
私はコンテストに参加はしませんが、新しい言語を覚えるときの試し打ちとして競プロの問題を解くことが多いです。なかなか面白いです。

 問題はたいてい、**入力例が提示されていますが、それを標準入力するのって面倒**ではありませんか?
できれば自動化したいです。**自動化すればトライアンドエラーの効率が上がって得点アップ**が期待できますね!
自動化する方法はいろいろありますが、この記事ではmakeコマンドを用いるものを紹介します。
MakefileはサンプルとしてC++,Java,Python用のものを載せます。
コンパイル言語、Java系言語、スクリプト言語のサンプルを提示すれば、後は使用者が言語に合わせて書き換えてくれるだろう
という魂胆があります。

本記事のMakefileやディレクトリ構造をgithubに上げました。よかったら使ってください。
https://github.com/aoi-stoic/AtcorderTemplate

#### 想定読者
– makeコマンド

元記事を表示

【Java】Enumでif文を少なくする

# はじめに
保守・開発でプログラムに触れる際、その8割はソースコードを読む時間に費やされるというのはよく聞く話です。
そのため、可読性の高く、保守性の高いソースコードというのは常に意識されるべきですが、どうしても業務システムとなると、ある契約の種類だとか、取引先の種類だとか、種類による条件分岐がどうしても多くなりがちだと感じています。
そこで、if文を少なくなるする方法の1つとしての、Enumを使用した方法があるということを知ったので、忘れないように投稿します。

# if文を少なくするメリット
if文による条件分岐が多い場合、Enumを使用することでとても読みやすくなります。

# 具体例
“`SampleEnum.java
public enum SampleEnum {

kind1(new Kind1()),
kind2(new Kind2()),
kind3(new Kind3()),
kind4(new Kind4());

SuperKind kind;

private SampleEnum(SuperKind kind) {
this.kind =

元記事を表示

【Eclipse】補完機能を使いたいけど、スペースで補完を確定してしまうのをなんとかしたい

#現象
使用しているエディタ
Eclipse 4.8.0
macOS Catalina 10.15.6

Eclipseの補完機能を有効にして、トリガーには`.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`
を当てている。

“`java
String str =
“`
と入力したいのに、strの後に押すspaceキーで補完が確定される。つまり、自分で決める変数名でも意図しない補完が適応されてしまうので、バックスペースで毎回消去しないといけなくなる。いやだ〜

![string.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/85499718-a8a4-80b3-1a11-76b3bd634316.gif)

#解決
####自動有効化遅延を500に設定

![設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/48964455-

元記事を表示

OTHERカテゴリの最新記事