JAVA関連のことを調べてみた2023年01月17日

JAVA関連のことを調べてみた2023年01月17日

CentOSでのjavaのインストール

サーバに「JDK11が必要」と言われて、バージョンを確認してみたら、これは何?
そこからJDK11をインストールして、切り替えてみた手順を記録に残しておきます。

自分が今後別のマシンで作業する時のためのメモですので、「そこ違いますよ」という箇所があれば、コメントいただけると助かります。
javaで開発しているのではなく、「ツールを動かすためにJDKをインストール必要があった」というレベルの作業です。

javaのバージョン一覧は[Oracle Java SE Supportロードマップ](https://www.oracle.com/jp/java/technologies/java-se-support-roadmap.html)で確認しました

### やったこと
* バージョンの確認
* JDK11のインストール
* バージョンの切り替え

### バージョンの確認
“`
$ java -version
openjdk version “1.8.0_312”
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 6

元記事を表示

Spring Thymeleaf(HTML)のFormとSpring(Javaのデータクラス)のつなげ方

・はじめに

 この記事においては、会員情報の送信などユーザーに何かデータを送信してほしいときによく使うHTMLのフォームとそのFormで送られる情報をJavaで受け取る方法を書いていきます。

・HTMLの設定

“`HTML:createAccount.html


~省略~

会員登録




元記事を表示

Java 教材 勉強

https://github.com/kounosu/java

元記事を表示

勉強

https://github.com/kounosu/java_student

元記事を表示

【順次更新】Minecraft Modding(Forge 1.19.2)を頑張ってみた。

こちらにて、順次更新しております。

https://zenn.dev/cyber_hacnosuke/books/minecraft-modding

# 現在更新されている内容
## [はじめに](https://zenn.dev/cyber_hacnosuke/books/minecraft-modding/viewer/intro)

– この本について
– 私について
– 執筆動機
– 本書の対象
– Minecraft Forge について
– MODについて詳しく
– 更新について
– 参考文献など

## [環境構築](https://zenn.dev/cyber_hacnosuke/books/minecraft-modding/viewer/env)

– エディタの準備
– MDKの準備
– Javaの準備
– MOD設定
– Javaをいじる
– 実行してみる

## [Item(基本編)](https://zenn.dev/cyber_hacnosuke/books/minecraft-modding/viewer/basic-item)

– Itemとは

元記事を表示

printStackTrace

throwable classのメソッドprintStackTrace

“`java
public class Outer {
public static void main(String[] args) {
String s = null;
try {
s.charAt(0);
} catch (Exception e) {
e.printStackTrace();
}
}
}
“`
“`
java.lang.NullPointerException
at com.mycompany.mavenproject1.Outer.main(Outer.java:23)
“`

元記事を表示

scheduleAtFixedRate, schedulewithFixedDelay

kickするのを定期的にinterval
scheduleWithFixedDelay 前の処理が終わってから定期的にinterval

below is scheduleWithFixedDelay sample
“`java
public class Outer {
public static void main(String[] args) throws InterruptedException {
ScheduledExecutorService s = Executors.newSingleThreadScheduledExecutor();
s.scheduleWithFixedDelay(() -> {
int interval = new Random().nextInt(10);
try {
System.out.print(interval);
Thread.sleep(interval * 100);

元記事を表示

scheduledexecutorservice interface

1秒後に実行
executorService#shutdown()/isshutdown()は検証用
“`java
public class Outer {
public static void main(String[] args) throws InterruptedException {
ScheduledExecutorService s = Executors.newSingleThreadScheduledExecutor();
s.schedule(() -> {
System.out.println(“xxx”);
s.shutdown();
},1,TimeUnit.SECONDS);
int count = 1;
while(true) {
Thread.sleep(100);
if(s.isShutdown()) break;
System.out.println

元記事を表示

executorservice interface

newSingleThreadExecutor 1つのみ
newFixedThreadPool 指定した数のthreadpool
newCachedThreadPool 60秒経つと廃棄されるthreadpool

newCachedThreadPool sample
“`java
public class Outer {
public static void main(String[] args) throws InterruptedException {
ExecutorService e = Executors.newCachedThreadPool();
for(int i=0;i<5;i++) { e.submit(() -> {
System.out.println(“a:” + Thread.currentThread().getId());
});
}
Thread.sleep(5000);
for(

元記事を表示

正規表現(マッチ、抽出)

自分メモ。
“`
final String regex = “^(ねこ|いぬ)は(唐揚げ|魚)好き$”;
final String text = “ねこは唐揚げが好き”;
if (text.matches(regex)) {
final Pattern p = Pattern.compile(regex);
if (m.find()) {
m.group(); // ねこは唐揚げが好き
m.group(0); // ねこは唐揚げが好き
m.group(1); // ねこ
m.group(2); // 唐揚げ
}
}
“`

or条件で空文字判定をする場合は(|唐揚げ|魚)とすればよい。

元記事を表示

thread class, runnable interface

Runnableはrun methodをもつfunctional interface
constructor of Threadにrunnableを引き渡す
“`java
public class Outer {
public static void main(String[] args) {
Thread t = new Thread(new Runnable() {
public void run() {
System.out.println(” i am run method”);
}
});
t.start();
}
}
“`
“`
i am run method
“`

元記事を表示

単体テスト流れ メモ

## Test流れ
test->コンパイルエラー->修正->test->成功->一通りtestを終了後にtestリファクタリング

詳細
0.Main コードを作成する際、どんな引数があればテストしやすいか考える
1. 追加したい次の機能のテストを作成し、失敗させる(Red)
1.5 エラー内容を把握
2.テストに合格するまでコードを記述し、テストを通す(Green)
3.コードをリファクタリングする(Refactor)

ゴールは「きちんと動作するきれいなコード」 

## アサーション
@ParameterizedTest
Junitでテストでは入力値が異なるだけで、結果が変わらないことがある。
そのような場合、1テストに対して1テストメソッドをつくることは面倒くさを感じられる。そこで、@ParameterizedTestを利用すること、複数のテストメソッドをまとめることができる。

@MethodSource
任意のクラスを引数に渡せる
staticメソッドを定義する

@CsvSource
複数のパラメータをメソッドに渡したい時に使用する

## 参考資料
https://ww

元記事を表示

JSP & Servletメモ

## サーブレットの基礎知識
Webアプリケーションで核となるのがサーバーサイドプログラム。サーバーサイドプログラムは、ブラウザのリクエストによってサーバー上で動作し、実行結果をHTMLでレスポンスする。
サーブレットは、javaを用いて、そのサーバーサイドプログラムを実現する技術。また、サーブレットクラスはブラウザから実行できるクラスを使用し、ブラウザのリクエストによってサーバー上で動作し、実行結果をHTMLでレスポンスする。

## サーブレット作成ルール
1. javax.servlet.http.HttpServletクラスを継承する。
このクラスを継承することにより、サーブレットクラスを一から作成する必要がない。
2. doGet()メソッドをオーバーライド
サーブレットクラスがリクエストされると実行されるメソッド。
3. サーブレット関係のクラスをインポートする。

## HttpServletRequestとHttpServletResponse
### HttpServletRequest
ブラウザから届くリクエストに関係する情報と機能を持つインスタンス。
ここに格納さ

元記事を表示

ABC285A~Eの解答[Java]

## はじめに
今回はコンテスト中にEまで解けたのでそれをそのまま載せようと思います。

では、見ていきましょう。

## A – Edge Checker 2
問題文は[こちら](https://atcoder.jp/contests/abc285/tasks/abc285_a)

子は親の$2$倍か$2$倍+$1$なので、それを判定してあげれば良いと思い実装しました。
“`A.java
class Main{

static final boolean autoFlush = false;
static final Library System = new Library(java.lang.System.in,java.lang.System.out,java.lang.System.err,autoFlush);

public static void main(String[] args){

//a、bの受け取り
int a = System.in.nextInt();
int b = System.in.nextInt();

//制約上a<

元記事を表示

SplashScreenについて(静止画編)

こんにちはandroidでアプリ開発を学習中のみのむしと申します。
今回は、SplashScreenを学びましたので、実装方法を忘備録として残したいと思います。

SplashScreenを表示させるActivityを作成する

今回は、新規作成したActivityにSplashScreenを表示させ、その後にMainActivityにIntentする流れで作成していきます。

drawableに新規xmlファイルを作成する

“`xml




元記事を表示

開発現場に入る前に知りたかったeclipseの便利機能(ショートカット中心)

以下はすべて開発現場にはいってから知ったショートカットです。
知らないと全然ソースを追えないものもあるので覚えておきましょう。
(以下の「+」は「+」の右と左のキーを同時押しするという意味で「+」自体を実際に押すわけではない)

# ctrl + t
ソースを追う中でinterfaceが出てきた際に、その実装を探すために使う。
interfaceのクラス名にフォーカスを当てて使用すると、そのinterfaceを実装している
クラスがポップアップで表示される。

# ctrl + alt + H
あるメソッドにフォーカスを当てて使用すると、どこから呼び出されているかを確認したり、影響範囲を調べるのにも使える。
eclipseでは呼び出し階層タブに表示される。

# F3
変数やメソッド名にフォーカスを当てて使用すると、それらの宣言場所まで飛ぶことができる。
初期値や処理を確認したいときに使用する。

# alt + right、alt + left
ソースを追う中で一つ前にみていたおおよその位置やファイルに戻る。

# ctrl + shift + P
for文やif文などの始まりと終わ

元記事を表示

twitter-api-java-sdk (Twitter API v2) でツイートする

Java から Twitter API にアクセスするときは、[Twitter4J](https://twitter4j.org/) が定番です。
ただ、せっかく新しい Twitter API v2 とそれに対応した公式の [twitter-api-java-sdk](https://github.com/twitterdev/twitter-api-java-sdk) が出ていたので、今回はこちらを使ってみました。
その際の、ツイートするまでの手順とサンプルコードをまとめました。

必要な手順は以下の3つです。

1. 開発者情報を登録
1. “Client ID” と “Client Secret” を取得
1. “Access token” と “Refresh token” を取得
1. Twitter API Java SDK でツイート

# 開発者情報を登録

1. [Twitter Developers](https://developer.twitter.com/en/portal/petition/essential/basic-info) を開く
1. 開発者情報

元記事を表示

Java Ramdomクラスの使い方

・Ramdomクラスとは

 Ramdomクラスは、指定した数字からランダムに1つ生成するクラスである。

“`Java:Ramdom
//Ramdomクラスのコンストラクタ、新規乱数ジェネレータを作成する。
Ramdom ramdom = new Ramdom();
//nextIntの引数には出したい個数を入れる。
//10といれた場合10桁かつ0~9の10個の中からランダムで生成される。
int ramdomInt = ramdom.nextInt(10);
//nextIntのあとに+で入れる数字によって生成される数字を操作することができる。
//今回の場合は, +1 なので 1~10 の10個の中からランダムで生成されるようにできる。
int ramdomInt1to10 = ramdom.nextInt(10) + 1;
“`

元記事を表示

Java, Springboot、Thymeleafの設定まで

・はじめに

 この記事では、Spring BootでのWeb開発の始め方について書いていきます。
 使用するIDE: IntelliJ IDEA

・Spring initializrからダウンロード

 Spring initializrは、Spring bootアプリケーションをはじめるためのキットをダウンロードできるサービスです。このページからひな形をダウンロードします。
https://start.spring.io/

ビルドツールの選択はMaven, Project Metadataに設定を入力します。
Dependenciesではあらかじめフレームワークを簡単に組み込むことができます。ここで使いたいフレームワークを選ぶと、フレームワークが設定された状態でダウンロードができる。(ここで設定しなくても後から設定できる)

・Tomcatの設定

 右上にある現在のファイルをクリック⇒実行構成の編集⇒新規追加⇒アプリケーションを選択する。名前を`Tomcat`にしてビルドと実行の右にあるメインクラスを選ぶ。

元記事を表示

JavaのパッケージとクラスライブラリとAPIドキュメント

## パッケージとは
**パッケージ**とは複数のクラスをまとめる仕組みの事。
Java には、多くのプログラムで共通に必要とされる機能を持ったクラスがあらかじめ用意されていてこれらを総称して**クラスライブラリ**と呼び、クラスライブラリを活用することで、プログラムに高度な機能を簡単に組み込むことができる。
例えば、に文字列を出力するためのSystem.out.printlnという命令文も、クラスライブラリに含まれるPrintStreamというクラスの機能を使っている。
クラスライブラリに含まれるクラスやインタフェースは、用途やその種類に応じて**パッケージ**と呼ばれる単位で分類されている。

## パッケージ化の宣言
複数のクラスをまとめるにはファイルの先頭行で**パッケージ化の宣言**をする。宣言するには**packageキーワード**を使い package パッケージ名;」とする。
“`:例文
// package パッケージ名;
package pack;

public class Student{
:
}
“`
package パッケージ名;とした後に

元記事を表示

OTHERカテゴリの最新記事