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

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

JavaでPowerPointにアニメーション効果を追加する方法(プリセットアニメーション/カスタムアニメーション)

##背景
PowerPointスライドは形状にアニメーション効果を設定することができます。よく見られるアニメーション効果は組み込まれた固定タイプで、つまり、アニメーション効果とパスは事前設定された固定テンプレートですが、アニメーション効果を設計する場合、ユーザーは自分の好みに応じてアニメーションモーションパスを定義してアニメーション効果をカスタマイズすることもできます。以下では、Javaバックエンドプログラムコードを使用して、PowerPointにアニメーション効果を追加する方法を示します。もちろんプリセットアニメーションとアニメーション効果をカスタマイズする方法が含まれています。

###テスト環境には次のものが含まれます。

ターゲットテストドキュメント:Power Point 2013
コンパイル環境:IntelliJ IDEA 2018
JDKバージョン:1.8.0
PowerPointライブラリのバージョン:Spire.Presentation.jar 5.1.0

注:このPowerPointライブラリを介してアニメーションタイプ(AnimationEffectType)を

元記事を表示

【OOP】01_オブジェクト・クラス・インスタンス

こんにちは、コイキングです。

本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、オブジェクト・クラス・インスタンスについて、説明したいと思います。

******
# 1. オブジェクトとは?
まず一般的なオブジェクトの概念について探してみると**現実世界に存在する’物体’、’対象’になります。

※ 参考
https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88

具体的に例えてみると人間・犬のような動物も、スマートフォン・PC・箱のような物も、ポケモン・デジモンのようなゲームのキャラクターもオブジェクトと言えると思います。

ではOOPでのオブジェクトは何でしょう?
私は現実世界のオブジェクトから重要で核心的な所を抽象化してクラス化し、クラスを元にしてメモリー上にロードされたデータだと思います。

オブジェクト指向では上記の説明通りメモリー上にロードされたオブジェクトの相互作用を通してプログラ

元記事を表示

Android開発におけるドキュメント作成”Dokka / KDoc”の導入手順

# Dokkaとは

“KDoc”形式で記載したコメントを、Javadocと同様な形でドキュメントを作成できる。
JavaとKotlinが混在したプロジェクトのドキュメントも生成可能

https://github.com/Kotlin/dokka

# 導入

“` project/build.gradle
buildscript {
ext {
dokka_version = “1.6.10”
}
dependencies {
classpath “org.jetbrains.dokka:dokka-gradle-plugin:${dokka_version}”
}
“`

