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

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

Iteratorパターン実装してみた

どーも、ふぎとです。

今回は結城浩『Java言語で学ぶデザインパターン入門』
(SB Creative)を参考にしながら、デザインパターン
のひとつである「Iteratorパターン」を実装していき
ます。

##Iteratorパターンとは

>Iteratorパターンとは、何かがたくさん集まっている
ときに、それを順番に指示していき、全体をスキャン
していく処理を行うためのものです。(P.2)

例えていえば、「袋に入ったモノの正体をひとつずつ
調べる」というプログラム、という感じかな。

本書ではサンプルプログラムとして、「本棚の中に入
れた本を調べ、その本の名前を順番に表示する」もの
が紹介されています。今回はそこにアレンジを加えて
「**ソングリストに入った曲をひとつずつ表示させる**」
プログラムをIteratorパターンで書いていこうと思いま
す。

##Aggregate(集合体)インターフェース
>Aggregateインターフェースは、数え上げを
行うものの「集合体」を表します。(P.3)

ここでは「曲の集合体」を表す「SongAggregate」
というインタ

元記事を表示

JavaでBasic認証作ってみた

# 参考サイト様
let’s プログラミング
https://www.javadrive.jp/servlet/auth/

# 環境
eclipse2019-9
tomcat9

# 書いた動機
学んだことを忘れないためのメモ書きです。
ほぼ上記参考サイト様の通りで動きましたが、自分の環境に合わせてちょこちょこ変更したので、変更部分を書いておきます。

# Basic認証とは
簡易的な認証方法。
Webサイトを開くとポップアップが表示され、ログインIDとパスワードを要求されます。
IDもパスワードも暗号化されずに送信されるため、セキュリティ的にはだいぶ弱いらしい。
一度ログインするとブラウザを閉じるまでログイン状態が保持されます。

# 用意するファイル
+ servlet
+ web.xml
+ auth.xml
+ tomcat-users.xml

## servletの作成
まずはservletを作っていきます。

“`Java:AuthTest1.java
package auth;
import java.io.IOException;
import java.io.P

元記事を表示

Oracle認定Java_silver対策メモ1

##はじめに
エンジニアとして働き始めはやくも5ヶ月目、そろそろ資格をとろうかと。。。ということで!「Oracle認定JavaSE Silver」の対策として、黒本をもとに各章ごとの重要そうなポイントをピックアップしまとめてみました。

##1章 簡単なJavaプログラムの作成

* エントリーポイント:プリグラムを実行する上で実行を開始する場所(mainメソッドがある場所の認識でOK)

* Javaコマンドの呼び出し方法は

“`
java クラス名 コマンド引数1 コマンド引数2…
“`
* Java11からコンパイルせずにJavaの実行が可能になった

“`
java ファイル名.java
“`
* Javaコマンド実行次の注意点
* 起動パラメータの区切りは半角スペースで判断される。
* エスケープ「¥」を用いることで「”」が文字として扱われる。

“`sample
java sample x “y y”z ¥” c¥”   // x , y yz , “ , c” 
“`

##2章 Javaの基本データ型と文字列操作
* 整数リテラルの表記

元記事を表示

GradleでJDKをダウンロードしてJREを作る

Javaのスタンドアロンアプリケーション配布をする場合、JREを同梱しておくと環境設定が要らなくなるのですが、そのためには各プラットフォーム向けのJREをアプリケーションに同梱する必要があります。
フルサイズのJREを同梱してもいいのですが、Java9以降はモジュールがサポートされているので、せっかくなら必要な分だけを入れたJREを作る方が望ましいわけですが、その場合には各プラットフォーム向けのJDKに入っているjmods以下のファイルが必要になります。

セットアップのために手動でJDKをダウンロードするのは意外と手間なので、build.gradleに以下のようなスクリプトを追加してみました。

“`groovy
plugins {
id “de.undercouch.download” version “4.0.4”
}

