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

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

Cobol からJAVAへのマイグレーション

ファイルを比較する際に、注意事項
ファイルの読み取りが終わると、
MOVE HIGH-VALUE TO fileName-REC
EOF これから、このファイルは最大値がある

元記事を表示

jar ファイルを実行時に「QuantumRenderer: no suitable pipeline found」エラーが出てしまったら

Eclipce で JavaFX というフレームワークを使ってアプリを作成したとき、完成したアプリを jar ファイルにして実行すると開けなくて、代わりに以下のようなエラーが出現しました。

“`b:コマンドライン画面
>java -jar test.bat
Graphics Device initialization failed for : d3d, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
at com.sun.javafx.tk.quantum.Quant

元記事を表示

SLF4Jとは?

【背景】

エラーでつまづきそもそもSLF4Jとは何だ?
という所から調べてみた。

【エラー文】

“`java
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
“`

##SLF4Jとは?

>SLF4Jは、ロギングシステム用のシンプルなファサードであり、エンドユーザーが展開時に目的のロギングシステムをプラグインできるようにします。

##ファサードとは?
>Facadeクラスとは、使い方が複雑になっているクラス群をまとめ、使いやすい形のインターフェースとして外部に提供するクラスのことを指します。
デザインパターンでは、このFacadeクラスを利用するパターンをFacadeパターンと呼びます。
(ちなみに、Facadeは「窓口」を意味する単語です)

【直訳】
Simple Logging Facade for Java (SLF4J) は、様々なロギングフレームワーク (java.util.logging, logback, log4j など) のためのシンプルなファサードまたは抽象化として機能し、
エンドユー

元記事を表示

【Java】オーバーロード・オーバーライド・継承について

Javaのオーバーロード・オーバーライド・継承について学んだことをメモします。

#オーバーロード
オーバーロードとは、**引数の型や数が異なる同名のメソッドやコンストラクタを複数記述すること。**

##オーバーロードを用いたメソッド

同じメソッド名だが、与える引数の数によって返り値が変わることも。
これは足し算を行うplusメソッドを定義する。

“`keisan.Java
//足し算をする sumメソッド

public class sum {
public int sum(int a) {
return a;
}
public int sum(int a, int b) {
return a + b;
}
public int sum(int a, int b, int c) {
return a + b + c;
}
}
“`
##クラスを継承する。
継承とは、任意のクラスを別のクラスで受け継ぐこと。

今回は先ほどのKeisan.JavaをTask.javaで継承し、引数を

元記事を表示

maven で Java Web アプリを Azure にデプロイする

# 事前に用意しておく情報

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110265/bc501727-3b76-d149-3909-39ca88d51fcd.png)

以下の情報をコンソールなどで確認しておく

appName <-- 図の(1) resourceGroup <-- 図の(2) subscriptionId <-- 図の(3) # pom.xml build 部分を以下のようにセットする。 region runtime などについてはサーバー側の環境にあわせて適宜変更する。 ```xml
maven-compiler-plugin
3.

元記事を表示

Android StudioでXML要素が勝手に並び替えられてしまう問題

最初は以下のように記載していた

“`


元記事を表示

JavaScript 経験者が Java を学習する際の入門前メモ

知り合いの JavaScript 経験者が、Java を学びたいと言ってましたので、簡単な入門前メモをまとめてみました。

# 想定している読者

Web ブラウザで動作する、もしくは NodeJS 環境で動作する JavaScript コードを学んだことがある、もしくは書いたことがある方を想定しています。

きちんと学ぶにはJava入門書を読んだり、良質なコードを多く参照して真似したりすることが有効だと思います。ただ現時点で JavaScript の知識があるのであれば、Java との差分を確認してから学んだほうが理解が早まるのではないか?と思い、このメモをまとめてみました。

このメモが簡単すぎる、冗長すぎると感じる方は、素晴らしいまとめサイトである [Java コード入門](https://java-code.jp/category/java) をお勧めします。

# 開発環境

いまの時代、何らかの統合開発環境を利用することを想定しています。とりあえず想定しているのは、昔ながらの [Eclipse (統合開発環境)](https://ja.wikipedia.org/wiki/

元記事を表示

素因数分解でC言語、Java、Pythonのベンチマーク

Pythonの練習がてら、素因数分解を簡単なロジックで計算させるプログラムを作成してみました。ついでにC言語、Javaでも作成して処理速度を競わせてみたのでアップします。

プログラムは長くなるので結果から。

“`
# C言語
$ ./a.exe 123456789
123456789 = 3 * 3 * 3607 * 3803
所要時間は2.884932秒です。

# Java
>java -jar Factorization.jar 123456789
123456789 = 3803 * 3607 * 3 * 3
所要時間は1245ミリ秒です。

