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

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

Function interface

Interface Function\
Type Parameters:
T – the type of the input to the function
R – the type of the result of the function

given argumentに対し処理を行い、結果を返す
下記の例はgiven stringのlengthを返す

“`java
public class Outer {
public static void main(String[] args) {
Function f = x -> x.length();
System.out.println(f.apply(“abc”));
}
}
“`
“`
3
“`

元記事を表示

Java Silver を受験した時の話

正式名称『Oracle Certified Java Programmer, Silver SE11』というやつ。
2022年11月にOracle Java Silverに合格したのでその受験までの勉強期間と、難しかった知識についてまとめていく。

![スクリーンショット 2022-12-31 17.19.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3077345/f7d8a823-b5b8-a4b9-8eb5-b7f79b6aecb4.png)

受験前はもうSE 17が出るんじゃないかと思っていたが2023/1/10現在まだリリースされていない。

# 目次
受験までの期間について
受験した感想
難しかったことベスト3

# 受験までの期間について
– **受験時の肩書き**
– 新卒1年目
– 開発未経験
– **なぜ受験したか**
– 就活時はエンジニア志望でJavaという言語が日本で広く普及していることをしり、資格試験をベンチマークにしようと思ったか

元記事を表示

Predicate interface

test methodは、引数に対し、booleanを返す。

“`java
public class Outer {
public static void main(String[] args) {
Predicate p1 = x -> x > 0;
Predicate p2 = x -> x > 100;
Predicate p3 = p1.or(p2);
System.out.println(p3.test(50));
}
}
“`
“`
true
“`

元記事を表示

【初心者専用】ガベージコレクションについて

# 0. はじめに
新卒社員がJavaを初めて学習している際の備忘録のようなものです。超入門だと思うので同郷を救いつつ自分の知識も再確認といったところで、今回初耳だった「ガベージコレクション」について問題を通してまとめました

# 1. ガベージコレクションについて
ガベージコレクションとは「メモリ上使われなくなったインスタンスを探し、見つかればそのインスタンスを探し、見つかればそれを破棄しメモリを開放すること」です。

そのガベージコレクションのタイミングが問われるのが以下の問題になります

“`java
public class Main {
public static void main(String[] args) {
Object a = new Object(); //A
Object b = new Object(); //B
Object c = a;

a = null;
b = null;

}
}

“`
上記のプログラムを実行し、7行目が終了したときにガベージコレクションの対象となるインスタンスはどれか?

1. A
2. B
2

元記事を表示

Consumer interfaceを使用してconstructorの引数追加の影響を減らす

constructor使わずbuilderでinstance生成する
builderにItemと同じフィールドを持たせる
builderに値設定するロジックをconsumerとして引き渡す
builder内部でconsumer実行
builder内容でItemを生成するコンストラクタ実行

“`java
class Item {
private int price;
private String name;
public Item() {}
private Item(Builder build) {
this.price = build.price;
this.name = build.name;
}
public String toString() {
return “name:” + name + ” price:” + price;
}

static class Builder {
int price;
String name

元記事を表示

機械学習、Java、GridDBを用いた糖尿病予測

本記事では、世界中の多くの人々のライフスタイルを動かしている糖尿病という健康管理の悩みを取り上げます。この記事では、予測システムを作成するための機械学習モデルの使用方法を説明します。このモデルは、ランダムフォレストを使用して、患者が糖尿病であるかどうかを予測します。この記事では、データベース**GridDB**をセットアップするために必要な要件を概説します。その後、我々のデータセットとモデルについて簡単に説明します。最後に、結果を解釈し、我々の結論を出します。

[全ソースコードはこちら][1]

## 必要条件

**GridDB**データベース・ストレージ・システムは、ランダム・フォレスト・モジュールを構築する際のバックアップメモリ・リソースとなります。**GridDB**を完全に機能させるには、ダウンロードし、オペレーティングシステムに設定する必要があります。

必ず以下のコマンドを実行して、必要な環境変数を更新してください。

“`sh
export GS_HOME=$PWD
export GS_LOG=$PWD/log
export PATH=${PATH}:$GS_HOM

元記事を表示

日付と時間の文字列を取得するには

“`java
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(“yyyy-MM-dd,HH-mm-ss,SSS”);
Instant v1 = Instant.now();
ZonedDateTime v2 = v1.atZone(ZoneId.of(“Asia/Tokyo”));
String s1 = v2.format(dtf);

System.out.println(s1);
“`

“`java:System.currentTimeMillis()の場合
long g1 = System.currentTimeMillis();
Instant v1 = Instant.ofEpochMilli(g1);
“`

本当はCodeSandboxでサンプル実行出来るようにしたいけど、諦めました。

