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

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

初めてのkotlin 簡単なアプリ作成(占い)

Kotlinは、Javaの統合開発環境であるIntelliJ IDEAで有名なJetBrainsが開発したオブジェクト指向プログラミング言語です。言語構文自体はJavaとは互換性がない独自方式ですが、コンパイルされたコードはJava VM(仮想マシン)上で動作するため、これまでのJava資産の多くを流用できるという特徴を持っています。

Google I/O 2017のキーノートでは、AndroidチームがKotlinを公式にサポートするという発表がありました。また、最近リリースされたAndroid Studio 3.0では、Kotlin開発用のプラグインが最初から組み込まれているなど、注目を集めています。

本記事ではkotlinの入門編として簡単なAndroidアプリの作成について紹介していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1077515/d4cd701b-c42c-9b29-e977-53e07638a26d.png)

上記画像のように画面が表示されボタン

元記事を表示

【Javaについてまとめてみたオブジェクト編】クラスについて

#はじめに
今回はJavaのクラスについて書いていきたいと思います。
オブジェクト指向の始まりみたいなとこなのでぜひ理解していきたいです。

##クラスとは
例えば、下記のようなまとまったデータがあるとします。

| 商品ID | 商品名 | 値段 | 在庫 |
|:-:|:-:|:-:|:-:|
| 1 | チョコ | 10 | true |
このデータをまとめてプログラミングで扱いたい。
でも配列だと、数値や文字列が混ざってて一括で扱うのは無理や。。
こんな時に使うのがオブジェクトです。
そしてそのオブジェクトの設計図となるのがクラスなんです!!

##クラスの定義の仕方
“`java:クラスの定義
public Class Item{
int itemId;
String itemName;
int price;
LocalDate date;
}
“`
こんな感じで設計します。
「int itemId;」とかはメンバ変数といい、何か処理をしたい時はメソッドを作成します。
###コンストラクタ
クラスを作るうえでコンストラクタというのも

元記事を表示

JavaプロジェクトでMySQLに接続してみる

###参考にしたサイト
http://web.sfc.wide.ad.jp/~tinaba/tutorials/mysql-j/

###環境
Eclipse2020-12
java8

###javaプロジェクトの作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/16e08aab-5b9a-7f34-7450-c8d462da2be9.png)

###MySQLのドライバーをダウンロード
https://downloads.mysql.com/archives/c-j/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/daf0ce7f-1159-d0f1-4e70-b234ec264080.png)

右下のダウンロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

紙幣貨幣の枚数の合計が最小になるような払い方。

もっと良い書き方がある気がするけど、とりあえず作ってみたので。

# 作ったコード(Java)
“`java
import java.util.*;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
long n = Long.parseLong(sc.next());

LinkedHashMap map = countMoneyNum(n);

// 結果表示
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + ” : ” + entry.getValue() + “枚”);
}

}

// 紙幣貨幣の枚数を求める関数
public static LinkedHashMap countMoneyNum(

元記事を表示

Javaでbit全探索するときのいつもの形。

# そもそもbit全探索って何
**[ぐぐる](https://www.google.com/search?q=bit%E5%85%A8%E6%8E%A2%E7%B4%A2)**と山ほど見つかります。。。

# 自作のコード(Java)
“`java
public class Main {

public static void main(String[] args) {

// 「2の5乗」回ループ
for (int i = 0; i < (1 << 5); i++) { // 5回ループ for (int j = 0; j < 5; j++) { if ((1 & i >> j) == 1) {
System.out.print(“o”);
} else {
System.out.print(“x”);
}
}

System.out.println(” ” + i);
}

}

}
“`

# 上記コードの実行結果

“`
xxxxx 0
oxxxx 1
xoxxx 2
ooxxx 3

元記事を表示

jcenter, bintray 廃止で自分のAndroidアプリに対応したことのメモ

[Service End for Bintray, JCenter, GoCenter, and ChartCenter \| JFrog](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)

の対応をする。