“` app/build.gradle
apply plugin: “org.jetbrains.dokka”

android {}
dependencies {}

// dokkaHtml 用の設定
dokkaHtml.configure {
outputDirectory.set(new File(“${buildDir}/dokkaHtml”))

元記事を表示

Java Gold SE 11に合格しました【正答率85%】

先日Java Goldを受験し、見事合格しましたのでその経緯をまとめたいと思います。

#Java Gold試験概要
まず簡単な試験概要です。
・試験名:Java SE 11 Programmer II
Pearson VUEで試験の申込みをする時に「Java Gold」だと検索に引っかからないので注意です。
・試験時間:180分
一般的なベンダ試験の試験時間だと思います。普通に解いていれば180分丸々問題に費やすことはないと思います。
・出題数:80問
・合格ライン:63%
ベンダ試験の上位資格にしてはかなり合格ラインは低いな、という印象でした。なので20問くらい間違えてもいいかぁくらいの気楽な気持ちで取り組みました。
・受験要件:Java Silverを取得済みであること

#自身の背景
まず今回Java Goldを受験するにあたり、自身の経歴について記載します。

###Javaの経験
大学時代と社会人1年目で少し触れて、Java Bronzeは取得。しかしその後は業務等で使う機会は全くなく、内容はほとんど忘れてしまった。昨年6月にJavaを使う部署へと異動し、猛勉強を開始。昨年

元記事を表示

Javaデベロッパが知るべきDockerセキュリティ5つの大切なこと

セキュリティのシフトレフトを考えると、開発段階から考えるということが重要ということはわかってはいても、どう実践すれば良いものか、、、
わかってはいつつ、なんとなく不安になりつつも、忙しく作業に没頭せざるをえないJavaデベロッパの方も多いのではないでしょうか。

######今回はJavaデベロッパ向けDockerのセキュリティの短めの記事のご紹介です。

参考資料:

* [JavaデベロッパのためのDocker:セキュリティを失敗させないために知っておくべき5つのこと(原文)](https://snyk.io/blog/docker-for-java-developers/)
* [Docker for Java developers: How not to fail your security(動画)](https://www.youtube.com/watch?v=v2SkWn-ZRDg)

#JavaデベロッパのためのDocker:セキュリティを失敗させないために知っておくべき5つのこと

Brian Vermeer
ブライアンフェルメール
2020年11月20日
D

元記事を表示

【Java文法】例外処理

こんにちは、コイキングです。

本記事では’例外処理’について、説明したいと思います。

******

# 1. 例外処理とは?
例外処理はプログラムの実行中に予想されていない結果が発生した際の対応を言います。

例えるとコンソールからユーザー入力で’数字データ’を入力するべきものを’文字列データを入力してもらい’、文字列のデータを数字変数に代入しようとする場合
プログラムは例外を発生させます。

上記のような状況で **1) 例外発生の理由をログなどで知らせたり、2) 例外が発生した際に必要なロジックを実行すること**などを例外処理で担います。

# 2. try-catch構文
try-catch構文は **例外が発生が予想されたり、必ず例外処理をしないといけないコード囲み例外を処理**します。

例外発生が予想される所のコードをtry構文で囲んで、catch構文に例外を処理するロジックを記載します。

“`
File file = new File(“newFile.txt”);
//file.createNewFile(); // ファイル作成時に例外処理をしないとコンパイ

元記事を表示

SpringBoot Bean Validation:フィールド名を出力する

## はじめに
Bean Validationのエラーメッセージにフィールド名を出力させるために、プロパティファイルに {0} を追記したが、「{0}を入力してください。」と表示される。
message.propertiesに記述していたのをValidationMessages.propertiesに変えてみたり、@Validを@Validatedに変えたりしたのだが、改善せず。
当たり前に使っていたのに、いざ上手くいかないと、何が原因なのか検討がつかず。解決するまでに、結構は時間を使った・・・。

どうようにお困りの方もいるかと思い記録しておきます。

## 不足していたのはMessageSourceの利用
bindingResultに登録された時点で、{0}にフィールド名が置き換わると思い込んでいたが、MessageSourceを使って置き換える必要がありました。(フォームだと自動的にやってくれていたのかも?)

### Controller(抜粋)
“`java
import org.springframework.context.MessageSource;
import o

元記事を表示

【Java文法】セット(Set)

こんにちは、コイキングです。

本記事では’セット(Set)’について、説明したいと思います。

******

# 1. セット(Set)とは?

Setは**重複されていないデータの集まりを格納するため**のデータ構造です。
Setを実装したクラスはHashSet, LinkedHashSet, TreeSetなどがあります。

# 2. HashSet
ハッシュセットはHashMapの**Keyの値がユニークである特性を利用して実装**されています。
そのため、**HashMapの特性と長・短所を共有します。**

## 1) データの挿入

“`
Set set = new HashSet();

