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

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

案件準備 2023

# 案件準備
## サクってやるところはサクってやってしっかりやるところはしっかりやろう。
## Docker
◾︎ ドットインストール
https://dotinstall.com/lessons/basic_docker
◼︎Dockerのとこを読む。
さわって学ぶクラウドインフラ docker基礎からのコンテナ構築 Tankobon Hardcover – June 11, 2020
by 大澤 文孝 (著), 浅居 尚 (著)
www.amazon.co.jp/dp/4296106422
◼︎必要そうなコマンド
docker version
docker-compose up -d

## CSS
◼︎急にちょっと使いたい時があるのでその時のための コードと参考にしたリンク

“`
HTML

HTML内に直書

“`

CSSはインラインにも記述できる。CSSの3つの記述場所を解説


◼︎Progateで学んでおく。デバックモードの練習はやっておいたほうが良い。
道場以外上級までやる。
https

元記事を表示

Non-Decreasing Digits

http://acmgnyr.org/year2010/e.pdf

## 難易度
### Midium

## アプローチ
### DP

“`java
import java.io.*;
import java.math.BigDecimal;

public class Main {
public static void main(String[] args) throws IOException {
BigDecimal[][] temp = new BigDecimal[65][10];

temp[0][0] = BigDecimal.ONE;
temp[0][1] = BigDecimal.ONE;
temp[0][2] = BigDecimal.ONE;
temp[0][3] = BigDecimal.ONE;
temp[0][4] = BigDecimal.ONE;
temp[0][5] = BigDecimal.ONE;
temp

元記事を表示

Leetcode 1470. Shuffle the Array

https://leetcode.com/problems/shuffle-the-array/description/

## アプローチ
### Brute-force

“`java
class Solution {
public int[] shuffle(int[] nums, int n) {
int[] result = new int[nums.length];
int start = 0;
for (int i = 0; i < nums.length; i++) { if (i % 2 == 0) { result[i] = nums[start]; start++; } else { result[i] = nums[n]; n++; } } return result;

元記事を表示

Files.walkTree()

FileVisitorに定義した以下の4つのメソッド通りにディレクトリをwalk through
preVisitDirectory
visitFile
postVisitDirectory
visitFileFailed

“`java
public class Outer {
public static void main(String[] args) throws Exception{
Path p = Paths.get(“c:\\dirtest”);
FileVisitor fv = new FileVisitor() {
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
System.out.println(“previsitdirectory : ” + dir)

元記事を表示

Files.newBufferedReader

“`java
public class Outer {
public static void main(String[] args) throws Exception{

Path p = Paths.get(“C:\\dirtest\\testfile.txt”);
Path p2 = Paths.get(“C:\\dirtest”);
File f = p2.toFile();
if(!Files.exists(p)) {
Files.createFile(p);
}
BufferedWriter bw = Files.newBufferedWriter(p,StandardOpenOption.APPEND);
Scanner sc = new Scanner(System.in);
try(bw) {
String str = sc.nextLine();

元記事を表示

Files#walk(), find(), list(), DirectoryStream

Files.walk()は該当ディレクトリのサブディレクトリすべてを探索
Files.find()は該当ディレクトリのサブディレクトリすべてを探索、BiPredicateのフィルタ付き
Files.list()は該当ディレクトリの一覧
Files.newDirectoryStream()は該当ディレクトリの一覧

“`java
public class Outer {
public static void main(String[] args) throws Exception{
Path p = Paths.get(“C:\\dirtest”);
BiPredicate bp = (p1,bfa) -> {
return p1.toFile().getAbsolutePath().endsWith(“.java”);
};
Stream s = Files.find(p,3,bp);
s.forEach(Sy

元記事を表示

【Eclipse】よく使うショートカットキー10選

ショートカットキー大好き、時短大好きな私が、Eclipseでよく使うショートカットキーをまとめました:relaxed:
最近Eclipseを使い始めた人は、ぜひこのショートカットキーを使ってみて下さい!

## コンテンツ・アシスト(Ctrl + Space)
入力補完です。
変数名やクラス名を途中まで入力してこのキーを押すと、入力を補完してくれます。
mainメソッドは「main」、System.out.println()は「sysout」と入力してこのキーを押すことで、一瞬でコードを書くことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/699644/b153a372-7b46-e5a2-08eb-047f8f6593f6.png)
素早くソースコードを書くためには、かなり大事です。

## フォーマット(Ctrl + Shift + F)
コードのフォーマットを整えます。
![image.png](https://qiita-image-store.s3.ap-nort

元記事を表示

Files class createDirectories method

Path(directory).resolve(Path(file/directory))で
特定のdirectoryのfile/directoryを参照することができる
createDirectoriesは、parent directoryがない場合にmkdirしてsubdirをmkdir
createDirectoryは、parent directoryがない場合 NoSuchFileException
Files.copy, Files.moveで、copy /moveができる
“`java
public class Outer {
public static void main(String[] args) throws Exception{
String dir = “C:\\dirtest”;
File f = new File(dir);
Path p = Paths.get(dir, “subDir”, “sub2Dir”);
Path parentDir = Paths.get(dir);

元記事を表示

Files class

“`java
public class Outer {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(str);
Path p = Paths.get(“c:\\dirtest\\” + str);
File f = p.getParent().toFile();
System.out.println(f);
method(f);
if(!Files.exists(p)) {
Files.createFile(p);
}
method(f);
System.out.println(Files.getLastModifiedTime(p));
//

元記事を表示

Path interface

File classとほぼ同様の機能を持つ
Paths.getでインスタンス化する。get(“C:”,”dirtest”,”test.txt”)のような
書き方が可能。それ以外の違いが?
toFile()でfileを生成することができる

“`java
public class Outer {
public static void main(String[] args) {
Path p = Paths.get(“C:\\dirtest\\test.txt”);
System.out.println(p);
System.out.println(p.getParent());
System.out.println(p);
System.out.println(p.getRoot());
p = Paths.get(“C:”,”dirtest”,”test.txt”);
System.out.println(p);
p = Paths.get(“C:/

元記事を表示

【google-java-format】すべてのファイルを一発でフォーマットする方法

# はじめに

[google-java-format](https://github.com/google/google-java-format)は、Javaのソースコードをフォーマットするプログラムです。
[Google Java Style](https://google.github.io/styleguide/javaguide.html)に基づいて、フォーマットします。

IntelliJやEclipseなどのプラグインもありますが、ここではコマンドラインツールを利用します。

google-java-formatには、さまざまなオプションがありますが、
「すべてのファイルを一発でフォーマットする」ためのオプションはありません。

オプションの一覧

“`:オプションの一覧
Usage: google-java-format [options] file(s)

Options:
-i, -r, -replace, –replace
Send formatted output back to files

元記事を表示

Valueを付与した変数にJUnitでモックする

# Valueを付与した変数にJUnitでモックする方法

## 概要
– `@Value`を付与した変数を扱うクラスのテストを実施した際、`@Value`の変数の値がテスト時のみnullとなってしまう事象が発生

– 以下テスト対象のクラス

“`java
@Component
public class HogeService {

@Value(“${sample.variable}”)
private String sampleVariable; ← ここの変数がテストでnullで返ってくる

“`

↑の件、少し解決につまづいたので、解決方法を記載

## 結論

– `org.springframework.test.util.ReflectionTestUtils`を利用することでmockできる
“`java
ReflectionTestUtils.setField(instance, “name”, “value”, String.class);
“`

### サンプル

– `@Value`を利用しているクラス
“`java
@Compone

元記事を表示

8.2 finalと定数(Java Basic編)

### はじめに

#### 自己紹介

皆さん、こんにちは、斉藤賢哉と申します。私はこれまで、25年以上に渡って企業システムの開発に携わってきました。特にアーキテクトとして、ミッションクリティカルなシステムの技術設計や、Javaフレームワーク開発などの豊富な経験を有しています。
様々なセミナーでの登壇や雑誌への技術記事寄稿の実績があり、また以下のような書籍も執筆しています。
* [「マスタリング Java EE 5」(2007年)](https://amzn.asia/d/j0txqK5)
* [「アプリケーションアーキテクチャ設計パターン」(2017年)](https://amzn.asia/d/9avaCyF)

いずれも**Java EE**(**Jakarta EE**)を中心にした企業システム開発のための書籍です。中でも [「アプリケーションアーキテクチャ設計パターン」](https://amzn.asia/d/9avaCyF)は、(Javaに限定されない)比較的普遍的なテーマを扱っており、内容的にはまだまだ陳腐化していないため、興味のある方は是非手に取っていただけると幸い

元記事を表示

Instant.toString() を JST で表示する

~~そんなオプションが、、、無い~~

ByteBuddy を利用した方法
===

* ByteBuddy を使うと Class の Method 内を書き換える事ができる。
* Class が既に Load されている場合を考えると / Boostrap class loader で読み込まれる class を読み替えるには Java Agent が必要。
* 2 秒ぐらいかかる。。。もっさりしてる。

“`kotlin

object InstantsToStringFormatUpdate {
/**
* This byte code is equal to following code:
*
* “`java
* class Instant {
* public String toString() {
* return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(
* OffsetDateTime.ofIn

元記事を表示

[Java] Collectionクラスまとめ ~List, Set, Mapの実装と使い方~

## 要約
Collectionクラスには主に3つのインターフェイスが用意されています。

* **[List](#list)** : 順番通りに格納 (ex. [ArrayList](#arraylist), [LinkedList](#linkedlist))
* **[Set](#set)** : バラバラに格納 (ex. [HashSet](#hashset), [TreeSet](#treeset))
* **[Map](#map)** :Keyに対応づけて格納 (ex. [HashMap](#hashmap), [TreeMap](#treemap))

## List

Listは**インターフェース**と呼ばれる抽象メソッドのみをもったものです。
Listはあくまでもインタフェースであるため、インスタンスの生成ができません。

よって、以下のようには書けません。
“`Java
//間違い
List list = new List();
“`
Listインターフェイスを実装したクラスは[ArrayList](#arraylist)

元記事を表示

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile

Spring BootのプロジェクトをMacで起動しようとした時のメモ

“`
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
“`

`./mvnw spring-boot:run`とするとエラーになった。

### 原因
pomに書かれているjavaのバージョンと実際に実行する時に使われているjavaのバージョンが一致しないため。

### 解決策
pomに書かれているバージョンのjavaをインストールしてパスを通す!!

元記事を表示

[Java] length, length(), size()の違い

## 要約
| | 種類 | 対象 | 対象の例 |
|———-|—|—|—|
| [length](#length) | フィールド | 配列 |int[], double[], String[]|
| [length()](#length) | メソッド | 文字列 | String, StringBuilder|
| [size()](#size) | メソッド | コレクション |List, ArrayList, Set|

[フィールドvsメソッド](#フィールドvsメソッド)

## length
`.length`は配列のフィールド(情報)に直接アクセスします
“`java
//配列の長さ
int[] nums = {4, 10, 7};
nums.length; // 3
“`

## length()
`.length()`はメソッドを呼び出すことで、文字列オブジェクトのフィールドメンバーにアクセスします
“`java
//文字列の長さ
String str = “abcde”
str.length(

元記事を表示

SpringBoot ContextListenerクラス内でなぜかAutorewiredが機能しない時に実施した対処

SpringBootでAutowiredがうまく機能せずとても困たので忘備録としてメモ。
@Autowiredで生成されるはずのBean(インスタンス)にアクセスすると何故かnullPointerExceptionが発生。
ContextListenerクラスのcontextInitializedメソッドの中でのみ発生した。他のクラスでは問題なくAutowiredを利用してBeanが生成されている状態。

原因は未だに分からないのだが、以下のようにServletContextクラスや、WebApplicationContextクラスを利用することでBeanを取得することができた。

“`java

import jp.co.com.sampleApplication.SampleField;

@WebListener
public class SampleApplicationContextListener implements ServletContextListener {

//前提としてSampleFieldには@Componentを付与しているが以下

元記事を表示

Tomcat構築やってみる

# 〜初心者の備忘録〜

## 情報
・Eclipse : Version 2022-12 (4.26.0)
・Java : Version 18

## 構築フロー
**①「動的Webプロジェクトを作成します」をクリック**
![スクリーンショット 2023-02-05 15.32.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1886978/b1dd2975-8f88-8810-20b3-d4961ca75564.png)

**②「プロジェクト名」に任意の名前を入力し「完了」をクリック**
![スクリーンショット 2023-02-05 15.32.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1886978/e4f82d4a-8ca0-33ef-ff06-28733c361b66.png)

**③プロジェクトを右クリックし、「新規」 > 「HTMLファイル」を選択し、htmlファイルを作成**

元記事を表示

ファイルをバックアップ

FileBack

“`
package jp.co.main;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import org.apache.commons.io.FilenameUtils;

public class FileBack {

public static void main(String[] args) {
String filepath = null;
for (String string : args) {
File file = new File(string);

if (filepath == n

元記事を表示

OTHERカテゴリの最新記事