まずは [【追記:2022年2月1日へ延期】JCenter が2021年5月1日にシャットダウンすることになったので Android アプリエンジニア観点でメモをまとめた \- BattleProgrammerShibata](https://bps-tomoya.hateblo.jp/entry/2021/02/04/184317) でだいたいの状況を把握しよう。

# 影響があるかどうかの確認手順

– [八木さんのツイート](https://twitter.com/sys1yagi/status/1357509730713829378) を参考に確認方法をまとめる

– `build.gradle` の repositories で下記を削除する

元記事を表示

Spring Boot(Spring MVC)利用時のTest構成メモ

# 前書き
普段、何気なくSpring Boot(Spring MVC)のテストを設計・実装してるのですが
初心「そういえば我々、今どんなTest構成なんだっけ?(特に、利用ブラウザ)」を忘れがち。

関連クラス辿ったので、備忘しておくもの。

# 前提
[公式Doc1](https://spring.pleiades.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing-spring-boot-applications-testing-with-mock-environment)や[公式Doc2](https://spring.pleiades.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing-spring-boot-applications-testing-autoconfigured-mvc-tests)に則って、自動構

元記事を表示

【JAVAについてまとめてみた】配列とList、ときどきMap

#はじめに
今回はjavaの配列についてまとめてみました。
配列は大量のデータを扱うときに使用します。
意外と奥が深い配列のみんな。
そんなみんなの生態にせまっていきます。

##1.配列

“`java:宣言の仕方
String[] list = new String[2];
“`
“`java:初期値指定
String[] list = {“hello”,”world”};
“`
“`java:その他の処理まとめ
list.length; //配列のサイズ取得
list[0] = “hello”; //要素の挿入
list[0]; //要素の取得
“`
大体こんな感じですかね。
始めの宣言時にサイズを指定する必要があります。
その後はサイズを増やしたり、減らしたりは基本できないっす。(固定長)
##2.List

“`java:宣言の仕方
List list = new ArrayList();
“`
“`java:初期値指定
List list = new ArrayList(Ar

元記事を表示

arc(),ellipse(),rect() だけでできるガチャピンプログラミング

こんにちは!青山学院大学 古橋研究室 所属の神田洋輔と申します。
普段は研究室での活動をmediumへ投稿しております。ですのでQuiitaへの記事投稿は初めてです!
そんな記念すべき第一回目の記事は、ガチャピンプログラミングです!!

#なぜガチャピン?
んん?・・・
ガチャピンプログラミングとはなんぞや?…
そう「ガチャピンの顔をプログラミングで書いてみよう!」と、ただシンプルにそれだけです笑
なぜこんなにシンプルかというとそれは私自身プログラミング超初心者だからなのです笑
そしてなぜガチャピンかというところですが、古橋研究室は2015年より、「みんなの防災+ソナエ」プロジェクトでガチャピン・ムックと一緒に子どもたち向けの災害ドローン体験会を行っており二人とはそのようなrelationshipがあるのです。
そして今回研究室内で行われたハッカソンのテーマが「ガチャムクハッカソン」だったということです。私はデジタルファブリケーションの観点からものづくり部代表として取り組みました。

#つくりかた
つくりかたはとってもとってもシンプルです。今回使用した関数はarc() 弧、el

元記事を表示

H2Database テーブルが見つからないエラー (Spring boot)

##環境
MacOS Big Sur 11.1
STS 4-4.9.0
Spring Boot 2.4.2
Java 11
H2database 1 .4.200
Maven 4.0.0

##状況

H2DatabaseはJVM環境で動くデータベース。
非常に軽量でJavaのテスト開発では重宝される。
JVM内部にデータベースを設置する埋込型と、指定されたパスにデータベースファイルを設置し保管するローカル型がある。

今回はデータを永続化させるためにローカル型のH2の設定をしていた。

####ファイル

エントリポイント

“`Java
package com.example.h2test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframew

元記事を表示

Javaで学ぶアルゴリズム 第5弾:モンテカルロ法

# #Javaで学ぶアルゴリズム < モンテカルロ法 >

##はじめに
Javaは授業で触れただけで全くの初心者であり,何もわかっていない.なので,基本的なアルゴリズムをJavaで実装し,アルゴリズムの理解を深めるとともに,Javaにも慣れていきたい.
その第5弾としてモンテカルロ法を扱う.

##モンテカルロ法
モンテカルロというのは,「モナコ公国の首都モンテカルロ」であり,そこはギャンブルの街として有名である.数値計算のような方法ではなく,乱数を用いた一種の欠けのような方法で問題を解くことからモンテカルロ法と名付けられた.以下に例を示して,その方法を学ぶが,基本は非常にシンプルで,たくさん点をプロットして所望のところにどれだけの点がプロットされたかというのを基に答えを得るというものである.ここでは,$\pi$を求める例と楕円の面積を求める例を示す.

####例①:πを求める
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/a4508e05-fc49-c2c3-3452

元記事を表示

Java + Jackson Databind で JSON 日時文字列とオブジェクトを相互変換する

## 概要

– Java + Jackson Databind で JSON の日付・時刻を表す文字列と Java オブジェクトを相互変換するサンプルコードを示す
– 環境: Java 15 (AdoptOpenJDK 15.0.2+7) + Jackson Databind 2.12.1 + Jackson datatype: JSR310 2.12.1 + Gradle 6.8.2 + macOS Catalina

## サンプルコード

### ファイル一覧

“`
├── build.gradle
└── src
└── main
└── java
├── Sample.java
└── SampleData.java
“`

### build.gradle

“`groovy
plugins {
id ‘application’
id ‘java’
}

sourceCompatibility = JavaVersion.VERSION_15

application {
main

元記事を表示

JAVAのデータ型や変数について

#はじめに
今回はJAVAのデータ型や変数について書いていきたいと思います。
##変数
変数はデータを入れる箱になります。データを入れたり、出したりできます。
変数名をつけて、データ型を定義する必要があります。
クラス変数とかインスタンス変数とかあったりするのですが、今回は割愛します。

“`java:定義の仕方
// 基本型
int num = 0;
char character = ‘a’;
// 参照型
String hello = “helloWorld”;
int[] numList = {1,2,3};
“`

##【データ型】基本型(プリミティブ型)と参照型

###基本型(プリミティブ型)
| データ型名| 入る値 |
|:-:|:-:|
| byte | 8ビット整数 |
| short | 16ビット整数 |
| int | 32ビット整数 |
| long | 64ビット整数 |
| float | 32ビット単精度浮動小数点数 |
| double | 64ビット倍精度浮動小数点数  |
| boolean | true か

元記事を表示

eclipseを使ってSpringBootでHello World

##流れ##

* eclipseのインストール
* SpringBootプロジェクトの作成
* Hello Worldを表示

##eclipseのインストール##
eclipseをここからインストールします
→https://mergedoc.osdn.jp/
リンクを開いたら、バージョンやOSなどを選択して、インストールします。
今回は、Eclipse2020 → Java Windows64bit Full Editionを選択し、Downloadをクリックしました。

ダウンロードが完了したら、解凍します。
zipファイルの解凍には、7-Zipを使用してください。
今回は、Cドライブ直下に解答しました。

pleiadesというフォルダが作成されます。
これでeclipseのインストールは完了です。

eclipseを起動してみます。
pleiades\eclipse\eclipse.exeを起動します。
(ショートカットをデスクトップ等に作成しておくと便利です)
起動すると、ワークスペースのディレクトリ—選択という画面が表示されます。
このワークスペースの中に、ソースフ

元記事を表示

Circle CIでの自動デプロイ(SpringBootアプリケーション)のためのconfig.yml

“`yml
version: 2 # バージョンは「2」とする
jobs: # 実行するタスクの定義
build: # ビルドする内容をいかに記述
working_directory: <アプリケーションのルートディレクトリ>

docker: # Dockerの設定
– image: circleci/openjdk:11-stretch # Dockerfileの「From」に記述したベースイメージ

steps: # 実行するコマンドを以下に記述

– checkout:
path:

– restore_cache: pom.xmlが変わった時の差分を取得
key: portfolio-{{ checksum “pom.xml” }}

– run: mvn dependency:go-offline # プロジェクトのdependencyを取得する

– save_cache: # プロジェクトのdepende

元記事を表示

Javaで学ぶアルゴリズム 第4弾:ランダムな順列

# #Javaで学ぶアルゴリズム < ランダムな順列 >

##はじめに
Javaは授業で触れただけで全くの初心者であり,何もわかっていない.なので,基本的なアルゴリズムをJavaで実装し,アルゴリズムの理解を深めるとともに,Javaにも慣れていきたい.
その第4弾としてランダムな順列を扱う.

##ランダムな順列
順列とは並びである.ここでは,$1$~$N$までの値をランダムに並べた順列を生成するアルゴリズムについて,最悪のアルゴリズムとそれの改良版を学び,最適な順列生成についての理解を深める.

##最悪のアルゴリズム
以下に方法を示す.これは,$N^2$オーダーの繰り返しを行う効率の悪い方法である.ここでは,$1$~$6$の値を例に扱う.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/0483d264-abbe-3368-84b8-f41194184995.png)
この方法では,範囲内の乱数を得て,リストにないものを取り入れていくという**無作為な抽出**のような方

元記事を表示

Spring Boot Actuatorで開発の効率化を図ってみた

Springで開発していると裏側で登録されている情報を確認したくなることが多々あります。
ちゃんと意図通りにコンポーネントスキャンされてBeanが登録されているか、プロパティの設定値が登録されているか…などなど知りたいことがたくさんです。
デバッグ用にログ出力させる、なども一つの手ですがなかなか面倒に感じてしまうと思います。

そんなときにオススメなのが**Spring Boot Actuator**です。
今回はじめて使ってみて便利だと思ったので、備忘録として投稿しました。

## Spring Boot Actuatorとは?

Spring Bootで提供されている監視や管理、また開発時にも役立つ情報を取得することができます。
アプリケーションに組み込むことでHTTP/JMXから取得が可能です。
情報を取得するためのエンドポイントや細かな設定は[リファレンス](https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html)にズラッと記載されています。

#

元記事を表示

Effective Java(第3版)の個人的なまとめ【項目1】 コンストラクタの代わりにstaticメソッドを検討する

Effective Javaを学んだ個人的なまとめです。

#### 結論
インスタンスの生成や利用を考えるときに、コンストラクタの利用を無意識に考えるのではなく、staticファクトリメソッドも検討に入れよう。

コンストラクタを利用する場合と比較してどのようなメリットとデメリットがあるのか。

#### ? メリット
#####1.名前を持つことができる
コンストラクタはクラス名と同じであるため、任意の名前を持つことができない。staticメソッドの場合は、メソッドなのでその動作にあった名前をつけることができるためわかりやすい
#####2. インスタンスを生成する必要がない
キャッシュしているインスタンスの再利用をすることで不用意なインスタンスの生成を防ぎ、計算量、処理量を減らすことができる。(GoFデザインパターンのシングルトン)
#####3.任意のサブタイプのオブジェクトを返すことができる
#####4.返却するオブジェクトを入力によって変えることができる
コンストラクタと異なり、戻り値を任意に定められるため、型にあった任意のオブジェクトを返却することができる。
####

元記事を表示

Javaでファイルやディレクトリのタイムスタンプを変更したい。

Javaでファイルやディレクトリのタイムスタンプを変更したい場合`Files.setLastModifiedTime`を利用すると便利です。たとえば指定のファイルのタイムスタンプを現在時刻にしたい場合は以下のようなコードになります。

“`java
FileTime now = FileTime.from(Instant.now());
Path file = Paths.get(“/path/to/file”);
Files.setLastModifiedTime(file, now);
“`

`Files.setLastModifiedTime`の第2引数には時刻を指定します。Javaで時間や日付というと`Date`や`Calendar`や`LocalDateTime`あたりをよく利用しますが、ここでは`FileTime`というあまりなじみのないものを利用することに注意する必要があります。

__環境情報__

“`
$ java -version
openjdk version “11.0.3” 2019-04-16
OpenJDK Runtime Environment

元記事を表示

【Java】MapをListに変換する方法

#はじめに

本記事ではMapをListに変換する2通りの方法をアウトプットします。

#Listを直接生成する方法

“`java
Map TopBillionaires = new LinkedHashMap<>();
TopBillionaires.put(“$195bn”, “Elon Musk”);
TopBillionaires.put(“$185bn”, “Jeff Bezos”);
TopBillionaires.put(“$134bn”, “Bill Gates”);
TopBillionaires.put(“$102bn”, “Mark Zuckerberg”);
TopBillionaires.put(“$88.2bn”, “Warren Buffett”);
TopBillionaires.put(“$81bn”, “Sergey Brin”);

List keyList = new ArrayList<>(TopBillionaires.keySet());
List

元記事を表示

OTHERカテゴリの最新記事