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

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

Javaのディープコピーと「参照」

(本記事ではJava SE 8以上を想定しています)
ディープコピーとは、コピー元/先を変更してもコピー先/元に影響がないコピーのことです。
Javaの参照型をディープコピーするには、コピー元と同じ値を持った新しいオブジェクトを生成する必要があり、少し工夫が必要です。

# 実際のコード
例えばリストをディープコピーしたいなら下記のようになります。もちろん他にいくらでも方法はあります。

“`java:リストをディープコピー
// コピー元
List listA = new ArrayList();
listA.add(“foo”);

// 最もシンプルな例
List listA = new ArrayList(listA);

// NPEを避け、コピー元がnullなら空のリストを代入する
List listB = Optional.ofNullable(listA)
.map(e -> new ArrayList<>(e))
.orElseGet(() -> new ArrayLis

元記事を表示

Javaで何か作ってみる(2022/12/2 Day43)

## 今日やった事
– Springの動画教材を見始めた。
## 参考にしたもの
– [Spring 入門 ~ SpringBoot 2 を使ってお問い合わせアプリとToDoアプリを作る ~](https://www.udemy.com/course/java_spring_beginner/)
– [【超初心者も必見】Javaプログラミングの「オブジェクト指向」が絶対理解できる講座【プロ講師が丁寧解説】](https://www.udemy.com/course/uz-java-obj/)
## 所感
– Springの動画教材を見始めたが、オブジェクト指向を学習した事を前提に進めていくみたいなので、
オブジェクト指向の動画教材を先に進めた方が良いかもしれない。
## 明日の予定
– 引き続き、Springの勉強を進めていく。

元記事を表示

【インクリメント・デクリメント】java

## インクリメント・デクリメントとは

#### 演算子であり、数値型の変数の値を1足したり1減らしたりできるもの
#### ただし、演算子 ‘++’ ‘–‘ を変数の「どこに置くか」で加算減算のタイミングが異なってくるので注意。

要約すると上記の説明になりますが、それだけでは理解に繋がらないのでまずは問題を解いてみましょう。(理解している人は解く必要がありません)

“`java:例題1
public static void main(String[] args) {
int a = 10;
System.out.println(++a + a++ + a + a– + –a);
}
“`
どうでしょうか

すんなり解けた人はもう十分に知識があると思います。

少し悩んだ方は以下の解説を参考してください。


“`java:解答1
56
“`

もう一つ問題

“`java:例題2
public static void main(String[] args) {
int a = 10;
if (a++ > 10 && ++a < 10) {

元記事を表示

Java 基本の基本4

# はじめに
自身でprogataやスクールでJavaを勉強中。学んだことをアウトプットして、より定着させるために記事にまとめていきます。継続は力なり!

# 演算子(前回の続き)
### 関係演算子
“`java
int num1 = 10;
int num2 = 5;
boolean result;

result = (num1 == num2) //false
result = (num1 != num2) //true
result = (num1 > num2) //true
result = (num1 <= num2) //false ``` ### 論理演算子 ```java int num1 = 10; int num2 = 5; boolean result; //and result = ((num1 < 10) && (num2 < 10)) //false //or result = ((num1 < 10) || (num2 < 10)) //true //notand result = !(num1 < num2) //true ``` # 文字列

元記事を表示

Java 基本の基本3

# はじめに
自身でprogataやスクールでJavaを勉強中。学んだことをアウトプットして、より定着させるために記事にまとめていきます。継続は力なり!

# 演算子
四則演算や値の比較などの演算を行うための記号。

### 算術演算子
“`java
int num1 = 20;
int num2 = 5;

num1 + num2 //加算
//演算結果 25

num1 – num2 //減算
//演算結果 15

num1 * num2 //積算
//演算結果 100

num1 / num2 //除算
//演算結果 4

num1 % num2 //余剰
//演算結果 0
“`

### 文字列結合演算子
“`java
String firstName = “Toro”;
String lastnName = “Yamada “;

String fullName = lastName + firstName;
//演算結果 ”Yamada Toro”
“`
### 代入演算子
“`java
int num1 = 10;
int num2 = 5;

num1 = n

元記事を表示

Java 基本の基本2

# はじめに
自身でprogataやスクールでJavaを勉強中。学んだことをアウトプットして、より定着させるために記事にまとめていきます。継続は力なり!

# 基本データ型
変数に格納する中身によって、データ型を指定しなければならない。
– 整数型
byte, short, int, long
intが一般的

– 浮動小数型
float, double
doubleが一般的

– 文字型
char
※Stringは文字列。基本データ型ではない。よって最初が大文字。

– 真偽値
boolean
(true / false)を格納。二者択一の情報。

# データ型
## 参照型
(文字列型、配列、列挙型、クラスインスタンスなど)
基本データ型は変数に値そのもののデータを格納しているが、参照型は変数に格納するデータの位置情報(先頭アドレス)を保存している。

例)String name1 = “yamada”
String name2 = “yamada”
それぞれの”yamada”は別のもの

– 文字列型
【String 変数名 = “文字列”】
文字列を格納できる。
int

元記事を表示

Java 基本の基本から

# はじめに
自身でprogataやスクールでJavaを勉強中。学んだことをアウトプットして、より定着させるために記事にまとめていきます。継続は力なり!

# 1,基本構成
– ブロック
{ から }まで囲まれている部分。
– クラス
コンピュータに対して行わせようとしていることの設計図。メソッドや変数といって部品で構成されている。

– メソッド
コンピュータに対しての指示や命令の本体。いくつかの処理の組み合わせによって構成されている。
“`java
pubulic class HelloWorld {
********************内側がメソッド***外側がクラス***************
public static void main (String[] args) {
System.out.println(“Hello World!”); //処理の最後には”;”をつける。
********************内側がメソッド***外側がクラス***************
}

“`
メソッドの中にある処理が上から順に実行されてい

元記事を表示

JavaでWord文書内のハイパーリンクをすべて削除し、他の書式を維持する方法

Word文書内のハイパーリンクは、Webページやファイル、メールボックスなどに移動したり、文書の特定の部分に移動したりすることができる便利なツールです。ハイパーリンク自体はとても便利なものですが、特にインターネットからダウンロードしたりコピーしたものなど、不要なハイパーリンクを大量に含む文書を入手することがあります。これをひとつひとつ手作業で削除するのは時間の無駄です。この記事では、無料の[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)を使って、**Word文書からすべてのハイパーリンクをすばやく削除し**、**その他の書式を維持する方法**について説明します。

## 【依存関係の追加】
この方法は、無料のFree Spire.Doc for Javaが必要ですので、先にjarファイルをインポートしてください。

### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリ

元記事を表示

WSL(Ubuntu)でのJavaバージョンの切り替え方法

開発で結構頻繁にJavaのバージョンを切り替えるのに、
いつも忘れて毎回検索してしまうのでまとめておきます。

# alternativesを使う方法

前提として以下のような感じでaptで複数のJDKがインストールされているとします。
※普通同時に複数バージョンをインストールしたりはしないでしょうが・・・

“`bash
$ sudo apt install openjdk-11-jdk openjdk-17-jdk
“`

### 切り替え

切り替える場合は以下のコマンドを実行します。

“`bash
$ sudo update-alternatives –config java
“`
するとこんなメニューが出てくるので
“`
Selection Path Priority Status
————————————————————
0 /usr/lib/jvm/jav

元記事を表示

Spring Securityのログインでapplicaiton/jsonでデータが送れない

Spring SecurityのログインAPIにPostmanでPostリクエストを送ってもデータが受け取れないんやがって人向けの記事

### どんな状況か
![スクリーンショット (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951570/7e652b1f-8266-2e50-9116-4fe540899bc8.png)
– HeaderにContent-Type application/jsonを設定
– jsonの形でデータ送信
– ステータスコ―ド403

![スクリーンショット (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2951570/80c2f816-9620-f193-91c5-9c4571bf0f8d.png)
– logには値がnull
– NONE_PROVIDEDとでている(何かわかっていない)

### 結論
Content-Typeをx-www-form-urlencod

元記事を表示

Processingでシンプルなものを作ってみた(第0001弾)

ーーー シンプルな信号を描画してみた ーーー

小さい頃、ピコを使って信号の絵を描いていたことを思い出し、
Processingでやってみた。

工夫したところ
・ウィンドウサイズに応じて対応する
・図形描画に関しては自作関数を作成してその中にコードを書いた

(1) ウィンドウサイズ:640×480[px]
![スクリーンショット 2022-12-02 12.35.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3003934/8aa2338c-49cb-ef66-eaac-ebb804af1be9.png)

(2) ウィンドウサイズ:160×120[px]
![スクリーンショット 2022-12-02 12.35.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3003934/a39605c0-d9e8-ec45-8a4a-6d2a0d20e401.png)

“`image.pde
int sizeH

元記事を表示

JavaとgRPCで2Dバーチャルオフィスっぽい何かを作る ①概要編

この記事は [TLB Enjoy Developers Advent Calendar 2022](https://qiita.com/advent-calendar/2022/tlb-enjoy) 、2日目の記事です。

# これは何?
リモートワークの普及により、オンラインでのコミュニケーション促進を目的とした2Dバーチャルオフィスツールが人気なようです。具体的には、[Gather](https://www.gather.town/)や[MetaLife](https://metalife.co.jp/)などです。Youtubeでチュートリアル動画を観たのですが、一言で感想を言えば **「楽しそう!!」** 。2Dドット絵がかつて遊んだゲームを彷彿とさせ、えもいわれぬ懐かしみを感じさせます。

– **2Dバーチャルオフィスツールっぽいものを自分で作ってみたい!**
– **ネットーワーク経由で同期をする学習にもなる!**

ということで、学習がてら2Dバーチャルオフィスツールぽいものを制作しようと思い立ちました。

# 実現したい事
以下のような機能が実現できればそれっぽいものが

元記事を表示

KotlinでSpock入門[Data Driven Testを学んでデータ駆動テストを使い倒す]

この記事は筆者のソロ [Advent Calender 2022](https://qiita.com/advent-calendar/2022/panda) 3日目の記事です。

KotlinプロジェクトにテスティングフレームワークであるSpockを導入するための方法を紹介していきます。

前回までの基礎編はこちら
[KotlinでSpock入門[基礎編]](https://qiita.com/JY8752/private/5106a268de00a0daa4db)
[KotlinでSpock入門[基礎編2]](https://qiita.com/JY8752/private/c4f7cb585bb91236b975)

今回はData Driven Testingについて記載していきます!

# Data Driven Testing is 何??
入力と出力のパターンを列挙してテストする方法のことという理解。JUnitであればParameterizedTest, KotestであればData Driven Testing, GoであればTableDrivenTestと呼ばれ方が微

元記事を表示

Dockerで立ち上げたSpring Bootがブラウザで見れへん理由

Dockerで作ったJavaの環境でSpring Bootを立ち上げても、ブラウザで見れないやんけっていう人向けの記事です。

## 開発環境
– Docker
– Java17
– Spring Boot 2.7.5

### 結論
ホストPCとDockerのlocalhostが違う

### 解決方法
Spring Bootでipアドレスのバインドをする

#### 1. Javaコンテナが使用しているipアドレス確認
“`sh
$ docker inspect コンテナID


“NetworkID”: “hogehoge”,
“EndpointID”: “hogehoge”,
“Gateway”: “hogehoge”,
“IPAddress”: “172…”, ←これをコピー

“`

#### 2. application.ymlの設定
“`yml:application.yml
server:
address: ipアドレスペースト
port: 8080
“`

これでブラウザで見れるようになります!

元記事を表示

Java 初級勉強①

新たにJavaについて勉強を開始したため、そのアウトプットをします。

# 1章 データ型について
Javaは「静的型付け言語」であるため、その変数や定数に対して事前にどんなデータ型が入るかを設定してあげなければならないです。
以下がデータ型の種類の例となります。

| データ型 | bit数 | 値 |
| ————- | ———- | —————————— |
|boolean |1bit |true あるいは false|
|char |16bit |文字|
|byte |8bit |整数(扱える範囲は -128~127)|
|short |16bit |整数(扱える範囲は-32,768~32,767)|
|int |32bit |整数(扱える範囲は-2,147,483,648~2,147,483,647)|
|long |64bit |整数(扱える範囲は-9223372036854775808~9223372036854775807)|
|f

元記事を表示

円を使う -In spigot-

# 円を描く
“`java
int radius = 3;
for(double theta = 0;theta <= (2*Math.PI);theta+=(2*Math.PI/360)){ double x = radius * Math.cos(theta); double z = radius * Math.sin(theta); double y = 0; Location L = new Location(world,x,y,z); L.getBlock().setType(Material.DIAMOND_BLOCK); } ``` 半径3の円周上にダイヤモンドブロックを設置します。 (world , y は適当です) ### どうして `<= 2 * Math.PI`なの? 角度をラジアンで表現しているため。 (ラジアンは 360° を 0 ~ 2π で表現します。) ### `2*Math.PI/360` ってなあに? 前述のラジアンを360で割った数値です。 要するに 1° に対応するラジアンの値を表しています。 ### なんでラジアンな

元記事を表示

DataSpiderでAgileWorksにつないでみた(2/2)(DataSpider設定編)

## はじめに
こんにちは!すぎもんです:grinning:

DataSpiderでAgileWorksにつないでみた、の第二弾になります。
[前回の記事](https://qiita.com/sugimon/items/cd147e06130231246025)で、AgileWorksのAPIを使う準備はできましたので、今回はDataSpider設定を進めていきます。

前回の記事↓↓↓↓↓
[DataSpiderでAgileWorksにつないでみた(1/2)(アドオン開発編)](https://qiita.com/sugimon/items/cd147e06130231246025)の続きになります。
引き続き本記事も、最後まで読んでいただけたら嬉しいです!

## DataSpiderの設定(POST実行処理)

新規でプロジェクトとスクリプトを作成します。
また、スクリプト内のロジックで使える「スクリプト変数」も作成します。
デザイナの上部メニューから[スクリプト変数新規作成]のメニューアイコンを押下します。
![image.png](https://qiita-image-

元記事を表示

DataSpiderでAgileWorksにつないでみた(1/2)(アドオン開発編)

## はじめに
こんにちは!すぎもんです:grinning:

いきなりですが、電子帳簿保存法というものをご存じですか?
いわゆるペーパーレスと言われる動きの背景にある法律で、ここ最近では請求書等の電子保存の義務化、なんてことも言われています。つまり、企業のワークフローなどにおける電子取引は今や必須になりつつあるのです。今回はそんなワークフローのDXを推し進めるサービスの一つであるAgileWorksとDataSpiderをつないでみようと思います!

今回は二部構成で記事を作成しました。後半記事はこちら↓↓↓↓↓です。
[DataSpiderでAgileWorksにつないでみた(2/2)(DataSpider設定編)](https://qiita.com/sugimon/items/3c55435132e7405ebd01)

## AgileWorksとは
AgileWorksとは、ATLED社が提供するワークフローシステムで、社内の業務効率化と生産性の向上を実現しています。AgileWorksはアドオン開発を行うことによって、RESTを利用したユーザーシステムとの連携が可能です!

元記事を表示

javaでスプレッドシート

現在AndroidStudioでアプリ開発をしています。その際に、javaを使用してAndroidStudio→スプレッドシート→AndroidStudioというようにデータを送りたいのですがどのようにすればいいかわかりません。
設定方法など細く教えていただけるとありがたいです

元記事を表示

LEGOでコロナをやっつける

ちっさいおっさんが帰ってきたで。
6年ぶりやな。元気にしとった?
あれちゃう?コロナとかなってへん?

ソープディスペンサって見たことあるやろ?
あれやん、店の入り口とかに置いてる手ぇ出したら消毒液がピュッって出てくるやつ
つこたことあるやろ?

あれな、おっさん、LEGOで作ってみたんやんか。
いや、わかってるよ。
今更感あるのは。
せやけど、接触感染もゼロちゃうやんか。
これでコロナをやっつけるんやで。

ごちゃごちゃ言うててもしゃあないし、先に動いてるとこ見せよか?
こんな感じやで。
https://youtube.com/shorts/dDxDUJy-6zw?feature=share

シンプルやろ?
作り方はこの画像見てや。
![image0.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151562/0582e3f2-38d6-ef43-ec01-93e65ca974ee.jpeg)
![image1.jpeg](https://qiita-image-store.s3.ap-north

元記事を表示

OTHERカテゴリの最新記事