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

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

VSCodeでJava開発 – H2データベースとJDBC接続するまで

Java でIDEといえば Eclipse や IntelliJ な気がします。しかしそれほど本気ではないが楽しく気軽に Java コーディングしたいという時に、VSCodeで簡単にデータベース接続まで理解する。以上を表題の3つで実現する事を考えてみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93824/e4ca76a7-d69c-d190-e884-308e5cfa8cc4.png)

以下2つが分かりやすかった。

https://qiita.com/takuma-jpn/items/b49785a314fb4db85775

https://qiita.com/msakamoto_sf/items/d65947ddf509acbc98cb

## 予備知識

### Visual Studio Code で Java を使うにはJDK11が必要になりました

https://od10z.wordpress.com/2020/08/01/vscode-java-req

元記事を表示

[備忘録]Java/Android 実行環境での改行コード取得

#改行コード

– CR: 復帰、\r
– LF: 改行、\n
– CR + LF: \r\n

\n とか \r はエスケープシーケンスで、16進数の数値にすると `0X0A`, `0X0D`らしい。
また、WindowsではCR+LF、unix系ではLF、MacOSではCRなど、実行環境によって使用する改行コードが異なる。

#実行環境での改行コード取得方法

“`java
final String BR = System.getProperty(“line.separator”);
“`

これで、(アンドロイドに限らず)このコードの実行環境でのエスケープシーケンスが取得できる。

##アンドロイドでの改行コード
↓実行してみた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1139020/054ab9cc-5050-a576-b3ed-4c3e1bb9fb96.png)
アンドロイドでの改行コードは”\n”(LF)ということが分かった。

###(おまけ)(どうでもいい話)

元記事を表示

Java Security Managerを有効にしてSpring Bootを起動する

Spring BootをJavaのSecurity Managerと一緒に起動することで、お手軽にサンドボックス化できます。例えば外部から送られてくるスクリプトをアプリケーション上で実行しなきゃいけないけど、セキュリティが不安だとか。

# Java Security Manager
JavaのSecurity Managerという機能を有効にすると、プログラムが実行してもよい操作を制限することができます。例えばファイルや環境変数の読み書き、ネットワークへの接続など、想定外の挙動をした場合にそれを検知して、失敗させることができます。
許可する権限はポリシーファイルというものに書き連ねます。

“`example.policy
grant {
// 全て許可する
permission java.security.AllPermission;
};
“`

そして、Javaを実行する際に“`-Djava.security.manager“`と“`-Djava.security.policy“`オプションも付けます。“`-Djava.security.manag

元記事を表示

2021年 給料が一番高いプログラミング言語 5選

多くの人が高給のためにプログラミング業界を選びますが、世界で最も収益性の高いプログラミング言語は何か知っていますか?
##1)Java
「Javaは時代遅れですか?」と尋ねるかもしれません。もちろん、そうではありません。
なぜJavaはまだ人気があるのですか?Javaは最も古く、堅牢なプログラミング言語の1つです。また、主にAndroidアプリケーション開発に使用されるオブジェクト指向言語です。これが、今日でも使用されている主な理由の1つです。しかし、Kotlin(Android開発にも適しています)のようなプログラミング言語の出現により、Javaの人気は低下しています。
![Java.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482909/d279971b-2269-8c56-943d-a8e72896a1c6.jpeg)
ただし、Javaは依然として最も高額なプログラミング言語の1つであり、かなりの需要があります。Indeedによると、ソフトウェア開発会社はJava開発者に興味があり、毎年10万

元記事を表示

Kotlin学習記②


# はじめに
### 今回はKotlinのデータ型についてJavaとの比較を交えながらまとめたいと思います。

# 記事投稿の経緯
### Kotlinのデータ型はIntなどが存在するが、Javaにはint,Integerの2パターンが存在する。(プリミティブ型と参照型)
### そこで、Kotlinのデータ型がJavaのデータ型とどのように対応しているのかについて疑問を持ち、調査することにした。

# 実装
### IntelliJ IDEAを用いてKotlinコードからJavaコードにDecompileして確認してみる。
### Tools > Kotlin > Show Kotlin Bytecode > 「Decompile」ボタンクリック

“`Kotlin
import kotlin.jvm.JvmStatic