元記事を表示

Java springとspringbootの違いをまとめてみた

## そもそもフレームワークとは
– アプリ開発をする際に、開発の効率を上げるために便利な機能がたくさん詰まっているツール。

## Spring Framework
javaのWEBフレームワークで、WEBアプリを作成することができる。
フレームワークの集合体 

## Spring Boot
spring bootはspring Frameworkの機能の使い分けが困難という欠点を解消するために作られたフレームワーク。
主な機能として、複数のフレームワークを使用する際に発生する、Bean定義やXML設定などを、可能な限り自動設定する機能が搭載されている。そのほか、コードを書かなくてもプログラム処理ができるように「、Javadocと同じくアノテーションが記述できる点も特徴です。Spring MVCのフレームワークの仕様を踏襲して作成しており、Spring Frameworkを構成するフレームワークの一つとして組み込まれている。

## spring frameworkとspring bootの違い
– spring framework:Java言語のアプリケーション開発のために作られ

元記事を表示

Java アクセス修飾子の使い方とカプセル化

## アクセス修飾子
クラスやフィールド、メソッドヘのアクセスを制御するための修飾子をアクセス修飾子という。アクセス修飾子には、public 、protected、privateの3種類がある。
これらをクラス、フィールド、またはメソッドの宣言の前につけることで、次の表 のようなアクセス制御を行える。(○アクセス制御を行える範囲)
| アクセス修飾子 | 同クラス | 同パッケージ | サブクラス | 他 |
| — | — | — | — | — |
| public | ○ | ○ | ○ | ○ |
| protected | ○ | ○ | ○ | |
| (なし) | ○ | ○ | | |
| private | ○ | | | |

クラスにつけられる修飾子はpublicのみ。また、複数のクラスの宣言を1つのファイルの中に記述する場合、public修飾子をつけられるクラスは1つだけ。

