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

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

ゼロから始めるSpring Boot その1

####目標
複数回に分けて実施予定です。

1. SpringBootとは何かをざっくり知る ←今回やります
1. 環境構築&Hello World!を表示させる ←今回やります
1. パラメータやオブジェクトの受け渡しをする
1. 他の機能にも触れてみる

####参考文献
* [SystemLinkIT塾 SpringBoot入門講座](https://www.sys-link.jp/technical/SpringBoot/SpringBoot_menu.html)
自分自身が初めてSpringBootを学習した際参考になりました。
* [Thymeleaf公式ドキュメント](https://www.thymeleaf.org/documentation.html)
公式ドキュメントだけあって非常に充実した内容です。

#SpringBootとは
Javaのフレームワークの一種である`spring`をより簡単に書けるようにしたものです。アノテーション(`@Ove

元記事を表示

Note Book : OpenCV v4.5.0 with Alphamat Install On Windows10 But it need Eigen

OpencvでAlphamatを使うのに必要。

environment
・windows 10
・cpu ryzen 3700x
・gpu ncvidia-rtx3900

software
・anaconda
・ninja
・cmake
・git
・opencv-4.5.0
・ant 1.8.2
・open-jdk-15
・cuda 11
・cudnn 8.4
・visual studio 2019

“`text:cmd

mkdir eigen
cd eigen
git clone https://gitlab.com/libeigen/eigen.git

cd eigen
mkdir build
cd build

cmake -G “Visual Studio 16 2019” -T host=x64 -DCMAKE_INSTALL_PREFIX=/tools/opt/eigen -DEIGEN_INCLUDE_PATH=/tools/opt/eigen build64 -DEIGEN_TEST_CUDA=ON -DBLAS_DIR=/tools/opt/openbl

元記事を表示

【Java】制御構文のまとめ

#構造化プログラミングの要素
* 順次(順接)
* 選択
* 反復

これらを実装する制御構文についてまとめ

#if命令
* boolean変数を==で比較しない
* NG例 `if (flag == true )` など
* `if (flag)` `if (!flag)` を使う
* 否定を乱用しない
* →肯定文に空文を使い、elseのみ使うなど読みやすくしよう

“`java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
var i = 10;
if (i == 10) {
System.out.println(“変数iは10です。”);
} else {
System.out.println(“変数iは10ではありません。”);
//以下と同じ
//System.out.println((i==10)?”変数は10です”:”10で

元記事を表示

Note Book : OpenCV with CUDA Install On Windows10

Opencvのインストール。CUDA有効化と設定値。

environment
・windows 10
・cpu ryzen 3700x
・gpu ncvidia-rtx3900

software
・anaconda
・ninja
・cmake
・git
・opencv-4.5.0
・ant 1.8.2
・open-jdk-15
・cuda 11
・cudnn 8.4
・visual studio 2019

instalacion

“`text:cmd.exe
cmake -G “Visual Studio 16 2019” -A x64 -S . -B “build64”
cmake -DCMAKE_INSTALL_PREFIX=/tools/opt/opencv build64 -DWITH_CUDA=ON -DOPENCV_DNN_CUDA=ON -DOPENCV_EXTRA_MODULES_PATH=C:/tools/opencv/opencv-4.5.0-bin-win.work/opencv_contrib/modules -DDVTK_DIR=C:/tools/

元記事を表示

Note Book : VTK Install On Windows10

OpencvでCUDAを有効にする場合に必要になる。

environment
・windows 10
・cpu ryzen 3700x
・gpu ncvidia-rtx3900

software
・anaconda
・ninja
・cmake
・git
・opencv-4.5.0
・ant 1.8.2
・open-jdk-15
・cuda 11
・visual studio 2019

“`text:cmd.exe
mkdir vtk
git clone –recursive https://github.com/Kitware/VTK
cd VTK
mkdir build
cd build
cmake -G “Visual Studio 16 2019″ -T host=x64 -DCMAKE_INSTALL_PREFIX=”/tools/opt/tools/vtk” ..
cmake –build . –config RELEASE –target install
“`

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

元記事を表示

Note Book : LAPACK Install On Windows10

OpencvでCUDAを有効にする場合に必要になる。

environment
・windows 10
・cpu ryzen 3700x
・gpu ncvidia-rtx3900

software
・anaconda
・ninja
・cmake
・git
・opencv-4.5.0
・ant 1.8.2
・open-jdk-15
・cuda 11
・visual studio 2019

“`text:cmd.exe
“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat”
cd C:/tools/lapack
git clone https://github.com/Reference-LAPACK/lapack-release.git
cd lapack-release
mkdir build
cd build
cmake .. -G “Ninja” -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMP

元記事を表示

Note Book : OpenBLAS Install On Windows10

OpencvでCUDAを有効にする場合に必要になる。

reference
https://github.com/xianyi/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-Visual-Studio

environment
・windows 10
・cpu ryzen 3700x
・gpu ncvidia-rtx3900

software
・anaconda
・ninja
・cmake
・git
・opencv-4.5.0
・ant 1.8.2
・open-jdk-15
・cuda 11
・visual studio 2019

“`text:cmd.exe
conda config –add channels conda-forge
conda install -y -c isuruf kitware-ninja
conda install -y cmake flang clangdev perl libflang
“C:\Program Files (x86)\Microsoft Visual Studio\2019\Com

元記事を表示

Oracle Java Silverに合格する方法

oracle のjava試験、Silverに合格する方法を紹介します。

それは、
黒本を3周。以上。

ブロンズを取れる実力があるのが前提ですが、黒本プラス白本の模試一回分やりました。

白本の模試は6割しか取れませんでしたが、本番は8割取れました。

黒本の内容が出るというのは確かだなと思いました。

元記事を表示

【Java】CalendarクラスとDateクラスの使い方

#プログラミング勉強日記
2020年10月30日
[昨日の記事](https://qiita.com/mzmz__02/items/d873e1b1f366ab2cf835)でCalendarクラスについて取り扱ったが、Dateクラスとの違いであったり使い方がわからなかったのでまとめる。

#CalendarクラスとDateクラスの違い
 CalendarクラスとDateクラスは、Javaの日付の処理を行うことができる。日付を扱うという点では同じだが用途が違う。

 具体的には、Calendarクラスは日付や時刻を演算処理を行うことができ、日付の値を計算することができる。Dateクラスは1970年1月1日0時からの経過時間を持っていて、指定した日付や時間を取得するのに用いられる。下記にサンプルコードを示す(今回はメソッドの説明はしない)。

##Calendarクラスの使い方

“`java
import java.util.Calendar

public class Main {
public static void main(String[] a

元記事を表示

【Android/Java】リスナ設定(ボタン設置)における記述型式を把握する

## はじめに
Androidアプリ開発で出てくる様々なListener。
javaファイルでの書き方が大きく2パターンあり、混乱したので備忘録として記しておく。

今回のサンプルはボタンを押すと、メッセージが表示されるアプリです。
※尚、ボタンはボタンでも、ActionBarにボタン(オプションメニュー)を設置する方法は全く違うのでこちらを参照してみてください。
https://qiita.com/kilalabu/items/62a39e63ee2c6d4293bd

## 用語の確認
イベント ・・・ 画面に対して行う操作のこと (例:クリックする)
イベントハンドラ ・・・ そのイベントに対して行う処理のこと (例:クリックされたらテキストを表示する)
リスナ ・・・ イベントの検知をしてくれるもの (例:ボタン)

## コード
レイアウトは適当です。

“`xml:activity_main.xml

元記事を表示

【Java】Spring DI ④ – ライフサイクル管理

# DIのライフサイクル管理とは
* DIでは、インスタンスのスコープを設定できる
* スコープは、@Scopeアノテーションで設定
* デフォルトではsingletonになり、インスタンスが1つしか作られない
* スコープが異なるインスタンスをフィールドに持つ場合注意

## ライフサイクル管理て何?
* インスタンスの生成(new)と破棄を管理
* newして生成したインスタンスを破棄するには、変数にnullを入れメモリを解放
* しかし!**@Autowiredを付けたフィールドではnullしなくてもSpringが自動でやってくれるのです!**
* しかもサーブレットを使う時に**インスタンスのスコープ登録もSpringがやってくれます!**
(サーブレットはインスタンスをSessionスコープやRequestスコープに登録する機能)
* 注:インスタンスがいつ破棄されるのかをちゃんと把握しておくこと

####スコープとは
* インスタンスの有効期限
* 例:Javaのローカル変数でif文の中で宣言した変数は、if文の中がスコープなので、if文の外では使えない
*

元記事を表示

【Java】Spring DI③

# DIで何ををやってるんですか?
* **DIの管理対象クラスを探す(コンポーネントスキャン)**
* **インスタンスの生成と注入**

##コンポーネントスキャン
* Springを起動時にDIで管理する対象のアノテーションが付けられているクラスを探す処理が走り、DIコンテナに登録する
* DIコンテナ上で管理するクラスを**Bean**という

【スキャン対象のアノテーション】

* @Component
* @Controller
* @Service
* @Repository
* @Configuration
* @RestController
* @ControllAdvice
* @ManagedBean
* @Named

##インスタンス生成と注入
* **DIコンテナにBeanのインスタンス生成し、注入する**
* DI対象のクラス(Bean)を集め、それらのインスタンスをDIが生成(new)
* 生成したインスタンスを以下の**@Autowiredアノテーション**が付けられるフィールドに注入
* フィールド変数
* コンストラクタの引数

元記事を表示

【Java】Spring DI ②

#Javaにおける注入って何?
* インターフェース型の変数に、インスタンスを入れること
* newしたインスタンスを、そのままEngineインターフェース型の変数に入れる

“`java
//Mainクラスでエンジンの生成
Engine hondaEngine1 = new HondaEngine();
Engine mitsubishiEngine1 = new MitsubishiEngine();
//車の生成
Car car1 = new Car(hondaEngine1);
Car car2 = new Car( MitsubishiEngine1);
“`

#クラスを変更する
* 新しくこれまでのエンジンクラスを継承した、Ver2のエンジンを作成した場合
* Mainクラスの生成部分でで再度Ver2のエンジンに変更する必要がある。。(たくさんあると面倒)
* →次の章のFactoryクラスを使おう!

“`java
//HondaEngine継承したHondaEngineVer2作成
public class HondaEngineVer2 extends Ho

元記事を表示

【Java】Spring DI ①

#Spring DIは何をするの?
* インスタンス管理をする
* @Autowiredアノテーションをフィールドなどに付けると、**DIコンテナからインスタンスを取得**
* DIによってクラスをnewしたり、使い終わった変数にnullを入れる必要がなくなる

#DI の2つの機能
* **インスタンスの生成**
* DIコンテナの中で、インスタンスを生成=クラスをnew
* アプリケーションではこのインスタンスを取得して利用
* DIの中で、毎回newしたインスタンスをアプリケーションに渡すのか、それとも、一度newしたインスタンスをアプリケーションに渡すのかを管理

* **インスタンスのライフサイクル管理(インスタンスの破棄)**
* サーブレット(バックエンド)のリクエストスコープ (サーブレット、JSP間を跨いでデータを共有したい場合に用いる保存領域) や、セッションスコープにインスタンスを簡単に登録できる

#Javaにおける依存って何?
* 依存というのは、他のクラスを利用しているかどうか
* **他のクラスをロー

元記事を表示

【Android】Flavor毎にアプリ名とアプリアイコンを変更する

Androidアプリ開発時に、開発環境・ステージング環境・本番環境 などの環境毎にFlavorを設定することがあるかと思います。
環境が違うアプリをひと目で見分けられるように、アプリ名とアプリアイコンを変更する方法をまとめておきます。

# Flavorを設定する

アプリの `build.gradle` にFlavorの設定を行います。
今回は例として、 `dev`(開発)・`stg`(ステージング)・`prod`(本番) の3つの環境を用意するものとします。

“`gradle:build.gradle
android {

// 省略

// ここから追加
flavorDimensions “environment”
productFlavors {
dev {
dimension “environment”
applicationIdSuffix “.dev”
versionNameSuffix “.dev”
}
stg {

元記事を表示

【Java・Intellij】統合開発環境の基本(Intellij)

#統合開発環境(IDE)の基本
* Eclipse:ワークスペース以下にプロジェクトがある
* **Intellij**:プロジェクトの中にモジュールがある
* **パッケージエクスプローラ**:全体の構成(`Com+1`)
* **アウトライン**:ストラクチャー(`Com+7`)

#Intellijの機能
* Preferenceの設定
* `PreferenceのEditorTab – left` :たくさんコードを開いたときに見やすい
* `Tab limit 20`

* ショートカット
* **ediitorを中心に各ビューに行って戻ってくる動作をしよう**
* できるだけキーボードから手を離さないようにする
* `Com+数字`でビューに飛んで(`Com+1`でProjectなど)`esc`でeditorに戻る
* 例えば、タブに”7 Structure” のような表示がある→ショートカット`Com+7`で飛べる
* `Com+7`:メソッド登録確認。大量のコードの場合に便利

![

元記事を表示

【Java】演算子のまとめ(オペレーター)

#演算子の種類
* あらかじめ**決められた処理を行うための記号**
* 演算子によって処理される変数を**被演算子(オペランド)**
* 算術演算子
* 代入演算子
* 関係演算子
* 論理演算子
* ビット演算子

#算術演算子
## + 演算子
* + はオペラントの型によって動作が変化
* オペランドのいづれかが文字列の場合、**+は文字列として結合**
* 片方がオブジェクト以外の場合、**toStringメソッドで文字列に変換して結合**

“`java
import java.time.LocalDateTime;

public class Main {
public static void main(String[] args) throws Exception {
System.out.println(“a”+LocalDateTime.now()); //a2020-10-29T…
}
}
“`
* 数値と非オブジェクトの+演算は不可能
* + で文字いてるを結合すると
* 元の文字列、連結する

元記事を表示

【解決】Windows10 + ATOK 2017 でJavaをインストールできない

Qiitaに書いて良い内容なのか?と思いつつも、びっくりしたので書く。

# 環境
* Windows10 Home
* Windows版64ビットJava(8 Update 271 )
* ATOK 2017(30.0.8)

https://www.java.com/ja/download/

でダウンロードしたjre-8u271-windows-x64.exeを実行するも、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13513/59abd86a-8aa8-c453-7758-85b683cbf705.png)

「インストール」を押すと、ダイアログがスン・・と消えて終わる。

えっ??と思い、いろいろ調べるとこんなサイトを発見。

**[JREがインストールできない。ATOKからMS-IMEに変更して回避できた。](https://note.com/951/n/n40d9817c7fdc)**

いやいやいや、そうはならんやろ!と思い、試す。

インストーラをダブル

元記事を表示

Gaming


undefined
undefined
undefined
undefined
undefined
undefined
備忘録No.4「文字列を取得して、その周りを飾る」[Java]

#やりたい事
1.任意の文字数の文字列を一つ受け取る
2.受け取った文字列の周囲を”+”で囲うような見た目で出力する

例.「SUN」という文字列を受け取った場合

+++++
+SUN+
+++++

#コード

Scanner sc = new Scanner(System.in);
String word = sc.nextLine();
int wordNum = word.length();//単語の文字数
int lineNum = wordNum + 2;//単語を囲うのに必要な文字数

Character [][] plus = new Character[3][lineNum];//
for(int i = 0; i < plus.length; i ++) { for(int j = 0; j < plus[i].length; j++) { plus[i][j] = '+';

元記事を表示

OTHERカテゴリの最新記事