class KotlinDecompile {
fun foo(): Int { return 1 }

fun foo2(): Double { return 1.

元記事を表示

【Java】ラムダ式を何となく理解する

#ラムダ式を理解するための前置き
##関数オブジェクト
JavaSE7まででは、変数に代入できるのは第一級オブジェクト(データ、インスタンスなど)のみであるとされていたが、
JavaSE8以降では、***関数***も変数に代入できるようになった。

関数にとって、名前はあってもなくても良いものである。
入力(引数)と出力(返り値)さえあれば関数の役割は果たせる。

例えば…
===============================
職場の上司に、
「この手順書に沿って折り紙折っといて~、午前中に100個作っておくように!」
と指示され、手順書と折り紙100枚を渡された(どんな仕事やねん)

しかし、手順書には折り方が載ってあるだけで、
何が出来上がるのかとか、手順書の名前なんてものはない。
それでも、手順に沿って折り紙をしていった結果、
なにか良くわからないけど100個分完成した
===============================

…みたいな感じである。

プログラミングにおける関数も同様で、
「名前なんか無くても入力・出力さえあれば関数でいいよね~」
って考えでJ

元記事を表示

【Java アルゴリズム修行⑯】文字列探索 ~力まかせ法~

###文字列探索とは

ここまでは数列からの探索や、数列を期待通りにソートするなど、
数字を中心に扱ってきましたが、次に文字列を扱う探索を学んでいきたいと思います!

文字列探索というのがどういうことかという話なんですが、
**ある文字列中とは別の文字列が含まれているかどうかを調べ、含まれていれば、その位置も調べるということ**です。

例えば、`STRING`という文字列から`ING`を探索すれば、それは含まれていることになり、
文字列中の4番目に位置しているということになります。

**探索される側の文字列はテキスト、探索する文字列をパターンと呼ばれることが多いようです。**
今回はその文字列探索の中でも基礎的な力まかせ法について見ていきましょう。

###力まかせ法とは

力まかせ法とは、その名の通り、
**パターンが現れるまで、テキストを頭からひたすら走査していく**という、
効率もへったくれもない筋肉質なアルゴリズムのようです。。笑

テキストが `ABABCDEFG` で、パターンが `ABC`としたら、

最初の `ABA`と比較し、合ってなかったら1文字ずつずらして照合

元記事を表示

MinecraftでMODを開発したい#5

*MinecraftでMODの開発をします*
*試行錯誤を書いていくだけのものになります*

##概要
MODをjar形式にし、一般の人に配布して使えるように

##動作環境 2021/05/12
||Version|
|:-:|:-:|
|Mac OS Big Sur|11.1|
|IntelliJ IDEA|2021.1.1|
|AdoptOpenJDK (HotSpot)|1.8.0_282|
|Minecraft|1.16.5|
|Forge|36.1.0|

##目次
- 設定
- 確認

##設定
build.gradleのversionを1.16.5-1.0.0に変更
IntelliJ IDEAのGradle Tool Windowを開き、Tasks > build > buildをダブルクリックで実行

##確認
IntelliJ IDEAの画面下側に表示される実行ログに「BUILD SUCCESSFUL」と表示され、build/libs/にexamplemod-1.16.5-1.0.0.jarが生成されたことを確認してください。

他のMODを導入する時と同様に、j

元記事を表示

MinecraftでMODを開発したい#4

*MinecraftでMODの開発をします*
*試行錯誤を書いていくだけのものになります*

##概要
MOD一覧などに表示される情報の登録

##動作環境 2021/05/12
||Version|
|:-:|:-:|
|Mac OS Big Sur|11.1|
|IntelliJ IDEA|2021.1.1|
|AdoptOpenJDK (HotSpot)|1.8.0_282|
|Minecraft|1.16.5|
|Forge|36.1.0|

##目次
- リソースパックの情報
- mods.toml
- ロゴ画像
- build.gradle

##リソースパックの情報
“`src/main/resources/pack.mcmeta
{
“pack”: {
“description”: “Example Mod Resources”,
“pack_format”: 6
}
}
“`

##mods.toml
“`src/main/resources/META-INF/mods.toml

modLoader = “j

元記事を表示

MinecraftでMODを開発したい#3

*MinecraftでMODの開発をします*
*試行錯誤を書いていくだけのものになります*

##概要
特殊な機能を持たないブロックの追加

##動作環境 2021/05/12
||Version|
|:-:|:-:|
|Mac OS Big Sur|11.1|
|IntelliJ IDEA|2021.1.1|
|AdoptOpenJDK (HotSpot)|1.8.0_282|
|Minecraft|1.16.5|
|Forge|36.1.0|

##目次
– プログラムの記述
– Block Stateの記述
– ブロックモデルの記述
– アイテムモデルの記述
– テクスチャの配置
– 翻訳設定
– ルートテーブルの記述
– 確認

##プログラムの記述
“`src/main/java/com/ドメイン名/examplemod/ExampleMod.java
package com.tntmodders.examplemod;

import net.minecraft.block.AbstractBlock;
import net.minecraft.block.Block

元記事を表示

Kotlin学習記


# はじめに
### 今回はKotlinのnull安全についてJavaとの比較を交えながらまとめたいと思います。

# null安全とは?
### null安全とは、コードからnull参照の危険性を排除することを目的としたKotlinの機能であり、null参照を使用とするとコンパイルエラーが発生する。
### この機能はJavaで頻出のNullPointerExceptionを避けるために有効であると考えられます。

# Non-Null型とNullable型
### KotlinにはNon-Null型とNullable型が存在しており、以下のように実装する。

“`Kotlin
var str : String = “あいうえお” //Non-Null型
str = null //コンパイルエラー
“`
“`Kotlin
var str2: String? = “かきくけこ” //Nullable型
str2 = null //問題なし
“`
### 上記のように、nullを格納できないNon-N

元記事を表示

【Java】ArrayListの使い方

#ArrayListとは
Javaの通常の配列では、最初から配列の数を決める必要がありました。

“`java
a=new int[10]
“`

これでは、後から配列の数を変更できなかったり、最初から配列の数が決まっていないときなどに不便ですね。
ArrayListは、このような不便を解決してくれる**予め用意されたJavaのクラス**です。

#ArrayListの特徴
下記のような特徴があります。
1. **オブジェクトであればどんな型でも扱える**
2. **配列に値を後から追加することができる**
3. **追加した順に並ぶ**
4. **nullも値として追加できる**
5. **重複した値も追加できる**
6. **スレッドセーフではない**

通常の配列に比べて、各段に使いやすいですよね。
実際の開発では、配列よりもArrayListを使うことが多いようです。

#ArrayListの書き方
ArrayListは、次のように書きます。

“`java
ArrayList<型> リスト名 = new ArrayList<型>();
“`
「型」には、クラス名を指定

元記事を表示

初学者なりにPythonのクラス定義を調べてみた

# Pythonのクラス定義の特徴

自分はJavaからプログラム言語の世界に入ったため、静的型付け言語のJavaやC#の記述方法が好き。
そのため、Pythonの勉強を始めたときも、クラス定義はJavaのように、クラス宣言、フィールド、コンストラクタ、メソッドのように作ったりしていた。

ただ、当然ながらPythonはJavaとは違うので、適当に作るとうまく動かなかったり、ネットに転がっている既存のPythonのクラスを見てもいまいちよく分からない記述があったりで、理解するのになかなか苦労した。

というわけで本記事は、Pythonのクラス定義に関する自分向けもしくは初学者用の備忘録だ。
自分もPythonに触れ始めてまだ間もないため、誤っている点がいくつかあると思う…

## Pythonのクラス定義の基本

Pythonのクラス宣言は以下のようにやるらしい

“`python:python
class TestClass:
pass

tc = TestClass()
“`
passは何もしないとい

元記事を表示

MinecraftでMODを開発したい#2

*MinecraftでMODの開発をします*
*試行錯誤を書いていくだけのものになります*

##概要
特殊な機能を持たないアイテムの追加

##動作環境 2021/05/12
||Version|
|:-:|:-:|
|Mac OS Big Sur|11.1|
|IntelliJ IDEA|2021.1.1|
|AdoptOpenJDK (HotSpot)|1.8.0_282|
|Minecraft|1.16.5|
|Forge|36.1.0|

##目次
– プログラムの記述
– アイテムモデルの記述
– テクスチャの配置
– 翻訳設定
– 確認

##プログラムの記述
“`src/main/java/com/ドメイン名/examplemod/ExampleMod.java
package com.ドメイン名.examplemod;

import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraftforge.eventbus.api.IEventBus;
impo

元記事を表示

ざっくり理解するプログラミング入門基礎編(Java)第2回

この記事は、ざっくり理解するプログラミング入門基礎編(Java)第1回の続きです。
読んでない方はぜひそちらを読んでからこの記事を読んでください。

https://qiita.com/tntn70200751/items/e7540f1650d2a64bdf92

今回は前回に引き続き、Javaにおける基本的なプログラムの書き方について、解説していきたいと思います。
この辺は何回もコードを書くうちに必ずわかるようになると思うので、わからなかったらとりあえず、こういうものがあるんだなくらいの感じで進めてもらっても構いません。

##Javaプログラムの書き方2
今回の内容は以下の二つです

* コンピューターに計算をさせる。
* 変数について知る

###コンピューターに計算をさせよう
まずは、プログラムでコンピューターに計算をさせる方法です。計算が使えるようになると一気にプログラミングをしている感が強まると思います。計算といってもそんなに難しくはないので、数学が苦手な方もそんなに身構えずにやっていきましょう。

####四則演算
まず計算の基本の足し算、引き算、割り算、掛け算です。

元記事を表示

How to Update Android Apps

I’ll explain how to update Android Apps. I am using Android Studio.

[Steps]
1. Open “build.gradle” file on the Android Studio.
2. Update Version. We must set the versionCode as an Integer.
(ex.) You must write the versionCode and version name in the file like this.
versionCode 4 to 5
versionName “1.0.4” to “1.0.5”
3. Click “Sync Now” on the upper right.
4. After the sync, Click Build on the menu. And then, choose Generate Signed APK…
5. Choose “Android App Bundle” on another pop-u

元記事を表示

MinecraftでMODを開発したい#1

*MinecraftでMODの開発をします*
*試行錯誤を書いていくだけのものになります*

##概要
環境構築をする

##動作環境 2021/05/12
||Version|
|:-:|:-:|
|Mac OS Big Sur|11.1|
|IntelliJ IDEA|2021.1.1|
|AdoptOpenJDK (HotSpot)|1.8.0_282|
|Minecraft|1.16.5|
|Forge|36.1.0|

##目次
– IntelliJ IDEAのインストール
– Forgeのインストール
– Example Modの削除

##IntelliJ IDEAのインストール
ダウンロードページから「Community」をダウンロード
ダウンロードしたインストーラを実行し、デフォルト設定のまま画面に従ってインストール
IntelliJ IDEAを起動し、タイトル画面で「New Project」を選択
「Project SDK」から「Download JDK」を選択
「Version」に「1.8」、「Vendor」に「AdoptOpenJDK (HotSpot)」を

元記事を表示

JBoss EAP XP( Eclipse MicroProfile準拠の製品 ) 覚え書き

# モチベーション

掲題の製品名を伺う機会あったが、さっぱり存じなかったので
自分向けに備忘するもの。

# JBoss EAP XP とは
JBoss EAPに追加インストールできる、Eclipse MicroProfile仕様のImplementationモジュール。
公式HPにてjarファイル形式で絶賛、配布中。

正式名称は`JBoss Enterprise Application Platform expansion pack`とのこと。

# 公式ガイド辿り方

1. [JBoss EAPの公式HP](https://access.redhat.com/documentation/ja-jp/red_hat_jboss_enterprise_application_platform/)にアクセス
1. 左メニューの`Product Version`から、JBoss EAP製品バージョンを選択。
*:2021年5月時点:JBoss EAP v7.3でしか利用不可の様子
1. 左メニューの`Category`から、`JBoss Enterprise Application

元記事を表示

クラス継承時の処理の順番について

# クラス継承時の処理の順番について

JavaSilverSE11の勉強中、クラスの継承に関する問題の解説を読んで、よく混乱していたので、ここで自分なりにクラス継承時の処理の順番について調べてまとめてみました。


## 継承とは何か?
継承とは新しく機能を実装するときに、以前実装した機能と共通する機能を引き継ぐことです。

継承はJavaを中心とするオブジェクト指向の基本的な概念となります。

## クラスの継承
既存のクラスをもとに、新しい別のクラスを作成し、既存のクラスにある機能を引き継ぐことです。

クラスの継承により、継承先のクラスは同じプログラムを書く手間が省け、新しい機能(差分の機能)を実装するだけで良くなります。
![クラスの継承イメージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1282434/0385e3fc-81ee-fad4-8843-9f86a0999353.png)

既存

元記事を表示

ざっくり理解するプログラミング入門基礎編(Java)第1回

この記事は、ざっくり理解するプログラミング入門基礎編(Java)第0回の続きです。
読んでない方はぜひそちらを読んでからこの記事を読んでください。

https://qiita.com/tntn70200751/items/6a94413400b0214034d4

##Javaプログラムの書き方 1

### Hello Worldの解説

これは前回の最後で実行してみたコードです。

“`java:Main.java
public class Main { //外側のブロック(クラス)の始まり
public static void main(String[] args){ //内側(メソッド)のブロックの始まり
System.out.println(“Hello World!”);
} //内側のブロックの終わり
} //外側のブロックの終わり
“`

####コメント

`//`の後の文字を見てください。これはコメントと言ってコード内の好きなところにメモのように好きな文字を書くことができます
コメントを記述する方法は以下の二つがあります。

元記事を表示

OTHERカテゴリの最新記事