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

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

[初心者] 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
∙ 遠隔プログラムの実行
他のコンピュータにあるプログラムを実行(ローカルプログラム:私のコンピュータ)

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

1.プログラム登録(Controller)
2.URLとプログラムを接続させる
アドレスバーにURLを入力すると遠隔プログラムが実行されるように(RequestMapping)
———————————————————————————————————————–
∙ 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

元記事を表示

OSのロケールが日本語だと、PlayFrameworkのテストが失敗する人たちへ捧ぐ

現在の main ブランチ (a06ddb0) にて、OSのロケールが日本語だとテストが失敗するようです。

“`
% sbt -error test
…(省略)
[error] x when it is located in a subform (and sub-subform) and returns an error it should automatically prefix the error key with the parent form field (45 ms)
[error] ‘0 から 1 の間のサイズにしてください’ != ‘size must be between 0 and 1’ (FormSpec.scala:1507)
[error] Actual: 0 から 1 の間のサイズにしてください
[error] Expected: size must be between 0 and 1
[error] x when it is located in a subform (and sub-subform) and retu

元記事を表示

PowerShell「私はAtCoder参加できないの…?」

## はじめに
PowerShellではAtCoderで提出することができないので、PowerShellユーザは他言語で提出する必要がある。だが、PowerShellでもやってみたい・・・。
と、いうことでPowerShellで書いたコードを手元でランダム生成したケースでテストして擬似的にバーチャル参加しちゃおう!という試みをした。今回は簡単な問題で試験をするために[この問題](https://atcoder.jp/contests/math-and-algorithm/tasks/math_and_algorithm_a)を利用した。なお、模範解答生成用のコードはJavaで記述した。

## ジャッジシステムの構築
まずはじめにジャッジ用のディレクトリを作成しておくと便利かなと思って作業ディレクトリJudgeを生成し、その中に模範解答用のJavaのclassファイル、判定するコード(今回はMain.ps1としている)を突っ込む。
“`Judge.ps1
“準備中・・・”
New-Item Judge -ItemType Directory | Out-Null #Judgeの生

元記事を表示

ABC255A~Dの解答[Java]

## はじめに
このコンテストは企業コンということもあり、若干難しく感じました。急いで書いたコードなので少々汚いです。ご了承ください。

では、解説していきます。

## A – You should output ARC, though this is ABC.
問題文は[こちら](https://atcoder.jp/contests/abc255/tasks/abc255_a)

普通に配列として受け取って処理しちゃいましょう。
“`A.java
import java.io.*;
class Main{
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static PrintWriter pw = new PrintWriter(System.out);

public static void main(String[] args)throws IOException{
//RCの受け取り(String型のまま)
String[] RC

元記事を表示

プログラミング未経験で新人研修でプログラミングをやらされている皆様へ(4)

本稿は、[プログラミング未経験で新人研修でプログラミングをやらされている皆様へ(3)](https://qiita.com/tail-island/items/e30c9616bef65e2c36b5)の続きです。

# メソッドを作成して、重複を減らす

でさぁ、ここまでなんとなく書いてきたけど、`System.out.println()`って何なの? 未だに説明がないんだけど。……と、疑問をお持ちの皆様、ついにここで説明します。これはメソッドと呼ばれるもので、それを呼び出しているんです。

## 同じ処理を何回も書くのは苦痛……

こんな計算になんの意味があるのかは分かりませんが、「2と3と5と7と11と13の、それぞれを二乗した結果の合計を求めなさい」というお題のプログラムを考えてみてください。数字の増え方が一定ではないので(あと、配列をまだ勉強していないので)、`for`ループは使用できません。だから、こんなプログラムになります。

~~~java
class SumOfPrimeSquare {
public static void main(String[] arg

元記事を表示

プログラミング未経験で新人研修でプログラミングをやらされている皆様へ(3)

本稿は、[プログラミング未経験で新人研修でプログラミングをやらされている皆様へ(2)](https://qiita.com/tail-island/items/5f1b5771533c9d2a7918)の続きです。

# 条件分岐して処理内容を分ける

いろいろ計算できるのは分かったけどさぁ、もう少しエンタメ性がないと勉強していて面白くないよ。このように皆様はお考えだと思いますので、FizzBuzzという、英語圏のゲームで、なおかつ、プログラミングができるかどうかの判定に使われることが多いお題をやってみましょう。

## FizzBuzzとは?

プレイヤーが輪になって数字を1から順に数えていくゲームで、ただし、3の倍数のときはFizz、5の倍数のときはBuzz、そして3と5の倍数のときはFizzBuzzと言わなければならないというゲームです。1、2、Fizz、4、Buzz、6……のように順に言わなければならないわけで、これがやってみると結構難しい。でも、プログラムを組めば、絶対に正解できます。

……プログラムに間違いがなければ、だけどな。

## とりあえず、1〜100まで数えてみ

元記事を表示

OTHERカテゴリの最新記事