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

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

Javaで学ぶアルゴリズム 第2弾:写像

# #Javaで学ぶアルゴリズム < 写像 >

##はじめに
Javaは授業で触れただけで全くの初心者であり,何もわかっていない.なので,基本的なアルゴリズムをJavaで実装し,アルゴリズムの理解を深めるとともに,Javaにも慣れていきたい.
その第2弾として写像を扱う.

##写像
実は,中学校や高校の数学で見たことのある度数分布というのは,まさに写像である.以下にイメージ図を示す.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/5ca6609a-5ba9-6895-4f68-c4dbe4e3bdb1.png)
上図は,「0~100点までの特典を10点幅(0~9, 10~19, …, 90~99, 100の11ランク)で区切って,各ランクの度数分布(ヒストグラム)を求める」というものである.プログラムは後に示す.
つまり,**写像とは,スケーリングのように何か別の方法でそのものを表すといったもの**であるといえる.このことから,暗号化・暗号解読にも利用される.

#

元記事を表示

【Java】同一WindowsPCへの複数JDKの同居運用方法(我流)

# 1. 概要
Oracle社のJavaSEサポート有料化を受けて結構経つけど、**とりあえずOracleJDKを入れとけ**って流れは随分と変わったように思う。

その反面、Oracle一強から他ベンダーのOpenJDKを使い分ける必要なんかも出て来てしまい…。
そうすると、**初心者レベルが方々が割と環境をしっちゃかめっちゃ**にしがちなので、**打開策の一つとして自分の運用方法を晒してみる**事にした。
とはいえ、これは我流だからこの方法が絶対に正しいというつもりはないし、そこは鵜呑みにするんじゃなく、ちゃんと各自で判断して欲しいとは思う。

トラブルが起きて「ここを参考にやったんです!(僕は悪くありません)」
とか言われても気分が悪いので。

# 2. 目的
– 同PC内に複数のJDKを同居させる
– 開発に使うJDKを簡単に切り替える

# 3. やる事

## 3.1. 同PC内に複数のJDKを同居させる

### 3.1.1. JDKを入手してくる
とりあえず、JDKをダウンロードするのだが、インストーラタイプ(\*.msi等)は使わない。
**目的**を考えたら**当然

元記事を表示

JAVAのメリット3選

#JAVAのメリット3選
この記事ではプログラミング言語「JAVA」のメリットについて3つお伝えしたいと思います。

##1つ目のメリット どんなOSの上でも動かせる
JAVAには「**JVM(Java Virtual Machine:Java仮想マシン)**」というプログラムを実行するためのソフトウェアがあります。
JVMはプログラムをどんなOSでも実行可能な状態に変換してくれる便利な方です。

通常プログラミング言語はプラットフォームやOSごとにコンパイラが用意されていて動かせる環境に制限があるのですが。。。
なんと、JAVAならWindowsやMACなど環境に依存せず動かすことが可能になっています!
##2つ目のメリット オブジェクト指向
Javaはオブジェクト指向言語なので下記のようなメリットがあります。

* クラスを分けたり、パッケージを分けたりなどプログラムの開発・管理を細かく分割して行うことができる
* 機能ごとのメンテナンスがしやすい

こんな感じです。大人数で開発する大規模開発に向いている言語ですね。
##3つ目のメリット 求人数が多い
JAVAは求人数が多いです!

元記事を表示

MATLAB で PDF を分割する ~MATLAB 芸ができるまで~

**※この記事のコードは全て MATLAB R2020b で動作確認をしています。他のバージョンではうまく動かない可能性がありますのでご注意ください。**
 

つい先日、「MATLAB でPDF を分割する」というコードを書く機会があったので紹介します。

ついでに、せっかくなのでどういう流れで MATLAB のコードが完成したのか、についてもまとめてみました。

# 今回やったことの紹介
「複数の書類がまとまった PDF ファイルを読み込んで、書類に記載されている番号ごとにまとめて自動で分割したい」

と相談を受けたので、MATLAB でスクリプトを書きました。

イメージとしては、以下のように同じ形式の書類が 1 ページずつまとめられている PDF を、ID ごとに分割して保存するような感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482141/8ef0f257-ffef-4f58-4597-c8493aab6640

元記事を表示

いろいろリンク集

##### Jackson Date

Jackson Date

##### Jackson – Custom Serializer

Jackson – Custom Serializer

##### Pythonで階乗、順列・組み合わせを計算、生成
https://note.nkmk.me/python-math-factorial-permutations-combinations/

