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

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

二重for文②【九九表】





実行結果

![スクリーンショット 2022-06-16 5.43.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2133160/df839c2a-e9d0-56e0-fe91-d04e317e7404.png)

コード

“`java
public class Rensyu0609 {
public static void main(String[] args) {
for(int i=1; i<=9; i++) { for(int j=1; j<=9; j++) { System.out.printf("%d*%d=%-4d",i,j,i*j); //Sysyem.out.printf(書式, 変数1, 変数2, ....) }

元記事を表示

二重for文①【山型グラフ(累乗)】





実行結果

![スクリーンショット 2022-06-15 21.19.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2133160/a1a45aa0-6b8e-b9fa-e1e0-8c6ea61abb42.png)

コード①:二重for文を2つ使う場合

“`java
public class Rensyu0610a {
public static void main(String[] args) {
for(int i = 0;i < 10;i++) {// System.out.print(i + ":"); for(int j = 0;j < i*i;j++) { System.out.print("◯"); } System .out .println("(" + i*i + ")");

元記事を表示

JavaからKotlinに変えてみる

## はじめに

?‍♂️「どうも運動通信社で働くAndroidエンジニアの明田です!
弊社では2021年11月頃からJavaで書かれたのAndroidプロジェクトをKotlinにゴリゴリ書き換えていっています!
Koltin化一緒に進めたいそこのあなた、この世界をKotlinにする運動にこぞってご参加してください!」

※ Kotlin化に伴い得た知見や感想などを書いている記事になります。是非参考にしてください

## Kotlinとは

2017年のGoogleがKotlinを正式にAndroidの開発言語として発表されました。
KotlinはJVM(Java仮装マシン)をサポートしているため、Javaが動くところではどこでもKotlinが動きます。

さらに、Javaが抱えている課題を解消しているのもKotlin化するメリットになります。
その導入の簡単さと、Javaとの親和性、既存プロジェクトへの導入リスクの低さが多くの企業のAndroid開発に採用されている要因ともなっています。

↓Android以外にサーバーサイドとしてKoltinを導入している企業

https://q

元記事を表示

OCI DevOps を使った Java アプリケーションのビルドを高速化する

# はじめに

OCI DevOps を使った Java アプリケーションのビルド(コンテナイメージのビルド)を高速化する方法を紹介します。

# ポイント

ポイントは、

– BuildKit(Docker Buildx) を使う
– 生成されたキャッシュを Object Storage に保存し、2 回目以降のビルド時にそれを活用する

です。それを実現するための build_spec.yaml と Dockerfile を見てみましょう。

“`build_spec.yaml
version: 0.1
component: build
timeoutInSeconds: 10000
shell: bash
env:
variables:
BUILD_CACHE_OS_BUCKET_NAME: build-cache
BUILD_CACHE_OS_FILE_NAME: k8s-helidon-app-cache.zip
exportedVariables:
– TAG

steps:
– type: Command
name: “Ex

元記事を表示

【Java】StreamAPIでzip関数を自作する

# zip関数とは
2つ以上の反復可能なオブジェクト(リスト等)を引数に受け取り、各オブジェクトの要素を前から順にまとめたリストを作成する関数です。
例えば`[1, 2, 3]`と`[‘a’, ‘b’, ‘c’]`の2つのリストをzip関数に渡すと`[(1, ‘a’), (2, ‘b’), (3, ‘c’)]`というリストが返されます。
ここで、`()`はタプル(不変リストのようなもの)を表します。

Python等ではzip関数が標準機能として提供されていますが、Javaにはzip関数が存在しません。
よってJavaでzip関数を使用したい場合は外部ライブラリを使用するか、自分で実装する必要があります。

# 本記事の目的
Javaの標準ライブラリのみを用いた簡易的なzip関数の実装方法をご紹介します。

# 結論
Javaにはタプルがないため、`List.of`で取得できる不変リストで代用します。
## zip関数
“`java:DoZip.java
package sample;

import java.util.Collections;
import java.util.

元記事を表示

[初心者] Javaソースコードの例文とその意味

“`java
public class Sample {
public static void main(String[] args) { //main + Tabキーで作成
System.out.println(“Hello java”);
int i;
i = 5;
System.out.println(i);
}
}
“`

各行の意味は

 1行目は、SampleというClass名を持っているClassブロック
   Class名(1)Class名は名詞で作成
       (2)複数の動詞を合わせる場合、各単語の最初は大文字(CamelCase)

 2行目は、mainというMethod名を持っているMethodブロック
 Classブロックの中には複数ののMethodブロックが存在できる
   メソッド名(1)メソッド名は動詞
       (2)複数の単語を合わせる場合、各単語の最初は大文字だが、名前の一番前は小文字

元記事を表示

【java】文字変換に関するコード一覧

# 概要
文章変換ツールを作成する中で、
Javaの文字変換に関するコードを調べたので備忘録として整理しておく。

# 環境
・Java 11

# 文字の削除

## 全角スペースを削除する
“`
//変換をしたい文字列
String beforeConvertWord = “aaa aaa aaa”;

//全角スペースを削除
String value = beforeConvertWord.replaceAll(“ ”, “”);

//変換結果を出力
System.out.println(value);
“`

実行結果
“`
aaaaaaaaa
“`

## 半角スペースを削除する
“`
//変換をしたい文字列
String beforeConvertWord = “aaa aaa aaa”;

//半角スペースを削除
String value = beforeConvertWord.replaceAll(” “, “”);

//変換結果を出力
System.out.println(value);
“`

実行結果
“`
aaaaaaaaa
“`

## タ

元記事を表示

【Java】SpringでInterceptorを使って特定のセッション情報がないときのリダイレクトを行う

# はじめに
本記事ではSpringで`Interceptor`を使用し、特定のセッション情報が存在しない場合のトップページへのリダイレクト処理を行う方法を紹介します。

# 経緯
Spring Web MVCで各`Contorller`がセッション情報を利用した処理を行う場合、適切なnullチェックを行わないとすぐに`NullPointerException`が吐かれます。
そこで、`Interceptor`を使った前処理でセッション情報がnullのパターンを弾き、適当なページにリダイレクトする方法を調べました。

# 結論
以下の2つのクラスを作成すればOKです。
“`java:Interceptorによる処理を実装するクラス
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;

public class SessionCheck

元記事を表示

WindowsのJDKでwildflyのwebアプリにアクセスできないとき

執筆(2022/06/14)時点で日本語の情報が少ないため、メモしておきます。

#### 問題点
Windows上でOpenJDK 11.0.15やOracle Java 11.0.15などで、WildflyやJBossで、
ブラウザでWebアプリにアクセスすると、以下のエラーが出ました。

エラーの内容は↓です。
“`sh
11:21:05,200 ERROR [io.undertow.request] (default task-1) UT005071: Undertow request failed HttpServerExchange{ GET /hoge}: java.io.IOError: java.io.FileNotFoundException: Invalid file path

UT005071: Undertow request failed HttpServerExchange{ GET /mta-ui}: java.lang.NoClassDefFoundError: Could not initialize class org.xnio.ch

元記事を表示

Mr.Nam 先生の講義要約 Chapter2(進行中)

Chapter 02. Spring MVC
第1回 遠隔プログラムの実行
他のコンピュータにあるプログラムを実行(ローカルプログラム:私のコンピュータ)

ブラウザと遠隔プログラム(WAS)がなければ実行できない。
外部からブラウザでサーバーにあるプログラムを実行するには、以下の2つの作業をしなければならない。

1.プログラム登録(Controller)
2.URLとプログラムを接続させる
アドレスバーにURLを入力すると遠隔プログラムが実行されるように(RequestMapping)
———————————————————————————————————————–
第2回 AWSに配布する
インスタンス:仮想コンピュータ
EC2 : AWSが提供するクラウドサーバー
ログイン>EC2>インスタンス開始>プリティアで提供するインスタンス選択
——————————————-

元記事を表示

とーふのアウトプットブログ (1)

# とーふ、技術ブログ始めるってよ
初めまして、とーふという物です。
プログラミングスクールを卒業して就職したのはいいものの焦って就職を決めてしまい
家電量販・コールセンターSESに入り、ヒイヒイ言ってます。
「流石にこのままではまずい、色々と持たない。心が壊れる」と察して転職活動を開始。
無事に転職が決まって、やっと開発ができるSESに入社が決まった者です。

スクールの頃からRubyをメインに触っていたのですが、就職に伴ってこの度Javaを勉強することになったので
どうせならと思い、このように記事を残そうと思った次第でございます。

不慣れな記事となりますが、よろしくお願いします。

元記事を表示

Java Genericsの型推論とオーバーロード

比較的厳格な型付け言語として有名なJavaにおいて、実行時に型の取り扱いが曖昧になりシステムエラーが発生する事象がありました。
WEB上にそれほどナレッジがなく、事象としても興味深かったので、整理してみました。

なお、当記事の前提は以下となります。
– JavaのGenericsやオーバーロードなど、基本的な言語仕様の解説はいたしません。
– 当記事に掲載している実験用ソースコード(コードブロックにファイル名を明記しているコード)は、全てそのブロック単体でコンパイルと実行ができるようになっているので、興味のある方はぜひご自身のローカルで試してみてください。

# 環境

Oracle jdk1.8系
“`
% java -version
java version “1.8.0_281”
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
“`

# 事象

下記の様な実装にて、ClassCas

元記事を表示

Android Studioでplay-services-adsをv21にしたら「Duplicate class com.google.android.gms.internal.measurement.zz〇〇」で競合エラーになった

# 概要
Android Studioで使用しているライブラリを最新にしていったら、「Duplicate class com.google.android.gms.internal.measurement.zz〇〇」の競合エラーが大量に出てきてビルドが通らない。
そこで、原因を調べて、解消してみた忘備録。

# 競合が起きるまで
下記のように、Android Studioでbuild.gradle(アプリ、モジュール)を開くと、ライブラリに更新があるものは、色が変わり、ライブラリにカーソルを持っていくと簡単に最新版へ変更することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222251/e85b931d-b7b2-65ba-afd9-a0a907fa07d1.png)

とりあえず、「更新できるよ」と言われたものは全て更新した状態にしました。
(play-services-locationとplay-services-mapsが重複してますが、これを書きながら気づきました。

元記事を表示

ConcurrentModificationExceptionが起こる仕組み

すごく渋い記事なんですが、どうしてConcurrentModificationExceptionがどのように起こるのか簡単にメモしておきます。

ArrayListなどが継承しているAbstractListクラスには`protected transient int modCount = 0;` というフィールドがあります。

ArrayListのremove()などにはこのフィールドをインクリメントする処理が書いてあります。

“`java
public E remove(int index) {

modCount++;
// 削除の処理

}
“`

またArrayListのforEach()などのメソッドを見ると以下のように最初にmodCountをローカルの変数に保存して、それがループごとに変わっていないかをチェックし、変わっていたらConcurrentModificationExceptionを投げるだけです。

“`java
@Override
public void forEach(Consumer

元記事を表示

[2022年]オライリーおすすめ書籍1(参考書)

オライリーのおすすめ書籍を紹介します。
プログラミングやIT系の勉強するときはKindleや電子書籍で勉強するのがおすすめです。
***
[動かして学ぶAI・機械学習の基礎[Amazon]](https://amzn.to/3aFGgQf)
![b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702119/f1228803-344e-95ef-ef8e-c7c837f033ca.jpeg)
– 第Ⅰ部 モデルの構築
– 1章 TensorFlowの概要
– 2章 コンピュータビジョン入門
– 3章 基礎からの発展: 画像の特徴量検出
– 4章 TensorFlow Datasetsを使った公開データセットの利用
– 5章 自然言語処理入門
– 6章 埋め込みによる感情のプログラム化
– 7章 自然言語処理のための回帰型ニューラルネットワーク
– 8章 TensorFlowによるテキストの生成
– 9章 シーケンスと時系列データの理解
– 10章 シーケンスを予

元記事を表示

JavaGoldSE8に受かったので(中編)

# まず初めに
3部構成で読んでいただきたい。
理由としては、ただ単にスクロールが面倒なのと記事ごとで書いている内容を差別化させたいからだ。

**ソースコードは自分の環境にてコンパイルをかけていますが、万が一、誤りなどある場合はご指摘ください。**

[前編(本や受験に際しての注意事項)へ](https://qiita.com/Zombie_PG/items/7f1aec26d32dd154762b)
[後編(おそらく筆者の間違えた問題)へ]()
※後編は20200612時点では完成していません。これから記載する予定です。

本章では以下を主要トピックとして扱う
・試験に際して、覚えといたほうがいいこと

# 【試験に際して、覚えといたほうがいいこと】

## ①ポリモフィズム系

### instanceof演算子について
instanceof演算子は、インスタンス化された変数の参照範囲がどこまでかを見ているという認識。
参照範囲として見れている場合は、`true`が返る。逆に参照範囲ではないが、オブジェクトのサブタイプ(サブクラス)に当たる場合はfalseを返す。
要はダウンキ

元記事を表示

【SpringBoot】開発環境作成(BitBucketプッシュ)

SpringBootの開発環境作成2回目です。
今回はプロジェクトのデータをSourceTree(Git管理ツール)を使ってBitBucketにプッシュするまでやっていきます。

## 作成内容
[①Springプロジェクト作成](https://qiita.com/nmaolks/items/ac3860d78822d52bb81c)
**②BitBucketプッシュ**
③VPSにデプロイ
④Jenkins自動デプロイ

## SourceTree
SourceTreeはGitの操作をGUIで分かりやすく操作できます。
インストールについては割愛します。

Createで新規タブを作成。
前回作成したプロジェクトを「参照」で指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234354/32db400c-5618-f42d-a70f-b2917ea4d5aa.png)

一度コミットします。現状ではBitBucketに連携できていません。
![image.png](ht

元記事を表示

メモ帳コーディング環境構築

## はじめに
この記事はメモ帳でAtCoderに参加する人を応援するべく作成した記事です。

エディタ使えば良いのに…と思う場合はまだこちら側の人間では無いと思うのでエディタで快適なコーディングをした方が良いでしょう。

なお、この記事ではJavaでのコーディングを想定しています。

## 事前準備
javaをローカルで実行するにはJDKをインストールする必要があります。以下のサイトにアクセスしてインストールしましょう。

https://www.oracle.com/java/technologies/downloads/

正直、インストーラが全部指示してくれるだろうし細かいことは省略します。
Oracle社製だと環境変数も設定してくれたような気がします。気がするだけなので間違ってたらすみません…。
※よくわからない方は以下のサイトを参照してみると良いかもしれません。

https://eng-entrance.com/java-install-jdk-windows

これ以降はJavaをコマンドプロンプト(PowerShell)でコンパイル、実行でき、メモ帳は初期の文字コード

元記事を表示

JavaGoldSE8に受かったので(前編)

# まず初めに
3部構成で読んでいただきたい。
理由としては、ただ単にスクロールが面倒なのと記事ごとで書いている内容を差別化させたいからだ。

[中編(試験に際して、覚えといたほうがいいこと)へ](https://qiita.com/Zombie_PG/items/6d0ee864157fa7ab23ed)
[後編(おそらく筆者の間違えた問題)へ]()

本章では以下を主要トピックとして扱う
・当日に必要なもの
・受験前について
・結果
・筆者の実力
・本について

# 【当日必要なもの】
・身分証2点
→筆者は運転免許証と保険証にした。マイナンバーとかでもいいのかな??

・夏場なら上着が必要
→前もって調べた結果、上着が必要とのことでZARAの上着を着ていったが、回収された。(型番調べ方わかりませんでしたすいません。)
明確な定義はないらしいが、**ジャンパー、コート**はだめらしい。
仕方なく、半そでで受けるようになったがクーラーガンガン効いていて寒かった。凍えてた。でも係員の人に言ったら調節してくれた、嬉しい。
→試験後に言ったら、ポケットの中身さえチェックすれば持ち込んでもよ

元記事を表示

【SpringBoot】開発環境作成(プロジェクト作成)

SpringBootの開発環境作成をしていきます。

## 作成内容
**①Springプロジェクト作成**
[②BitBucketプッシュ](https://qiita.com/nmaolks/items/43dc670b6184d643c0b1)
③VPSにデプロイ
④Jenkins自動デプロイ

## プロジェクト作成
Web(Spring Initializr)もしくはSTS(SpringToolSuite)を使ってプロジェクトを作成します。
今回はWebで作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234354/0560f39f-b5e7-73ec-9cf4-fbc056b791bc.png)

依存関係は以下の3つです。
・「DevTools」は開発時、ソースコードに変更があれば自動で再起動
・「Spring Web」はWeb開発ツール
・「Thymeleaf」テンプレートエンジン
![image.png](https://qiita-image-stor

元記事を表示

OTHERカテゴリの最新記事