- 1. Spring Native 0.11(GraalVM)を使ってSpring BootのアプリをNaitive Image化する方法
- 2. JavaとJMeterをインストールする
- 3. 【OOP】05_ポリモーフィズム
- 4. Java Silver SE11 5章
- 5. Java基礎(アウトプット用)
- 6. プログラミング言語を簡単にまとめる
- 7. Kotlinデビューしたくて環境構築してみた
- 8. 必要な .class ファイルから間接的に参照されています
- 9. Log4Shellについて知っておいた方がよいこと
- 10. Javaを通してPDFをPDF / Aに変換する方法
- 11. Javaでデータベースに接続する
- 12. EclipseでPayaraTools導入エラー
- 13. Java開発者のためのセキュアコーディングのコツ10個
- 14. AtCoder Beginner Contest 016をやった(Java)
- 15. Javaを使用してPDFでテキストの回転と傾きを設定する
- 16. 【OOP】04_継承
- 17. MyBatisGeneratorのMapper自動生成機能をカスタマイズして見た
- 18. JavaでWekaによる機械学習 01-数値データの推測
- 19. MouseController
- 20. KotlinでviewBindingを使う
Spring Native 0.11(GraalVM)を使ってSpring BootのアプリをNaitive Image化する方法
# サマリー
Spring Native 0.11(GraalVM)を使ってSpring BootのアプリをNaitive Image化しました。
Q:Naitive Image化とは?
A:今回の検証だと、javaアプリをexe形式にすること(windows環境)Q:Naitive Image化の何がいいの?
A:アプリ起動が速くなるQ:アプリ起動が速くなると何がいいの?
A:サーバーレスアーキテクチャーのようにコンテナが頻繁に起動・削除を繰り返す環境で有用Q:サーバーレスアーキテクチャーの具体例は?
A:AWS Lambda, Azure Functions, GoogleのCloud Functions, Oracle Cloud Functions等
※上記クラウドでアプリを実行するには、dockerイメージの作成が必要になりそう。別の機会に検証を行う。今回のアプリの測定結果は以下の通り
※いわゆるパソコン(windows10、4コア8スレッド、メモリ16G)で実施した結果です|形式 |起動時間|
|—|—|
|Naitive Image
JavaとJMeterをインストールする
# 概要
Java(JMeterの動作に必要)およびJMeterのインストール方法を説明します。
– Macの場合およびWindowsの場合を扱います。
– jenvを使う場合の説明は、ここでは割愛します。# Javaをインストール
Oracle Javaの有償化を巡って、Javaの開発環境(JDK)には様々な種類がありややこしくなっています。
– バージョン8まで
– Oracle JDKを無償で利用できました。
– バージョン9以降
– Oracle JDKが有償化されました。
– 代替となるOpen JDKが様々な機関から無償で提供されるようになりました。
– バージョン17以降
– Oracle JDKが再び無償で利用できるようになりました。([こちら](https://www.publickey1.jp/blog/21/oracle_jdkjava_17.html)を参照)JMeterを利用する際は、利用するJDKのバージョンと種類を選定した上で、下記のいずれかの方法でインストールしてください。
> JDKのバージョンおよび種
【OOP】05_ポリモーフィズム
こんにちは、コイキングです。
本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、ポリモーフィズムについて、説明したいと思います。
******
# 1. ポリモーフィズムとは?
**一つの機能が状況によって、違う結果を出す事で、**
Javaでは’親クラス’又は’インターフェース’を定義し、親を継承した子クラスで親の機能を再定義して**親クラスの参照変数から子クラスのインスタンスを参照し、**親クラスの参照変数から子クラスごとに再定義されたメソッドを呼び出すこととするのを言います。## 1) ポリモーフィズムの長所
– 多種多様なインスタンスを一つの親の参照変数にて管理できるため、**コードの量が減り、コードの維持保守がより楽になります。**
– 一つの親を共有する子クラスを増やし機能を再定義することで新機能の追加が可能がため、**拡張に有利で、結合度が強くならないようにコードの実装ができます。**## 2) ポリモーフィズムの短所
– ちゃんと活用するのは難しいため、プログラマーの能力によりコー
Java Silver SE11 5章
# Java Silver SE11 5章
[黒本](https://www.amazon.co.jp/gp/product/4295007625/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)をもとに学んだことをアウトプットしていきます。
主に問題を解いていて、間違えた箇所もしくは知らなかった内容になります。## 配列
Javaの配列は、配列クラスから作成されたインスタンスであり、複数の値を取り扱う。
配列が扱う値のことを要素と呼ぶ。
以下のような特徴がある。* 同じ型か互換性のある型を扱える
* インスタンス生成時に要素数を決める
* 後から変更できない### 宣言とインスタンス生成
宣言時には以下のルールがある。* 記述する[]は、変数名の前後に入れることができる
* 宣言時に要素数の指定はできない
* 配列型の変数には、あくまで配列インスタンスへの参照のみが代入されているので要素は関係ない* 2次元配列を生成する場合の流れ(int[][]array = new int[2][2];)
1. 1次
Java基礎(アウトプット用)
### メソッドの定義,呼び出し
“`java
class Main{
public static void main(String[]args){
hello();
}
public static void hello(){
System.out.println(“Hello World”);
}
}
“`###引数をメソッドに渡す
“`java
class Main{
public static void main(String[]args){
hello(“Bob”);
}
public static void hello(String name){System.out.println(name + “さんこんにちは”);
}
}
“`###複数の引数を渡す
“`java
class Main{
public static void main(String[]args){
printPrice(“ピザ”,3000);
printPrice(“コーラ”,150);
プログラミング言語を簡単にまとめる
##Java
JavaとはC言語ベースに開発された汎用性の高いプログラミング言語。求人需要が多い
WEBサービスから業務システム、組み込み、など多岐に渡り開発現場で採用されている。
フレームワークはspring Framework##Ruby
Rubyとはオブジェクト指向のプログラミング言語。コードはシンプルに書きやすく読みやすい。
WEBサービスやWEBアプリケーションができる。
フレームワークのRuby on Rails。クックパッドや食べログに使用されている##PHP
PHPとは動的なWEBページを生成することができるサーバーサイドのスクリプト語。HTMLは静的WEBページ。
他のプログラミング言語と比べると文法が比較的容易なので取得しやすい。
フレームワークはLaravel## C#
マイクロソフト社が開発したオブジェクト指向のプログラミング言語。Javaと似ている。
GUIアプリケーション、WEBアプリケーション、ゲーム開発ができる
フレームワークはASP.NET
Kotlinデビューしたくて環境構築してみた
# はじめに
Kotlinを触ってみたくなったので、環境構築をしてみました。
実際に動かすのは、今後になる予定です。# 環境構築(Windows)
## JDKのインストールをする1.公式サイトからJDKをダウンロードする
https://www.oracle.com/java/technologies/downloads/#jdk17-windows![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397779/e268999c-43d7-70a0-086f-3aab9ca40368.png)
2.インストールする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397779/64ba3798-24b6-6f5a-48cb-e2a390fd40db.png)3.環境変数の設定をする
「スタートメニュー」>「設定」>「システム」>「詳細情報」>「システムの詳細設定」>「環
必要な .class ファイルから間接的に参照されています
エラー解消に時間がかかったのでメモ。
ビルドパスのエラーの可能性があるのはわかっていたのですが…。今後はjavaのビルド・パスを見て、
JREシステム・ライブラリがアンバインドとなっていないかを真っ先に確認すること:zap:「アンバインド済み」という言葉があった場合は、
一旦除去して同じライブラリ(or Jar)を入れなおすと治ります。
Log4Shellについて知っておいた方がよいこと
本記事は2022年1月4日に公開した英語ブログ[Log4Shell webinar: What you need to know](https://snyk.io/blog/log4shell-webinar-what-you-need-to-know/)を日本語化した内容です。
[![logo-solid-background.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/14d05b40-70b7-5276-27e9-2ecfe395db03.png)](https://snyk.io/jp)
多くのJavaアプリケーションに影響を与える[Log4Shellの脆弱性](https://snyk.io/log4j-vulnerability-resources/)については、すでに耳にしたり、対処したりしたことがあるのではないでしょうか。この重要なゼロデイ脆弱性についての最新情報を提供するため、弊社では最近オンラインセミナーを開催しました。
「Log4Shellについて知っておく
Javaを通してPDFをPDF / Aに変換する方法
##背景
PDF形式をPDF / A形式に変換することにより、ドキュメントのレイアウト、フォーマット、フォント、サイズなどが変更されないように保護し、ドキュメントの読み取りとアクセスを保証しながら、ドキュメントのセキュリティ保護の目的を達成できます。この記事では、Javaバックエンドプログラムコードを使用してPDFをPDF / A1A、2A、3A、1B、2B、および3B標準に変換する方法を示します。以下は、その方法と手順です。jarパッケージのインポート
Spire.Pdf.jarはこのプログラムにインポートされます。**[ダウンロード](https://www.e-iceblue.com/Download/pdf-for-java.html)**とインポートを実装するために、Mavenプログラムでpom.xmlの次のコンテンツを構成できます。
com.e-iceblue
e-iceblue
https://repo.
Javaでデータベースに接続する
#はじめに
この記事は独習JSP&サーブレット第3版に基づいて、データベースを勉強していた際に躓いた点をまとめた記事です。最新版のJDBCやデータベースを使用している人は、同じようなエラーで躓いていると思うので参考になれば嬉しいです。## 環境
– Tomcat 10.0
– MySQL 8.0
– MySQLドライバ(JDBC):mysql-connector-java-8.0.27## jspからデーターベースに接続する
以下のようにconnect.jspファイルからデータベースに接続するとする。
データソースの設定はcontext.xmlで行う。“`jsp:connect.jsp
<%@ page contentType="text/html;charset=UTF-8" import="java.sql.*, javax.naming.*, javax.sql.*" %>
データベースへの接続
<
EclipseでPayaraTools導入エラー
#環境
* mac OS Monterey
* Eclipse IDE for Enterprise Java and Web Developers – macOS x86_64 (Eclipse IDE 2021-12 R Packages)#原因
__Details__“`
Cannot complete the install because one or more required items could not be found.
Software being installed: Payara Tools 1.4.0.202110041326 (org.eclipse.payara.tools.feature.group 1.4.0.202110041326)
Missing requirement: Payara Tools1.4.0.202110041326(org.eclipse.payara.tools.feature.group 1.4.0.202110041326) requires ‘org.eclipse.equinox.p2.iu; org.ec
Java開発者のためのセキュアコーディングのコツ10個
本記事は2019年9月16日に公開した弊社英語ブログ[10 Java security best practices](https://snyk.io/blog/10-java-security-best-practices/)を日本語化した内容です。
[![logo-solid-background.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/7e96b3c4-cdd6-82db-5ce2-6cf02b879715.png)](https://snyk.io/jp)
このチートシートでは、オープンソースのメンテナーと開発者の両方に向けた、Java言語におけるセキュアコーディングのコツ10個を取り上げます。このチートシートは、SnykのデベロッパーアドボケートのBrian Vermeerと、Java チャンピオンであり[Manicode](https://manicode.com/) Securityの創設者であるJim Manicoとのコラボレーションによって作成されたものです。
AtCoder Beginner Contest 016をやった(Java)
AtCoder Beginner Contest 016をやった。
[C](https://atcoder.jp/contests/abc016/tasks/abc016_3)問題の解き方が知りたいです。
図に書いて大まかにどのようなこと言っているのかは理解できますが、実装的に同実装すればタイムアウト起きないのか知りたく。##[A](https://atcoder.jp/contests/abc016/tasks/abc016_1)
問題文に与えられたとおりに実装すれば答えが出ます。“`Java
import java.util.*;public class Main {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
System.out.println(scan.nextInt() % scan.nextInt() == 0 ? “YES” : “NO”);
}
}
“`
Javaを使用してPDFでテキストの回転と傾きを設定する
##背景
この記事では、Javaプログラムを使用してPDFドキュメントのテキストの回転と傾きを設定する方法を紹介します。テキストの傾きを設定するときは、メソッドTransformText(page);を定義し、page.getCanvas().skewTransform(float angleX、float angleY);を設定して、テキストの傾きを実現します。テキストの回転を設定するときは、メソッドRotateText(page)を定義します。 ;そしてpage.getCanvas()。rotateTransform(float angle);を設定して、テキストの回転を実現します。詳細なコードについて以下の内容をご参照ください。注:PDFクラスライブラリツール**[Spire.PDF for Java](https://www.e-iceblue.com/Download/pdf-for-java.html)**を使用する必要があります。jarパッケージをダウンロードするか、libフォルダー内のjarファイルを解凍してjavaプログラムにインポートするか、mavenリポジトリ
【OOP】04_継承
こんにちは、コイキングです。
本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、
継承について、説明したいと思います。******
# 1. 継承とは?
**親クラスのメンバー変数とメソッド**を子クラスから**継承して使えること**を言います。※ extendsキーワードを用いて継承する親クラスを定義し、継承かんけいを設定する事ができます。
public class 子クラス extends 親クラス {
}
※ 例示コード
“`java:Animal.java
public class Animal {
protected String name;
protected int age;public Animal() {}
public Animal(String name, int age) {
this.name = name;
this.age = age;
}public void printName() {
System.out.prin
MyBatisGeneratorのMapper自動生成機能をカスタマイズして見た
MyBatisでSpringプロジェクトの環境構築をして、MyBatisGeneratorのDto,Dao,Mapperの自動生成機能を使って見たが、いくつ改善したいところがあります。
・Springのアノテーションを自動追加したい
・Lombokを対応したい
・DtoとDaoのファイル名を馴染みなXXXDto.javaとXXXDao.javaに改修したい
以上の課題を解決するため、MyBatisGeneratorのPluginAdapterによって自動生成機能をカスタマイズして見ました。##環境構成
・eclipse
・Java
・MyBatis-Spring
・MyBatisGenerator
・Spring-boot
・Lombok
・Maven##依頼注入一覧
“`pom.xml
JavaでWekaによる機械学習 01-数値データの推測
# Javaで機械学習したくない?
機械学習といえばPythonって風潮ですが、Javaが得意な人は、今更Python学ぶのかなという気持ちになるでしょう。できれば、得意なJavaで機械学習できたら嬉しいですね。自分が開発したソフトに組み込めるし。
そんなことで、機械学習エンジンのWekaのAPIで色々と試してみようということで書き始めたいと思います。(間違いがあったらご指摘お願いします)
まずは、数値データの推測からはじめます。
こちらの書籍(機械学習コレクション Weka入門) https://www.amazon.co.jp/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3-Weka%E5%85%A5%E9%96%80-I%E3%83%BB-BOOKS-%E5%92%8C%E7%94%B0/dp/4777520889 に出ているサンプルをAPIを使ってやってみることにしましょう。
CSVデータは以下の通り。末尾から2行目の売上が「?」となっ
MouseController
“`java
package org.tei;import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;import javax.swing.JButton;
import javax.swing.JFrame;public class MouseController implements Runnable {
private Robot robot;
private boolean isStop = false;public MouseController() {
try {
ControllerFrame fr
KotlinでviewBindingを使う
## ブロジェクト作成
赤のMainActivityを開きSplitで開くと、コードとデザインを同時に確認できます。
水色が`texttView`のコードとエディタです。
![スクリーンショット 2022-01-17 16.48.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/755375/9abe33b5-9bb7-281c-fd0d-fa209cba6ad8.png)## ボタン追加
ボタンを追加すると、コードとデザイン両方追加されます。
![スクリーンショット 2022-01-17 17.05.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/755375/c56b9b9c-4324-34bb-abad-889b3d0051b3.png)## 背景色も変更してみる
赤枠のbackgroundをいじれば変更できました。
![スクリーンショット 2022-01-17 17.08.42.png](https