“`:例文
 class Student{
private int score;
public void setScore(int s){

元記事を表示

lamda expressionをfunctional interfaceに

lamda expressionはmethodそのものを表していて
method reffereceのように扱える

以下はfunctional interfaceのFactoryInterface#get()に対して
外部からlamda expressionを代入して、切り分けすることにより
SampleClassA⇒SampleClassBに変更した際に、businessLogicに影響を与えない

“`java
interface FactoryInterface{
T get();
}
interface SampleInterface{
void method();
}
class SampleClassA implements SampleInterface {
public void method() {
System.out.println(“I am SampleClassA method”);
}
}
class SampleClassB implements SampleInterface {
pub

元記事を表示

Supplier interface

functional interface
T get() methodを持つ
lamda expressionでdefineして使う

“`java
public class Outer {
public static void main(String[] args) {
Supplier s = () -> “lll”;
String str = s.get();
System.out.println(str);
}
}
“`
“`
lll
“`

元記事を表示

enum

Enum classのsub classとなる
each elementがjvmによりinstance化される

“`java
enum EnumSample{
PAN(“hello”),GOHAN(“hello”);
String value;
private EnumSample(String value) {
System.out.println(value);
this.value = value;
}
public String toString() {
return value;
}
}
enum EnumSample2 {
APPLE,ORANGE
}
public class Outer {
public static void main(String[] args) {
System.out.println(EnumSample.PAN);
Enum e = EnumSample2.valueOf(“APPLE”);
System.

元記事を表示

private method of interface

default methodからprivate methodを利用する
“`java
interface A {
private void privateMethod() {
System.out.println(“aaaaprivate”);
}
default void method() {
System.out.println(“aaaaA”);
privateMethod();
}
}

class C implements A{
public void method() {
A.super.method();
}
}
public class Outer {
public static void main(String[] args) {
new C().method();
}
}
“`
“`
aaaaA
aaaaprivate
“`

元記事を表示

JavaでPDFをExcelに変換し、その書式を保持する方法

PDFからExcelへの変換には多くの理由があります。おそらく最も重要な理由は、Microsoft Excelが提供するデータ計算、視覚化、分析ツールを使用して、PDF内のデータを簡単に操作および分析することができるということです。例えば、データに数式を使用したり、データに基づいてグラフを作成したり、データに条件付き書式を適用したり、その他にもさまざまなことが可能です。今回は、無料の[Free Spire.XLS for PDF](https://jp.e-iceblue.com/introduce/free-spire-pdf-for-java.html)を使用して、プログラムで**PDFをExcelに変換し**、**その書式を維持する方法**を説明します。
– **[PDFをExcelに変換し、その書式を維持する](#pdfをexcelに変換しその書式を維持する)**
– **[複数ページのPDFを単一のExcelワークシートに変換する](#複数ページのpdfを単一のexcelワークシートに変換する)**
## 【依存関係の追加】
この方法は、無料のFree Spire.PDF f

元記事を表示

same name method that is default method of interface and class method

default methodとclass method、同じ名前で定義し
implements, extendsすると、class methodが優先となる。
default methodは消失

“`java
interface A {
default void method() {
System.out.println(“aaaaA”);
}
}
class B{
public void method(){
System.out.println(“aaaaB”);
}
}
class C extends B implements A{}
class D implements A{}
public class Outer {
public static void main(String[] args) {
Method m[] = new C().getClass().getMethods();
for(Method mc:m) {
System.out.

元記事を表示

Leetcode 1443. Minimum Time to Collect All Apples in a Tree

https://leetcode.com/problems/minimum-time-to-collect-all-apples-in-a-tree/description/

## 難易度
### Medium

## アプローチ
### DFS

“`java
import java.util.ArrayList;
import java.util.List;

public class MinimumTimeToCollectAllApplesInATree1443 {
public static void main(String[] args) {

int n = 7;
int[][] edges = {{0, 1}, {0, 2}, {1, 4}, {1, 5}, {2, 3}, {2, 6}};
List hasApple = new ArrayList<>();

hasApple.add(false);
hasApple.add(false);

元記事を表示

変数のデータ型の種類

変数のデータ型の種類や使い方などを、学習し直した為、まとめていきたいと思います。
変数については以前簡単にまとめた記事がありますのでよろしければどうぞ。
[変数の定義 基本的な使い方](https://qiita.com/singekino-ojisan/items/12a51976b827e7dedb1c)

# 基本データ型の種類
javaでデータ型には大きく分けて、`基本データ型(プリミティブ型)`と`オブジェクト参照型(リファレンス型)`の2種類があります。
`オブジェクト参照型(リファレンス型)`には、`String型`、文字列を扱えるデータ型です。
[変数の定義 基本的な使い方](https://qiita.com/singekino-ojisan/items/12a51976b827e7dedb1c)こちらで、記事にしています。

`基本データ型(プリミティブ型)`は、数字や文字などの、最も基本的なデータの種類を扱うことができ、8種類あります。
ビット数とはPCのメモリ上で確保される桁数のことです。
同じような表現でバイト数というのもあり、一般的に`8ビット=1バイト`で

元記事を表示

Liberty で httpsession を JCacheに永続化

# 目的
tWASではDBに保存していた httpsessionが Libertyでは JCacheで保存できるようになったので、その構成をします。

# Gitレポジトリ
用意したGitレポジトリをクローンします。

“`
git clone https://github.com/pdprof/security-auth.git
cd httpsession/jcache-docker
“`

# Libertyイメージのビルド
Liberty Docker イメージをビルドします。localhost 以外の docker を動かしているホストのIPアドレスをACCESS_HOSTに指定します。

“`
export ACCESS_HOST=172.17.0.1
./setup-docker.sh
“`

# Libertyとhazelcastの起動
続けて以下のシェルを実行して起動します。テストなので hazelcast は永続化をしていません。

“`
./hazelcast-start.sh
./httpsession-start.sh
“`

# HttpSess

元記事を表示

【初心者専用】Java8のOptionalクラスについて

## 0. 最初に
開発経験のない新入社員が突然、現場に放り込まれて「簡単な開発だから」と任されたけど、わからなさすぎて泣き寝入り状態だったので、自分の研鑽かつ同様の境遇の人達を救うためJava8(Optional編)についてまとめた。

## 0.5. ラムダ式
Optionalを記す前に、ラムダ式といったものの説明をしないとだめだと気付きました。

ラムダ式をひとことで表すと、、、**省略して、矢印みたいになってるもの**
“`
({引数} -> {処理})
“`
こんな感じです。

サンプルコードを作ってみると
これがインターフェースで
“`java
interface Color{

void printColor();

}
“`
これが匿名クラス(匿名クラスとは[こちら](https://cyzennt.co.jp/blog/2020/10/16/%E7%84%A1%E5%90%8D%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%A8%E3%81%AF/#:~:text=java%E3%82%84C%23%E3%81%A7%E3%81%A

元記事を表示

default method of interface

default methodはextendsによりoverrideされる
“`java
interface A {
default void method() {
System.out.println(“aaaa”);
}
}
interface B extends A {
}

public class Outer implements B {
@Override
public void method() {
System.out.println(“aaaa2”);
B.super.method();
}
public static void main(String[] args) {
new Outer().method();
}
}
“`
“`
aaaa2
aaaa
“`
interfaceがextendsするときも利用可能
default methodは、extendsしたinterfaceのdefault methodをoverrideするときにだけ参照できる

元記事を表示

OTHERカテゴリの最新記事