task prepareJDK{
downloadAndExtractJDK(“jdk/win”,’http://download.bell-sw.com/java/11.0.6+10/bellsoft-jdk11.0.6+10-windows-amd

元記事を表示

JAVA学习

hello world

元記事を表示

IBM Cloud Object Storage(ICOS)に付属しているAsperaにSDK(Java版)を用いてファイルアップロードする

IBM Cloud Object Storage(ICOS)にファイルをアップロードする方法です。
今回はICOSに付属しているAsperaに対して、Java版のSDKを用いて操作を行います。

# 使用した環境
* macOS Mojave 10.14.6
* IntelliJ IDEA Ultimate 2019.03
* Java8

“`
$ java -version
java version “1.8.0_211”
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
“`

# Java版SDKのセットアップ
こちらを参考にセットアップ下さい。
[GitHub:IBM/ibm-cos-sdk-java](https://github.com/IBM/ibm-cos-sdk-java)

基本的には `pom.xml` にSDKのエントリを追加するだけです。

# ICOSの情報確認
IB

元記事を表示

Java sample code 02

##[SAMPLE GALLERY](http://blueplace.sakura.ne.jp/index.html)に掲載されたソースを疎通してimport文も付けました。
#2.FileIO
– テキストファイルに書き込み
– テキストファイルに改行を入れる
– テキストファイルの読み込み
– ウェブページの内容の読み込み
– ファイルを別のファイルにコピー
– 文字コードを指定しテキストファイルを読み込む(文字化け対策)
– テキストファイルに文字列を書き込む
– テキストファイルの文字列を読み込む

####2-1.テキストファイルに書き込み
“`java
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SampleOutputStream {

public static void main(String[] args) throw

元記事を表示

Java sample code 01

#1.Java サンプルプログラム
##[SAMPLE GALLERY](http://blueplace.sakura.ne.jp/index.html)に掲載されたソースを疎通してimport文も付けました。
– Java 基本
– Hello World(文字をコンソールに出力)
– for文(ループ)
– if文(条件分岐)
– switch文(条件分岐)
– 簡単な四則演算
– メソッドの呼び出し
– メソッドの呼び出し(引数有り)
– 配列
– 多次元配列
– コンソールに入力
– 文字数の取得
– Listクラス
– Mapクラス
– Setクラス
– Java Stringクラス(文字列)
– 二つの文字列が同じかどうか判定:equals
– 大文字小文字区別なく2つの文字列が同じかどうか判定:equalsIgnoreCase
– 辞書の順序で文字列の大小を比較:compareTo
– 大文字小文字区別なく辞書の順序で文字列の大小を比較:compareToIgnoreCase
– 文字列の結合:

元記事を表示

Java 14でTable Driven Testを実装する

## はじめに
Java 14がついにリリースされたので、
以前書いた[JavaでTable Driven Testを実装する](https://qiita.com/nodataka/items/06ac753036d671371554)で紹介したソースコードを、
Java 14でPreviewとして追加された[Records](https://openjdk.java.net/jeps/359)を使って書き直してみました。

## Java 14以前のTable Driven Test
以前のソースコードでは、
テストケースをTestCaseという内部クラスで保持していました。
コンストラクタやgetterはLombokを使って定義していました。

“`java
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.experimental.Accessors;
import org.junit.jupiter.api.*;

import java.util.stream.Stream;

im

元記事を表示

結城浩『Java言語で学ぶデザインパターン入門』(SB Creative)読んでみた

こんにちは、ふぎとです。

今回は結城浩さんの本で、デザインパターンを学んでみ
ました。

##「デザインパターン」とは

この本を手に取ったきっかけは、情報系の友人からの薦
めがあったからでした。「実務で絶対に役に立つから」
という太鼓判を鵜呑みに、おっかなびっくり手にとった
次第です。

まず浮かんだのは、「デザインパターンってなに?」と
いうこと。これは本書冒頭に説明がありました。

“プログラミングを行っていると、以前と同じことを繰
 り返しているなあ、と気づくときがあります。経験が
 増すにつれ、そのような「パターン」(….)を次の開発
 に当てはめていくことができるようになります。 
 Erich Gamma, Richard Helm, Ralph Johnson, John
 Vlissidesの4人が、そのような開発者の「経験」や
 「内的な蓄積」としてのパターンを
 
 「デザインパターン」

 という形に整理しました。”(「はじめに」より)

要するに、デザインパターンとは「先人の知恵」のよう
なもの。また、開発者同士の「共通言語」のようなもの、
だということ

元記事を表示

Javaにおけるmainメソッドとは

# はじめに
java初心者による、情報の整理としての記事です。
修正点・記載すべき追加情報などありましたらご指摘いただけると幸いです。

#mainメソッドとは

“`public static void main(String[]args){
\\statement
}“`

・多くの場合この形で定義されるメソッド(例外パターンは記事後半に記載)
statement(文)の中には、
  1.変数実行の文
  2.計算式の文
  3.命令実行の文
など様々な文を記述する。それぞれの文は上から順に処理されていく。

・Javaプログラムの**起点**となるメソッド(エントリーポイント)
Javaのプログラムを起動した際に一番最初に参照されるポイントです。mainメソッドが起点となるため、他のクラスで定義したメソッドなどはmainメソッド内で呼びださない限り実行されることはありません。

また、mainメソッドが存在しない場合、このようなエラーが発生します。
“`Exception in thread “main” java.lang.NoSuchMethodError: mai

元記事を表示

Oracle Code One 2019で興味深かったセッション

2010/1/18(土) に[Oracle Code One 2019 報告会 in 大阪](https://kanjava.connpass.com/event/161889/)で「オッス! Oracle Code One」というタイトルで登壇させて頂きました。

そこで興味深かったセッションとして「Duke’s Star Trek with Java 12 Code Challenges」というセッションの内容を紹介いたしました。
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100799/f5a53559-0bcf-d464-2340-ac90c38d3fb1.png)

Oracle Code Oneは朝から晩まで4日間に渡るカンファレンスなのでいくつものセッションを聞くのですが、セッションの数が多すぎていつもセッション選びに苦労します。
しかしStar Trekの好きな私はタイトルを見ただけでほぼノータイムで予約を入れました。
内容はJDK6からJDK12までの各バージョンで取り入れ

元記事を表示

onConfigurationChangedで回転時のレイアウトを変更

##やりたかったこと
ImageViewの画像を画面いっぱい(アスペクト比はそのまま)に表示してかつ、ボタンを真下に置きたかったのですが、、、
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/420023/b3d8ab08-3421-03a5-c89d-3a7708243dc7.png)
横回転するとボタンが隠れてしまうし、横画面に合わせてレイアウト変えると縦回転したときにボタンの位置がずれてしまってました。
レイアウト用のxmlは1つだけにしたかったので、ソース内で動的にImageViewのサイズを変えることにしました。

##やったこと
####レイアウト
– レイアウトはConstraintLayoutを使う
– ImageViewの設定:
– サイズ(縦向き時):
– height: wrap_content
– width: 0dp(match constraint)
– サイズ(横向き時):
– height: 0dp(match

元記事を表示

新卒2年目がJava Silver/Goldに2ヵ月で合格した話

#導入
こんにちは。けちょんです。
Java Silver/Goldに合格したので、嬉しくて記事を書きました。
これから受験する方の参考になれば、と思います。

#受験結果

##Java Silver
得点:88/100
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260518/2f5ddc6f-970a-e8ee-b832-689e5c90d903.png)

##Java Gold
得点:91/100
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260518/1ac04c61-b8aa-6e54-e46b-3b1f8f34c112.png)

#勉強開始時点の知識
業務でエンハンスは行っていたため、基本的なデータ構造や文法は分かる
ジェネリクス?ラムダ式?ストリーム??何それな状態

#勉強時間
##Java Silver
勉強時間:約8時間
基礎知識は既に築かれていたため

元記事を表示

CentOS7にEclipse GlassFish 5.1.0をインストールする方法

CentOS7にEclipse GlassFish 5.1.0をインストールする手順を紹介します。

# 1. 環境

+ CentOS Linux release 7.7.1908

“`
root@CENTOS7 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@CENTOS7 ~]#
“`

+ jdk-8u241(jdk-8u241-linux-x64.rpm)(jdk14では動作しませんでした。)

“`console:インストール
[root@CENTOS7 ~]# rpm -ivh jdk-8u241-linux-x64.rpm
警告: jdk-8u241-linux-x64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID ec551f03: NOKEY
準備しています… ################################# [100%]
更新中 / インストール中…
1:jdk1.8-200

元記事を表示

【プログラミング言語】使い手 呼び名リスト

プログラミング言語の使い手の呼び名を集めれるだけ集めました。使われてるかよくよくわからないものも含まれているので、使う際はあくまで自己責任でオナシャス( ˘ω˘ )スヤァ…

※アルファベット順

#C
* C-man(シーマン)

#C Sharp
* C#er(シーシャーパー)

#C++
* C++er(シープラプラー)

#COBOL
* COBOLer(コボラー)

#Flash
* Flasher(フラッシャー)

#GO
* Gopher(ゴーファー)

#Haskell
* Haskeller(ハスケラー)

#JAVA
* JAVAer(ジャバー)
* Java屋
* Javaヤー

#JavaScript
* JavaScripter(ジャバスクリプター)
* JSer(ジェイサー)

#Julia
* Juliana(ジュリアナ)

#Kotlin
* Kotliner(コトリナー)

#node
* noder(ノーダー)

#LISP
* LISPer(リスパー)

#Objective-C
* Objective-C-man(オブジェクトシーマン)

#P

元記事を表示

Progate無料版をやってみる【Java II】

[前回](https://qiita.com/GodPhwng/items/febcc56b2983cc4ef5ed)に引き続きProgate無料レッスンをやっていこうと思います。

今回はJava II です。
ここまでが無料分です。

[レッスン一覧](https://prog-8.com/lessons/info)

#Java II

[公式レッスン](https://prog-8.com/java/study/2/1#/1)

###真偽値・比較演算
###比較演算子(2)
###論理演算子
・基本的なことなので・・・省略

###if文
・基本的なことですが・・・
 少しは載せとかないと・・・

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526982/054cee88-a75c-a880-773b-07aa206a06f1.png)

波線があるところは「デッドコード」死にコードと出ています。
その名の通り、falseなので、絶対にifブロック内の処理は実行されません。

元記事を表示

Swift Network.framework Study 20200319「Receive and Send」

# Study

Network.framework
Study:Receive and Send

## 環境

Client:Java、NetBeans
Server:Swift、Xcode

# Server Source Swift

## main.swift

“`swift
import Foundation
import Network

var receiveANdSend = ReceiveAndSend()
receiveANdSend.startListener()
while receiveANdSend.running {
sleep(1)
}
“`

## ReceiveAndSend.swift

“`swift
import Foundation
import Network

class ReceiveAndSend {
public var running = true

func startListener() {
let myQueue = DispatchQueue(label: “Example

元記事を表示

IntelliJ IDEAでブレークポイント設定しているのにデバッグで止まらないとき【Gradle】

## 要約
「Preferences」→「Build, Execution, Deployment」→「Build Tools」→「Gradle」
の「Build and run」の設定を「Gradle」から「IntelliJ」に変更する。

![スクリーンショット 2020-03-19 19.52.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120789/8d3c25e8-860a-5eec-dfa0-6413020eaa18.png)

IntelliJ IDEAを使っているが、Javaの開発とかにはそこまで慣れてない。
デバッグのためにブレークポイント設定して実行しても全然止まってくれない。
ということで調べた。

上記要約にある通り、IntelliJからの実行でないとプロセスにそのままアタッチできないとのことで、
実行が止まらない。
今回はGradleだったが、Mavenとかでも同じみたい。
(調べて見つけたのはMavenの記事だった)

元記事を表示

【Java】Apache POIでExcelファイルを扱う

# 概要
業務でJavaプログラムからExcelファイルを参照、出力(作成)する必要があり、その際に Apache POI を用いて対応したので、その基本的な操作をまとめた。

## Apache POI とは?
Apacheプロジェクトの1つで、Word や Excel などの Microsoft Office 形式のファイルを読み書きできる 100% Java ライブラリ。
_※ POI という名称は、Office のファイル形式をリバースエンジニアリングした際、その形式が意図的、中途半端に分かりにくくされていたため、皮肉を込め “Poor Obfuscation Implementation”(質の悪い難読な実装)と呼んだものの頭字語に由来している。_

# Apache POI の入手
[Apache POI の公式サイト](https://poi.apache.org/download.html)より、ライブラリを取得する。
(2020年3月時点の最新バージョンは 4.1.2 だが、今回は業務対応時点での最新だった、3.17 にて実装)

# サンプルコード
既存のExc

元記事を表示

OTHERカテゴリの最新記事