set.add(“HashSet-value-01”);
set.add(“HashSet-value-02”);
set.add(“HashSet-value-02”); // 重複された値は挿入できない。
set.add(“HashSet-value-03”);
set.add(“HashSet-value-04”);
“`

## 2) デー

元記事を表示

【Java文法】マップ(Map)

こんにちは、コイキングです。

本記事では’マップ(Map)’について、説明したいと思います。

******

# 1. マップ(Map)とは?
マップは**Key-Value構造に構成されているデータを格納**するデータ構造です。
Keyを使った**データ検索に最適化されたデータ構造で、 **Key値は重複できない**という特徴があります。
Mapを実装したのはHashMap, LinkedHashMap, TreeMapなどがあります。

# 2. HashMap
## 1) HashMapとは?
ハッシュマップとはハッシュテーブルを使ってマップを実装したデータ構造で、
Key値をハッシュ関数を通してデータの参照値が格納されているバーケット(bucket)のインデクスに変換し、バーケットのインデクスを用いてデータにアクセスします。

※ 長所
– Key値でデータを検索するため、 **検索速度が速い**です。

※ 短所
– バーケットの長さ調整が必要な場合、 **処理速度の遅延が発生する可能背があり**ます。
– データの格納時に**配列やリストより多めのメモリーを使います。*

元記事を表示

[オブジェクト指向]某コーヒーショップの注文をイメージしてプログラムを書いてみた。

アウトプット用!!
第7回目は
has-aの関係を意識してプログラムを行なっていく!
(has-a)とはあるクラスが別のクラスをフィールドとして利用している関係のことです。
例えば、Hero型のクラスとSword型のクラスがあるとしてHeroクラスのメンバ変数にSwordクラスのデータが使えるようになるイメージです。よって勇者は剣を持っている(has-a)の関係が成り立つ。

今回作成したプログラムは(has-a)を意識して作成しました。
SetMenuクラスはMenuクラスを持っている(has-a)の関係が成り立つので、SetMenuクラスでMenuクラスのデータが使えるようになる。

早速コードをみていきましょう。

“`Main.java
package ensyu;

import java.text.SimpleDateFormat;
import java.util.Date;

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

//現在日時を取得
Date dateObj = ne

元記事を表示

Javaに入門してみたらmainメソッドが気になり過ぎて前に進めなくなった話

#はじめに
IT業界の経験は10年以上あるものの、ずっとメインフレームコンピュータなどのレガシーな環境でCOBOLの開発をやってきて、最近はCOBOLすら書いていなくて完全にエクセルで資料作ってる人がこの記事を書いております。Java初心者が記事を書いておりますので間違いなどありましたら指摘頂けると幸いです。

#何が起きたのか
これまで個人開発でPythonを書いてきましたが、ふとOOPについて学んでみたくなったので、Javaを学んでみることにしました。まずは環境構築してHello Worldしてみたのですが、「mainメソッドはおまじない」という入門記事があったりして、本当にそれでいいのか?と気になって先に進めなくなり色々調べてみたという話です。

#とりあえず環境構築してHello Worldまでやってみる

