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

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

Java: Threadおさらい

## 基礎知識

### Thread2種類

“`SimpleThread.java
package playground;

public class SimpleThread extends Thread {
public void run() {
for (int i = 0; i < 10; i++) { try { Thread.sleep(10000L); // 10秒停止する System.out.println("スレッドで動いています:" + (i+1) +"回目"); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } } ``` ```SimpleThread2.java package playground; public class Si

元記事を表示

MyBatisをNoXMLで使う

# 目的

MyBatisは通常XMLで各種定義を行いますが、XMLを使わないことも可能です。

# 手順

## SqlSessionFactoryの取得

### CDI+JNDIの場合

Java EEサーバ上で動かす場合はJNDIルックアップと組み合わせます。JNDI定義は例えば次の記事が参考になります。

https://qiita.com/teruq/items/7705c2f82e17a7e17d12

“`
@Resource(lookup = “jdbc/********”) // JNDI名
private DataSource dataSource;

@Produces
public SqlSessionFactory produceSQLSessionFactory() {
var config = new Configuration();
config.addMappers(“package.to.mappers”); // Mapperクラスが存在するパッケージ
config

元記事を表示

JavaのOptional型について

## Optional型
本日はJavaのOptional型について書こうと思います。
まずjavaのOptional型について、一体どういうものなのか説明します。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Optional.html
こちらの情報を参照します。

>null以外の値が含まれている場合も含まれていない場合もあるコンテナ・オブジェクトです。値が存在する場合、isPresent()はtrueを返し、get()は値を返します。

みてるだけではよくわからないのでCodeで記述してみます。
リクエストからidを受け取り、User情報を取得する受け口です。

“`java:UserController,java 
@GetMapping(“/{id}”)
public Optional userFindById(@PathVariable(“id”) Integer id) {
return userService.findAllByIdUsers(id);

元記事を表示

HacobuneでSpringBoot(Java)起動してみた

Hacobune(PaaS)の使い方を理解するために、シンプルなSpringBootアプリを起動してみました。

## 参考にした情報

* Hacobuneのマニュアル
https://manual.c1.hacobuneapp.com/docs

* Hacobuneオープンβ版提供開始発表会

動画後半の設定の流れが参考になりました。

## 起動してみた流れ

### アカウント開設
https://cloud.sakura.ad.jp

### ログイン後のコントロールパネル

以下のアイコンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25604/d5b5ee31-3dc4-9ae5-039f-09d5f906d11f.png)

### Hacobuneのコントロール画面から設定
プロジェクト作成し、アプリケーションにて新規作成ボタンを押して以下を設定。

![image.p

元記事を表示

Java学習 ブラックジャック作ってみた

こんにちは。
Javaの基礎文法の学習を進めていく中でそろそろなにか形のあるものを作ってみようということで、コンソールで動く簡単なブラックジャックゲームを作ってみた。

↓GitHub URL
 https://github.com/hananokensho/practiceBlackJack

今回作ってみて感じたこと
・コンストラクタが優秀
・インスタンスが実体というのがよくわからなかったが理解が深まった。

Mainクラスだけ載せておきます。

“`Java:Main.java

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Deck deck = new Deck(); //山札
Player player = new Player(); //プレイヤー
Dealer dealer = new Dealer(); //ディーラー(相手)
Scanner sc = new Sca

元記事を表示

基盤地図情報からLOD1のCityGMLを作ってみる。

#1. 概要
[基盤地図情報](https://www.gsi.go.jp/kiban/)の建物ポリゴンから、[citygml4j](https://github.com/citygml4j/citygml4j)を使って、LOD1のCityGMLを作ってみました。
建物の高さの情報は、1mメッシュのDSMとDEMが公開されている[兵庫県高精度3次元データ](https://web.pref.hyogo.lg.jp/kk26/hyogo-geo.html)を使用しています。
なお、ソースコード一式を[こちら](https://github.com/termat/citygml_lod1)にアップしています。
![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55735/60920cb4-503e-c8de-5892-c56984f51539.jpeg)

#2.建物情報の抽出
今回は、神戸市三宮周辺のCityGMLを作ってみました。
[基盤地図情報](https://www.gsi.go.jp/k

元記事を表示

Java Word文書でコメントを挿入

はじめに

Word文書でコメントを挿入することで、気になる文章について意見や、修正を希望する箇所などを記載することができます。今回はSpire.Doc for Javaというライブラリを活用して、Word文書でコメントを挿入する方法を紹介します。

Spire.Doc for Javaとは?

Spire. Doc for Javaは、Eiceblue社が開発され、開発者が JavaプラットホームでWordのドキュメントを迅速かつ高品質で作成・編集・変換・印刷するために設計された専門的なDoc処理AP

元記事を表示

【Java】【Spring】Pointcut is not well-formed: expecting ‘name pattern’ エラーの解決法

#はじめに
今回は`Pointcut is not well-formed: expecting ‘name pattern’`というエラーにハマったので、メモしておきます。

#エラーコード

“`java
package com.example.demo.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

import lombok.extern.slf4j.Slf4j;

@Aspect
@Component
@Slf4j
public class LogAspect {

/**
* サービスの実行前にログ出力する
* 対象:[UserService]をクラス名に含んでいる

元記事を表示

【初心者向け】SpringBootにおける単体テストの基本事項(ログ、例外処理)

前回の記事で書ききれなかった部分について書いていきます。
前回の記事

https://qiita.com/Shukupon/items/373939bc0dea4f25b007

コード
https://github.com/Shukupon/TestTemplate

## 前提条件(前回と同じ)

Java11
SpringBoot 2.5.6
Junit5
H2
MyBatis
REST API

今回は以下の項目についてまとめていきます。

– ログのテスト
– 例外のテスト

## ログのテスト
ログのテストは標準出力の中身を取得してあげることになるのでまた少し特殊な書き方になります。
以下がテスト対象であるログを出力するコントローラークラスです。

“`java
package com.example.demo.presentation.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotat

元記事を表示

[java] 文字列を一文字ずつ取り出す方法案

色々プログラミングをしていてヒドい目にあったので、備忘録。
fc2にも書いたけど一応こっちにも。

#文字式から文字を取り出すとき (仮)まとめ 

##「1文字ずつ取り出すとき」を考えたい。
####substringクラスを使う方法をとりあえず考える。
  というかこれしか今のところ知らない

– ##1.substringクラス とは?
 本来は、文字列を指定した範囲から範囲まで抜き出してくれるっぽい。
 今回はそれを悪用?して1文字ずつ出力させる!

– ##2.substringクラスの使い方
#####(参照する文字列).substring(a,b) //a,bには文字列の切り出したい部分のインデックスを選ぶ。
 画像では、
  (参照する文字列) = letter //midorisan が入ってる文字列。
  (i,i+1) = 今回はfor分の中に入れてるので、一文字目から最後まで出力する感じ。
  ってしてる。

###### あと、文字列のインデックス(一文字ずつに振り分けた番号)は、0から始まるから注意!
 例えば、mido って文字列だと、 m は

元記事を表示

Kotlinの言語特性やJavaとの違い

## イントロダクション

かれこれ3年前からRailsエンジニアだったはずの私harakazu_nanfgは、どうやらこの11月からサーバーサイドKotlinを使ったエンジニアになりそうなので、先日よりKotlinの学習を始めた。

また、学習本には「Kotlinハンズオン」を採用しており、この記事はそれらの前半を要約したものである。

ちなみに、私はC言語は好きだが、Javaに関しては何も知らない。
(なお、私は「JavaScriptとJava」は「メロンとメロンパン」くらい違うという比喩が好きである)

## Kotlinとは?

2011年にチェコのJetBrain社によって開発されたプログラミング言語。
「Android = Kotlin」の印象が強い。
しかし、実際にはJava同様、サーバーサイドなどでも使用されている汎用性の高い言語である。

## Kotlinの特徴

### Java

元記事を表示

Java WordをHTMLに変換

はじめに

HyperText Markup Language、略してHTMLは、ハイパーテキストを記述するためのマークアップ言語の1つです。日常の仕事でWordをHTMLに変換する場合がよくあると思います。なので、今回はSpire.Doc for Javaというライブラリを活用して、WordをHTMLに変換する方法を紹介します。

Spire.Doc for Javaとは?

Spire. Doc for Javaは、Eiceblue社が開発され、開発者が JavaプラットホームでWordのドキュメン

元記事を表示

[java入門]クラスの基礎

## クラスの基礎

#### クラス: 
・プログラム実行のための処理をまとめたオブジェクト
・クラスの処理の中にメンバ変数や処理を実行するためのメソッドがある
class クラス名 { 実行処理 }

####メンバ変数: 
・クラス内で使用する変数
####メソッド: 
・メンバ変数などを使用して行う処理を一まとめにしたもの

####オブジェクト:
・オブジェクト指向のプログラミング言語では処理をまとめたクラスの実行には
そのクラスのオブジェクトを生成する必要がある。
・生成したオブジェクトからメンバ変数を参照したりメソッドを呼び出す。
class ClassSample {
メソッド宣言・定義
void methodSample(){ 実行処理 }}
オブジェクトの生成
classSample cl = new ClassSample();
メソッドの呼び出し
cl.methodSample();
・クラス名の後にオブジェクト名を記述。オブジェクトにはnew演算子を使用して

元記事を表示

Couchbase Lite機能解説:クエリ④ 結果セット

Couchbase LiteのSELECTステートメントに対して返された結果セットを処理する方法を解説します。

結果セットの形式とその処理は、使用する`SelectResult`ステートメントのタイプによって異なります。結果セット形式には、以下が含まれます。

– `SelectResult.all`:すべてのプロパティ

– `SelectResult.expression(property( “name”))`:特定のプロパティ

– `SelectResult.expression(meta.id)`:ドキュメントIDのみ

– `SelectResult.expression(Function.count(Expression.all())).as( “mycount”)`:データ(ドキュメント)件数のみ

クエリの結果を処理するには、最初に`Query.execute`を使用してクエリを実行します。

クエリを実行すると、通常、結果の配列、つまり結果セットが返されます。

ドキュメントのプロパティを返すクエリの結果セットは配列です。

配列の各行は、検索条件(WHERE

元記事を表示

「Eclipseでjava8を指定したのにjavaFXが使えないよ〜〜」な人へ

「Preferences」(設定)→「Java」→「コンパイラー」の「コンパイラー準拠レベル」

1.8に下げると嬉しいかも。

元記事を表示

Processingを利用して魚群再現をする(1)

#魚群再現事始め
近年盛んになりつつあるProcessingを用いたジェネラティブアートの世界ですが、
[某アニメ](https://aquatope-anime.com/)を視聴して魚群の動きを再現することが可能かを検証するべく、実際に実装してみることにしました。実行環境についてはProcessing3.0を利用していきます。

#群体シミュレーションについて
群体シミュレーションをする場合であれば、Boidsアルゴリズムを利用することが一般的で、Boidsアルゴリズムの実装についてはhttps://qiita.com/odanny/items/e0c0a00e13c2b4839cec の記事を参考にしてもらうのが良いと思います。
簡単に説明すると、各オブジェクト間で

– 分離 (Separation)
– 整列 (Alignment)
– 結合 (Cohesion)

の三種類の力を働かせることになります。
本実装では、3種類の力に加えて、壁に対して拒絶間(斥力)が働くように実装していきます。

#Fishクラスの実装
まずは、魚のクラスを実装していきます。
各変数はpri

元記事を表示

Azure Container Registry + Jib + Java でアプリを開発する

Microsoft Azure では「プライベートで使えるDocker Container Registry (Docker Hubみたいなもの)」として Azure Container Registry というサービスが提供されています。

本記事ではマイクロソフトが提供する「Azure Container Registry」と、Googleが提供する「Jib」を組み合わせて「Javaアプリ」の環境を構築し、利用する設定をご紹介したいと思います。

設定ファイルを丸ごと用意してありますので穴埋め形式でご利用いただけます。

# フォルダ構成

コンテナにて利用したいスクリプトが src/main/jib/ においてあるものとします。

“`
src/main/jib/app.sh
“`

# 設定ファイル

“`xml

元記事を表示

【AtCoder】JavaでABC224のA,B,C問題を解く!

ABC224のA,B,C問題をJavaで解きました。
備忘録としてまとめておきます。

#A問題『Tires』
問題ページ:[A – Tires](https://atcoder.jp/contests/abc224/tasks/abc224_a)

##入力
S : 文字列(末尾は「er」または「ist」、必ず 2文字以上)

##コード
“`java
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String str = sc.next();

//文字列の後方一致チェック
if(str.endsWith(“r”))
{
System.out.println(“er”);
}else
{
System.out.p

元記事を表示

Apache POIを利用している際にA1形式でセルを取得したい

Excelではセルの位置を示すにあたって、A1形式を利用することが一般的だと思います。Apache POIを利用している際にA1形式でセルを取得したい場合、`CellReference`を利用するとよいです。

たとえば、以下はAB15のセルを取得するサンプルコードです。

“`java
CellReference cellReference = new CellReference(“AB15”);
Row row = sheet.getRow(cellReference.getRow());
if (row != null) {
Cell cell = row.getCell(cellReference.getCol());
if (cell != null) {
doSomething(cell);
}
}
“`

あるいは`CellUtil`を利用することもできます。

“`java
Cell cell = CellUtil.getCell(CellUtil.getRow(cellReference.getRow(), sheet),

元記事を表示

Apache POIを使って、シートをソートしたい

Excelにはシートをソートする機能は標準で用意されていません。通常はVBAを利用するのですが、VBAにはソート関数がなく、これを自前を用意するのは面倒。そもそもVBAが苦手ということもあり、JavaとApache POIで処理したことがこの記事を書いたきっかけになります。

前置きはさておき、以下は「**src.xlsxのシートをシート名でソートしたものをdst.xlsxに書き出す**」というものです。

“`java
try (Workbook srcWorkBook = WorkbookFactory.create(Files.newInputStream(Paths.get(“src.xlsx”)));
OutputStream dstWorkBook = Files.newOutputStream(Paths.get(“dst.xlsx”))) {

List sheetNames = new ArrayList<>();
for (Sheet sheet : srcWorkBook) {
sheetName

元記事を表示

OTHERカテゴリの最新記事