“`python
import itertools
l = [‘a’, ‘b’, ‘c’, ‘d’]
for v in itertools.permutations(l, 2):
print(v)
# (‘a’, ‘b’)
# (‘a’, ‘c’)
# (‘a’, ‘d’)
# (‘b’, ‘a’)
# (‘b’, ‘c’)
# (‘b’, ‘d’)
# (‘c’, ‘a’)
# (‘c’, ‘b’)
# (‘c’, ‘d’)
# (‘d’, ‘a’)
# (‘d’

元記事を表示

仮想マシンの目指してた未来とコンテナーの現在

# ここで書いていないこと(はじめの前に)

タイトルから、[VMWare](https://www.vmware.com/jp.html)/Hyper-V/KVMやクラウドの仮想マシンと、コンテナーの比較の記事に見えるかもしれないが、ここで書く仮想マシンはJava仮想マシン、.Net仮想マシン(CLR)を扱う。

# はじめに

現在はコンテナーのブームであることはご存知だと思う。それはコンテナー・オーケストレーションであるKubernetesの登場で決定的になった。
コンテナーが目指していたことは、他の仮想マシンでも目指していた思想と一致する部分がある。
本記事ではそういうコンテナーで実現できたものと、過去の仮想マシンとの比較を記事にする。

# コンテナーの目指しているもの

コンテナーはImmutable Infrastructureという考え方のもと、ポータビリティーのあるイメージを配布する仕組みをもつ。
このポータビリティーはコンテナが好まれる性質のひとつである。

過去の仮想マシンでもこのポータビリティーは大きな目標であったが、コンテナーほど大きなムーブメントにはならなか

元記事を表示

Lombokの設定方法

Springのアノテーションは使えるのに@Dataが使えない理由について調べたところ、Lombokをインストールする必要があると知りました。今回はpom.xmlに追加することで使えるように設定しました。

#前提#
・Spring starterプロジェクトで新規作成する
・ビルドツールにMavenを使用する

#設定手順#
1pom.xmlのdependencies内に下記を追加する。


org.projectlombok
lombok
1.18.8
provided

もし追加したのに動作しない!追加したのに認識してくれない!等があればMavenプロジェクトの更新を行ってみてください。
(プロジェクトを右クリック>Mavan>プロジェクトの更新)

あと、バージョンが古い!って怒られますが気になる方は最新のバージョンに書き換えてみてください。

元記事を表示

【初心者必見】Eclipseで作成したJavaWebアプリケーションをAWSにデプロイする。その③(最終回)

##初めに

[【初心者必見】Eclipseで作成したJavaWebアプリケーションをAWSにデプロイする。その①](https://qiita.com/AIM-Z/items/4848e061f21eacf0e815)
[【初心者必見】Eclipseで作成したJavaWebアプリケーションをAWSにデプロイする。その②](https://qiita.com/AIM-Z/items/4f94257bca30beec2cea)
の作業の続きの記事になるのでそちらを読んでからお越しください。

##STEP7 : jdbcドライバのダウンロードと配置
MySQLのjdbcドライバを以下からインストールする
https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.20
![スクリーンショット 2021-02-09 0.35.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/712635/2a724acf-79b5-cbee-e551

元記事を表示

1時間以内にSpring bootでAPIを作る手順

#はじめに
Spring bootでのこういう系の記事はたくさんあるので、何番煎じになるかわからない内容ですが、
とにかく高速でAPIを作れるよう手順化しておきます。
昔話ですが、諸事情でAPIが緊急で必要になり、
固定値しか返さないAPI(今回紹介している手順)を20個ほど作って、テスト環境にデプロイしたところ
半日くらいで作ったのでとてもびっくりされたことがありました。
記事を読めばわかると思いますが、大した事はやっていないので、錯覚資産としてさらっと覚えておくとよいかもです。

#プロジェクト生成~起動確認

####Spring Initalizrでプロジェクトを作成
https://start.spring.io/

– Project → Gradle Project
– Language → Java
– Java → 2.4.2
– Packaging → Jar
– Java → 11

####ダウンロード・解凍したら、eclipseを開き、プロジェクトを読み込む。
– 「プロジェクト・エクスプローラー」上で右クリック → 「インポート」
– 「Gradle」の「

元記事を表示

【初心者必見】Eclipseで作成したJavaWebアプリケーションをAWSにデプロイする。その②

##初めに
[【初心者必見】Eclipseで作成したJavaWebアプリケーションをAWSにデプロイする。その①](https://qiita.com/AIM-Z/items/4848e061f21eacf0e815)
の続編。①の作業の続きの記事になるのでそちらを読んでからお越しください。

##STEP3 : EC2インスタンスの作成
AWSメニュー画面の左上のサービス > EC2
左のメニューバーから「インスタンス」を選択し、「インスタンスの作成」を押下
![スクリーンショット 2021-02-08 23.40.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/712635/860980c1-65cd-5332-285c-7e7ee1b9f350.png)

まずはAMIの設定をする
**AMI** : ざっくり言うと、EC2インスタンスに入れるOS
今回はAmazon Linux 2 AMI (HVM), SSD Volume Typeを選択
![スクリーンショット 2021-02-08 23

元記事を表示

【ポートフォリオ説明】ラーメン記録アプリの概要

# 作成した経緯
– 友人と食べたラーメンを共有したい
– まだ行ったことのないラーメン屋に行きたい
– 行ったお店を把握することにより、全員が行ったことのない店がわかる
– 食べたラーメンを分かりやすく記録したい
– ラーメンが好き

# 使った技術
– 言語 Java
– フレームワーク Spring Boot
– O/Rマッパー MyBatis
– DB MySQL
– フロント HTML/CSS/BootStrap
– デプロイ AWS Elastic Beanstalk

# ログイン画面
![Videotogif (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1044070/085e4686-c46f-5f3c-6067-677926229679.gif)

– バリデーション
– パスワードのハッシュ化

# TOPページ
![スクリーンショット 2021-02-08 232858.png](https://qiita-image-store.s3.ap-northeast-

元記事を表示

Spring Boot の application.properties に環境変数をセットする例

## 概要

– Spring Boot の application.properties に環境変数をセットする例を示す

## 動作確認環境

– macOS Catalina + Java 11 (AdoptOpenJDK 11.0.10+9) + Spring Boot 2.4.2 + bash or zsh

## 環境変数をセット可能な application.properties の例

左側にプロパティのキー、右側にプロパティの値を記述する。
環境変数をセットしたいプロパティの場合は、右側に \${環境変数名} または \${環境変数名:デフォルト値} のフォーマットで記述する。

“`application.properties
sample.first=XXXXXXXX
sample.second=${UPPER_UNDERLINE_CASE:XXXXXXXX}
sample.third=${lower.dot.case:XXXXXXXX}
“`

## 環境変数をセットして Spring Boot を起動するコマンド例

環境変数 UPPER_UNDERLIN

元記事を表示

【初心者必見】Eclipseで作成したJavaWebアプリケーションをAWSにデプロイする。その①

##初めに
AWSって何?ってところから一週間勉強してJavaのWebアプリケーションをデプロイした時の話をまとめる。簡単ではあるがAWSの用語の解説も挟んでいくので、記事を読んで実践する頃には基礎の基礎はインプットできるかと思う。

###環境
Windows10
その他の環境やverは下の図解にまとめてあるが、各々の環境に合わせて適宜変更しながら設定してほしい。

##前提
– AWSのアカウントを作っていること
– IAMユーザーを1つ作成していること

作り方は以下の記事を参照。
基本、作成したIAMユーザーで作業する。

https://qiita.com/kzykmyzw/items/ca0c3276dfebb401f7d8
##今回のゴール
– warファイルをAWSのサーバにデプロイして、DB連携を伴うアプリケーションが公開できる

##注意点
AWSに登録して一年はサービスの利用に無料枠が与えられるためほとんどの場合無料枠で事足りるが、**AWSは従量課金制**であるため、サーバーを立てっぱなしにしたり、インスタンスを

元記事を表示

【Android/Java】初学者のためのRecyclerViewアプリ

## はじめに
最初触れた時は全くわからなかった初学者殺しのRecyclerView。(勝手に命名)
だが、調べているうちに、実は作成手順は決まっていて、それに則ってやれば意外と何とかなることがわかったので、デモアプリを作りながら自分なりにまとめてみた。

## 今回のデモアプリ
なかなか眠れないアプリを作成。
![recyclerview.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/8e1d05fa-ba7c-260e-bf03-70e20b242f00.gif)
## RecyclerView抑えるべきこと
### 作成するファイル
|作成ファイル|役目|
| —- | —- |
|Activity(Fragment)のlayout|RecycleViewを載せる|
|セルのlayout|各Viewパーツの配置を決める|
|セルのModelクラス|データ構造を決める|
|Activity(Fragment)クラス|Adapterに指示する,レイアウトを調整する(Layout

元記事を表示

Javaベースの翻訳メモリ”OmegaT”で、タイ語と日本語を混在使用できるようにする方法

#OmegaTとは
まあ、検索でこの記事にたどり着いた人には必要のない文章だが、念のためこのタイトルから始めておこう。
OmegaTとは”Javaベースで開発が進められている**翻訳メモリ**ソフトウェア”である。翻訳メモリという言葉に馴染みがない人には全く知らない言葉だろうが、私もそんなに使いこなせているわけではないので

1. マークアップとか制御情報とかが含まれているファイルの中から
1. 異国の言葉だけを抜き出して
1. それを文章ごとに切り分けて
1. 文章ごとに翻訳した内容を覚えていてくれて
1. 同じ文章には同じ翻訳を当てはめつつ
1. 後でそれぞれ違う翻訳を付けることも出来る

という、”ズボラにはとてもありがたい翻訳支援ツール”程度の認識しかない。そして、私のOmegaTの利用法といえば、「**他のツールで作り出したSRT字幕ファイルを日本語に翻訳する**」という利用一択だったりもするのである。

#OmegaTの設定方法がわかりにくい理由

さて、そのOmegaTだが、設定方法はとてもわかりにくい。それは、OmegaTが「きっちり設定が出来たらあとは設定変更などいら

元記事を表示

計算の誤差をBigDecimalクラスで回避する

# はじめに
Javaを用いて円の面積を求める計算を行ったところ、丸め誤差が発生しました。
BigDecimalクラスを利用することで丸め誤差を回避することができたので、その経験を記事にします。

認識の甘い部分が多々あるかと思います、お気づきの際はご指摘いただけたら幸いでございます!

# まずは結論から
Double型ではなくBigDecimalクラスを利用することで、丸め誤差を回避できました。

# 実行環境
Java 15.0.1

# 意図しない挙動が発生したソースコード(Double型の利用)

円の面積`S`は円周率を`π`, 半径を`r`としたとき、`S =π * r * r`で求めることができます。
ここでは円周率を`3.14`, 半径を`6`として計算を行いました。
`113.04`の結果を想定していたのですが、`113.03999999999999`という結果が得られました。

“`Main.java
public class Main {
public static void main(String[] args) {
final double pi

元記事を表示

【10分で分かる】Java8からJava15まで

本記事は、[Philipp Gysel](https://philipp-gysel.medium.com/)氏による「[From Java 8 to Java 15 in Ten Minutes](https://medium.com/swlh/from-java-8-to-java-15-in-ten-minutes-f42d422a581e)」(2021年1月18日公開)の和訳を、著者の許可を得て掲載しているものです。

#【10分で分かる】Java8からJava15まで

![Image for post](https://miro.medium.com/max/700/1*DVBOCJfWxma4DL7HHvTV3w.png)

>Java 8からJava 15までの道のりには、朗報がたくさんだ。

##はじめに

この記事ではJava 7以降に追加された素晴らしい新機能を紹介します。2020年秋にリリースされたJava 15まで、Javaのバージョン毎に大きな改善点を見ていきます。Javaは今や、**ラムダ式**、**関数型プログラミング**、`var`による型推論、単純な

元記事を表示

新卒1年生のJavaGold合格体験記

#はじめに
2021年1月、*Oracle Certified Java Programmer, Gold SE 8*(通称 **JavaGold**)に合格したので体験記を書きました。

![キャプチャ – コピー.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488859/e98b4027-90d8-9f58-9457-b9754f687ef2.png)

###なぜこの記事を書いたか
理由は簡単です、ミルクボーイです。

「いま、合格体験をいただきましたけども。」
「**こんなん、なんぼあってもいいですからね。**」

はい。

情報の新規性には欠けますが、あればあるだけいいだろうということで書きます。
あとは、私自身が受験時に他の方の体験記を読んで合格イメージを掴んでいたので、そんな記事の一つになればよいかなと。

###この記事の読み方
ファクトベースで [勉強開始時のスペック](#勉強開始時のスペック) と [勉強時間と方法](#勉強時間と方法) を書いたうえで、主観となる [合格の秘訣]

元記事を表示

原子の特徴を計算するプログラムを作成してみた

#はじめに
分子の記述子計算ソフトウェアについては様々な情報があるが、原子の記述子計算についてはあまりないため自力で実装し、githubに登録してみた。

#環境
– JDK 11
– CDK 2.2

#対象記述子
## CDKに搭載されている以下のもの
– EffectiveAtomPolarizability
– StabilizationPlusCharge
– SigmaElectronegativity
– PiElectronegativity
– PartialSigmaCharge
– PartialTChargeMMFF94
– AtomDegree
– AtomValance
– AtomHybridizationVSEPR
– AtomHybridization

## その他
論文等から独自に実装してみたもの

– longestMaxTopInMolecule
– 分子内の2つの原子間の結合の最大数(分子全体で同じ値)
– highestMaxTopInMolecule
– その原子から見て分子内の他の原子との結合の最大数
– diffSPAN

元記事を表示

【Java】正規表現 matchesメソッド使い方

Javaを勉強していく中のでメモ代わりです。

matchesメソッドの使い方についてメモします。
文字列のチェックなどに使えるメソッドとのこと。

“`Main.java
public class Main {
public static void main(String[] args){
String name = “Abcd1234”;
CheckrName checkName = new CheckrName ();

if(checkName.isValidName(name)){
System.out.println(“Success”);
}else{
System.out.println(“Failed”);
}
}
}
“`
“`CheckName.java
public class CheckrName {
public boolean isValidName(String name){
//1

元記事を表示

OTHERカテゴリの最新記事