###JDKのインストール
まずはJDK(Java Development Kit)をインストールするために[JDKのダウンロードページ](https://www.oracle.com/java/technologies/downloads/)にいきます。
2022年1月時

元記事を表示

【個人的4選】サイバーセキュリティニュースまとめ(2021年12月)

# はじめに

## この記事の目的
この記事は日々刻々と変化するサイバーセキュリティ関連のニュースの内、興味深いニュースを筆者の**独断と偏見**でピックアップしたものです。

日々の情報収集、セキュリティの勉強、~~セキュリティ全く関心のない経営層への啓蒙~~などに役立てていただけますと幸いです。

## 想定読者
– セキュリティ関連の仕事に従事している人
– セキュリティに関わらないけど、少しセキュリティに興味がある人
– セキュリティに興味のある学生

# サイバーセキュリティニュース
2021年12月は、4つのニュースをピックアップしました。

## 1位 Apache Log4j の脆弱性
1位はこれで異論のあるセキュリティ担当者はいないでしょう。
12/10頃に世界的に話題になった、Javaのログ出力ライブラリLog4jの脆弱性です。

多くのセキュリティ担当者がこの脆弱性に対応に忙殺されたのではないでしょうか。

### 概要

>
Javaベースのログ出力ライブラリLog4j2で深刻な脆弱性(CVE-2021-44228)を修正したバージョンが公開された。その後も

元記事を表示

【Java文法】リスト(List)

こんにちは、コイキングです。

本記事では’リスト(List)’について、説明したいと思います。

******

# 1. リスト(List)とは?
リストはJavaでデータ構造とデータを取り扱うためのコレクションフレームワークに属するインターフェースです。
配列のように**順序があるデータを格納するためのデータ構造**で、リストを実装しているクラスはArrayList, LinkedList, Vectorなどがあります。

# 2. ArrayList
## 1) アレイリスト(ArrayList)とは?
‘ArrayListは**長さが変更できる配列’**のようなデータ構造です。
ArrayListのクラス内部を見れば**配列を使いデータを格納している**ことが分かります。

※ 長所
– 配列のように**インデクスを使い、速やかに要素にアクセスできます。**

※ 短所
– **長さが変わる際の処理に時間がかかる。**
 リストにデータを入れてみるとリストの内部のデータを格納する配列の長さを超える場合がある。この時長さを増やした新しい配列に既格納していたデータをコピーする処理

元記事を表示

【Java文法】ラッパークラス

こんにちは、コイキングです。

本記事では’ラッパークラス’について、説明したいと思います。

******

# 1. ラッパー(Wrapper)クラスとは?
ラッパークラスはプリミティブデータ型をクラス化したもので、
**1) プリミティブ型の変数をインスタンスとして使う場合**
**2) 文字列 <-> 数字を相互変換する必要がある場合**
などに使います。

# 2. プリミティブ型からラッパークラスのインスタンスに変換
– プリミティブ型 -> **ラッパークラスの変換はnew 演算子**を使います。

“`
// ※ Wrapperクラスの参照変数には’null’の代入ができます。
Integer wrapperInt = null;
Long wrapperLong = null;
Short wrapperShort = null;
Byte wrapperByte = null;
Double wrapperDouble = null;
Float wrapperFloat = null;
Character wrapperChar = null;
Boolean

元記事を表示

【Java文法】標準入出力

こんにちは、コイキングです。

本記事では’標準入出力(ユーザーからキーボード操作などにて入力を受け取り、コンソールにて結果を出力)’について、説明したいと思います。

******

# 1. 値を入力する(Scannerクラスを使う)
Scannerクラスはユーザーからデータを入力してもらう様々なメソッドを提供するクラスです。

## 1) 整数データ入力

“`
// (int)
int inputInt = sc.nextInt();
System.out.println(“Inputed int : “+inputInt);

// (long)
long inputLong = sc.nextLong();
System.out.println(“Inputed long : “+inputLong);

// (byte)
byte inputByte = sc.nextByte();
System.out.println(“Inputed byte : “+inputByte);

// (short)
short inputshort = sc.next

元記事を表示

【Java文法】メソッド

こんにちは、コイキングです。

本記事では’メソッド’について、説明したいと思います。

******

#1. メソッドとは?
メソッドは呼出すと**特定の動作を行い、その結果をリターンするコードの集まり**として、数学の関数のような役割を担います。

#2.メソッドの宣言
メソッド'[アクセス制御子] [リターンするデータ型] メソッド名(引数1, 引数2…){メソッドのコード… }’の様に宣言します。

## 1) 引数 X, 戻り値リターン X

“`
public void printHello() {
System.out.println(“Hello!!!”);
}
“`

括弧'()’の内部に引数を宣言せず、戻り値がないため、'[リターンするデータ型]’にはvoidを使います。

## 2) 引数 O, 戻り値リターン X