# Python3
>python factorization.py 123456789
123456789 = 3 * 3 * 3607 * 3803
所要時間は60.498295秒です
“`
なんとJavaがトップ。
Pythonが遅いのは、Pythonをほとんど使ったことがない私が作ったプログラムがゴミなのでしょう^^;

しかし、CよりJavaが早いかなぁ。というのが疑問だったので、環境を変えてみることに。Cの実行環境はC

元記事を表示

【Java】 文字列の一部を切り出すsubstringの使い方

#開始位置を指定する場合

“`
String.substring(int beginIndex)
“`

“`java
public class Main {

public static void main(String[] args) {
String sports = “soccer,baseball,basketball”;

System.out.println(sports.substring(7));
}

}
“`

**実行結果**

“`
baseball,basketball
“`
#開始、終了位置を指定する場合

“`
String.substring(int beginIndex, int endIndex)
“`

“`java
public class Main {

public static void main(String[] args) {
String sports = “soccer,baseball,basketball”;

元記事を表示

Java SE Bronze(1Z0-818)合格体験記

## はじめに
Qiita初投稿になります。
今年の7月に開発実務未経験による転職を経て大阪の開発会社で働いてます。
本試験は、Javaの知識がどこまで身についているのか目に見える形として証明したかったというのと、Javaの基礎力向上を目的に資格試験にチャレンジしてみたという経緯です。

## 私のスペック
– 元インフラ運用屋
– Java未経験(もちろん開発実務も経験ありません)
– 少しPHP触ったことがある

## 申込み注意点
– 申込みの手順がかなり複雑
– 試験名に注意

はじめに、”申込みの手順がかなり複雑”については、私が解説するよりも既にわかりやすい記事がありますので、[こちらの記事](https://qiita.com/Channel/items/31e50323d2b7ee78f7cc)を参照ください。
[こちらの記事](https://qiita.com/yoshidayoshidayoshida/items/3b6a4ad8dc48b92af9d8#%E8%A9%A6%E9%A8%93%E6%B3%A8%E6%84%8F%E7%82%B9

元記事を表示

[Java]HashMap,TreeMap,LinkedHashMapのセットした値の保持順

##[Java]HashMap,TreeMap,LinkedHashMapのセットした値の保持順
Mapにはいくつか種類があるけど、格納した値がどの順番で保持されるか(どの順番で出力されるか)違いがある。よく見る(個人的に)Mapたちのそれをまとめた。
どのMapを使うかはこの特徴の違いで選ぶことが多い気がする。

|HashMap|TreeMap|LinkedHashMap|
|:—:|:—:|:—:|
|順序不定|keyの昇順|登録順|

以下、確認してみた。

“`java:test.java
public static void main(String[] args) {
final int key = 0;
final int value = 1;
HashMap hashMap = new HashMap();
TreeMap treeMap = new TreeMap();
LinkedHashMap

元記事を表示

[Java11]Google Cloud BuildからGoogle Cloud Functionsにデプロイする

## 前置き
GCP で Java を動かすには Google App Engine だと思っていたら、今年の春に Cloud Functions でも使えるようになっていました。
[Google Cloud Functions が Java 11 に対応](https://cloudblog.withgoogle.com/ja/products/application-development/introducing-java-11-on-google-cloud-functions/amp/)
※[比較表](https://cloud.google.com/serverless-options?hl=ja#product-comparison)にはまだ載っていない(2020/10/18時点)

これは、Javaで作ったとある処理を Cloud Functions で動かした記録です。

## 環境
– 構成
– GitHub: ソース置き場
– Google Cloud Build: GitHubへのpushをトリガーにビルド&デプロイする
– Google

元記事を表示

Dozer.mapperの使い方

## Dozerとは
Javaのマッピングフレームワークの一つ。
Dozerは、あるオブジェクトから別のオブジェクトにデータをコピーするために再帰を使用するマッピングフレームワークです。フレームワークは、Bean間でプロパティをコピーできるだけでなく、異なるタイプ間で自動的に変換することもできます。

## Dozerのメリット
* クラス間のbeenの受け渡しを簡略化できる
* beenの受け渡し時に値、型の変換ができる

## 設定方法(環境)
### Gradleプロジェクト
「build.gradle」ファイルに下記を記述

記述場所:dependencies
記述コード:

“`gradle
implementation ‘net.sf.dozer:dozer:5.5.1’
“`

### Mavenプロジェクト(今回はこちらを主体に紹介していきます)

pom.xmlに下記を追記

“`java

net.sf.dozer
dozer

元記事を表示

JavaScriptをJavaで呼び出してみる

#はじめに
今回は、Javaアプリケーション内でJavaScriptを使う方法を実践してみます。
JSPの中でJavaScriptを実践知る方法とJavaファイルの中で実践する方法の二つがあります。

###開発環境
eclipse
tomcat
java

#JSPファイルでJSを実行

IndexServlet.java
index.jsp
main.js
を作成していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/764409/97f43cef-b23f-1a52-702a-bfa27938b610.png)

このような階層となっています。

“`servlet.IndexServlet.java
package servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import

元記事を表示

【Effective Java】不必要なオブジェクトの生成を避ける

Effective Javaの独自解釈です。
第3版の項目6について、自分なりにコード書いたりして解釈してみました。

# 概要
– どこでオブジェクトが生成されるかを意識する。
– 用意されているオブジェクトの存在を知る。
– 何度も同じ値で再利用されるようなオブジェクトは定数化する。
– ボクシングでオブジェクトが意図せず作成されることに注意する。

# 不必要にオブジェクトが生成される例と対策
## String

“`java

String s = new String(“hoge”);
“`

このコードでは、まず`”hoge”`という文字が入ったオブジェクトが作成され、次に`new String(“hoge”)`で`”hoge”`という文字が入った別のオブジェクトが作成される。
要するに中身が同じオブジェクトが二重に生成されるのである。以下のようにすることで、オブジェクト生成を一回で済ませられる。

“`java

String s = “hoge”;
“`

## Boolean
`Boolean`オブジェクトは実は以下のように、`String`

元記事を表示

SpringBoot+MyBatis+MySQLの初歩

# 概要
これまでJdbcTemplateの使用経験しかなくMyBatisを使ったことがなかったので、SpringBoot + MyBatis + MySQLを使用してみた。
## 環境
+ macOS Catalina 10.15.7
+ Java11
+ SpringBoot 2.3.4
+ MySQL 8.0
+ Gradle

##やってみたこと
今回は本の情報がDBに登録されており、それを1件取得、全件表示することにします。

+ データベースからID検索し表示
+ 全件取得して一覧表示

■初回アクセス時の画面
![初期画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250449/9f53fc14-b6be-3277-0313-548a2d58dff9.png)

■1件検索(idをフォームに入力して検索を押下)
![検索結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250449/fd9f8f9

元記事を表示

Encapsulation(カプセル化)復習

# Encapsulation(カプセル化)とはなんだっけかな?

最近OOPの基本概念の1つであるカプセル化の理解が薄れていたので、めちゃくちゃ復習範囲狭めで自分の復習用で書きます。

カプセル化ってなんなの?とプログラミングしたことない彼女に聞かれた場合、
簡単に説明すると、**薬のカプセルみたいに、外部から中にあるあの細かい粒たちを守ることw。**と最初に言い、それからコードで説明するかも。

~~外部からオブジェクトに対するアクセスコントロールと自分は理解しています。(本当はもっとあるかもしれない。。)~~
コメントでアドバイスを頂き、自分の理解が間違っていたことに気付けました。

**アクセスコントロールはカプセル化をするための手段なので、カプセル化とは違いますね。**

**カプセル化の説明**

カプセル化は、ソフトウェアを分割する際に、関係するデータとそのデータを必要する処理を1つにまとめ、無関係なものや関係性の低いものをクラスから排除することで「何のためのクラスなのか?」というクラスの目的を明確化するために行い、ほかのクラスに重複するデータや処理がない状態を目指すもの

元記事を表示

Javaのバージョン違いによるオプション使用可否

先日普段と違うPCを使うシーンがありました。
入っているJavaのバージョンを確認しようとしたところ以下のようなエラーが。。

“`Terminal:Terminal
$ java –version
Unrecognized option: –version
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
“`

––versionのオプションは認識されていません?
Javaの仮想マシーンが作成できません??
致命的エラー???

おかしいなぁと思い調べたところ、以下の記事を見つけました。

https://stackoverflow.com/questions/37186197/errorcould-not-create-the-java-virtual-machine-errora-fatal-exception-has-occu

どうやらJDK9以降は ––vesion を使えるらしいですが、
JDK8以

元記事を表示

Doma入門 – トランザクション

## はじめに

データベースアクセスに欠かせないトランザクション機能についてポイントを紹介します。

この記事では、Doma 2.44.0を前提とします。

Domaの他の機能紹介については[Doma入門](https://qiita.com/nakamura-to/items/deaff05ba530317f3cf8)もお読みください。

## 最初に検討すること

トランザクションに関して最初に検討すべきことがあります。
それは、利用しているフレームワーク(SpringFrameworkなど)がトランザクション機能を提供しているかどうかです。提供している場合、まずはそちらの利用を検討ください。

### SpringFrameworkを使う場合

SpringFrameworkはトランザクション機能を提供します。

`org.seasar.doma.jdbc.Config`の実装クラスの`getDataSource`メソッドでは、`org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy`を使ってラップ

元記事を表示

Java/JavaScript/C#で暗号化する

各言語で暗号化。
やってみると、暗号化後の文字列が各言語で違ってしまったりして、意外とハマったりします。
ここでは、Java/JavaScript/C#を取り上げてみます。

# 暗号化
## Java
まずは、Java。

“`java:Crypto.java
import java.nio.charset.StandardCharsets;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

import java.util.Base64;

public final class Crypto {

private static final String KEY = “1234567890abcdef”;
private static final String IV = “abcdef1234567890”;

private Crypto() {
}

private

元記事を表示

OTHERカテゴリの最新記事