“`
public void printString(String str) {
if (str == null || str.equals(“”)) {
/*
* こちらで使う re

元記事を表示

【Java文法】配列

こんにちは、コイキングです。

本記事では’配列’について、説明したいと思います。

******

#1.配列とは?
配列は同じデータ型の変数が順次的に格納されているような形のデータ構造です。
数が決まっている同じデータ型のデータを扱う時に配列が使われます。

#2.配列の宣言と初期化
## 1) 配列の宣言

“`
// データ型 [] 配列名;
int [] arrayInt;
“`

## 2) 配列の初期化する(配列の長さを指定)

“`
// 配列名 = new データ型 [長さ];
arrayInt = new int[3];
“`

## 3) 配列の宣言と初期化を同時にする(配列の長さを指定)

“`
// データ型 [] 配列名 = new データ型 [長さ];
String [] arrayStr = new String[3];
“`

## 4) 配列の宣言と初期化を同時にし、配列にデータを入れて生成
### – 方法1

“`
// データ型 [] 配列名 = new データ型[]{要素1, 要素2, 要素3…}
char [] arr

元記事を表示

【Java文法】ループ

こんにちは、コイキングです。

本記事では’ループ(繰り返し処理)’について、説明したいと思います。

******

# 1. ループとは?

ループは条件式の結果が偽になるまで、ループ構文内のコードを繰り返して実行する構文です。
Javaでループ構文はfor文、拡張for文(for-each文)、while文、do-while文があります。

# 2. for文
for文は**決まった回数分コードを繰り返して実行したい時に**主に使うループ文です。

“`
// for ([初期値]; [条件式]; [増減演算]) {
// 条件式の結果が偽になるまで実行するコード…
// }

for (int su1 = 0; su1 < 5; su1++) { System.out.println("for 1 ["+ su1 +"] 回目出力"); } ``` # 3. 拡張for文(for-each文) 拡張for文は**配列やリストのようなデータを格納しているデータ構造から、格納されているデータを順次抜き出す場合**、主に使います。 ``` ArrayList

元記事を表示

【Java文法】条件分岐

こんにちは、コイキングです。

本記事では’条件分岐’について、説明したいと思います。

******

# 1. 条件分岐とは?
条件分岐は**条件式を用いて、コードを実行するかどうか制御する構文で、**
条件式の結果が真の場合構文内のコードが実行される形でコードの実行を制御します。
Javaで条件分岐の構文はif文、switch文、算術演算子があります。

# 2. if文
if文は条件式の結果が真であればif文の構文内のコードが実行され、プログラムのフローを制御する構文です。
else、else-ifキーワードを使ったり、省略することで多種多様にコード実行を制御できます。

## 1) if文単体で使う

※ 条件式の結果が真の場合、if文内部のコードが実行されます。

“`
int a = 10;
int b = 20;
int c = 10;

if (a < b) { System.out.println(a +" より "+ b +"が大きい"); } ``` ※ 条件式の結果が偽の場合、if文内部のコードは実行されないです。 ``` if (a < c) {

元記事を表示

【Java文法】演算子(オペレーター)

こんにちは、コイキングです。

本記事では’演算子(オペレーター)’について、説明したいと思います。

******

# 1.演算子(オペレーター)とは?

オペレーターは演算をする為の記号です。
主に使われている演算子は四則演算(しそくえんざん)のために必要な’算術演算子’、
値を順次増やしたり、減らしたりするための’増減演算子’、値の比較などための’比較演算子’、変数に値を代入するための’代入演算子’などがあります。

# 2. 算術演算子(さんじゅつえんざんし)
四則演算のような計算をするために使う演算子で、
コードでは”[値A][演算子][値B]”のような形で使われます。
コードの解析は”値Aを値Bで演算子に該当する演算を実施”とすれば良いです。

## 1) ‘+’ プラス演算子
プラス演算子は足し算で使われ、コードの解析は **”値Aに値Bを足す”** になります。

“`
int a = 100;
int b = 20;
int c = -10;

System.out.println(a + b); // 120
System.out.println(a +

元記事を表示

OTHERカテゴリの最新記事