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

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

Javaのswitch文とbreak、Kotlinのwhen式と…

## Javaのswitch文の場合

問題。以下のJavaコードの “`main(…)“` を呼び出したときの “`countOnes(int[])“` の結果は何でしょう(筆者としては引っかけようという気持ちはあまりないので、まぁお気軽に)?

“`java:SwitchSample.java
public class SwitchSample {
public static int countOnes(int[] numbers) {
int counter = 0;
for(int number : numbers) {
switch(number) {
case 0:
System.out.println(“ZERO”);
break;
case 1:
counter++;
defaul

元記事を表示

Prototypeパターン

###Protytypeパターン
クラスからインスタンスを生成するのではなく、インスタンスから別のインスタンスを作り出す。原型となる、模範となるインスタンスを元に新しいインスタンスを作る。

###Prototype(原型)の役
インスタンスをコピーして新しいインスタンスを作るためのメソッドを定める。

““java
package framework;

public interface Product extends Cloneable {
// 「使う」ためのメソッド。使うが何を意味するかはサブクラスの実装に任されている
public abstract void use(String s);
// インスタンスの複製を行う
public abstract Product createClone();
}
““

###ConcretePrototype(具体的な原型)の役
インスタンスをコピーして新しいインスタンスを作るメソッドを実際に実装する。

““java
import framework.Product;

public class MessageBo

元記事を表示

Java SE Bronze試験のテスト内容

**Java SE Bronze試験のテスト内容**
言語未経験者向けの入門資格。Java言語を使用したオブジェクト指向プログラミングの基本的な知識を有することを評価することを目的としている。

**1. Java言語のプログラムの流れ**
– 1.1.Javaプログラムのコンパイルと実行
1.2.Javaテクノロジーの特徴の説明
1.3.Javaプラットフォーム各エディションの特徴の説明

**2.データの宣言と使用**
2.1.Java言語でのデータ型の説明(基本型、参照型)
2.2.各種変数や定数の宣言と初期化、有効範囲
2.3.配列(1次配列のみ)の生成と使用
2.4.コマンドライン引数の利用

**3.演算子と分岐文**
3.1.各種演算子の使用
3.2.演算子の優先順位
3.3.if、if/else文の作成と使用
3.4.switch文の作成と使用

**4.ループ文**
4.1.while文の作成と使用
4.2.for文及び拡張for文の作成と使用
4.3.do-while文の作成と使用
4.4.ループのネスティン

元記事を表示

Singletonパターン

###Singletonパターン
インスタンスが1つしか存在しないことを保証するパターンのこと。

###Singletonの役
Singletonの役は唯一のインスタンスを得るためのstaticメソッドを持つ。
このメソッドはいつも同じインスタンスを返す。

““java
package singleton;

public class Singleton {
private static Singleton singleton = new Singleton();

// コンストラクタをprivateにすることでクラス外からコンストラクタを呼び出すことを禁止する
private Singleton() {
System.out.println(“インスタンスを生成しました”);
}

// インスタンスを返すstaticなメソッドを提供する
public static Singleton getInstance() {
return singleton;
}
}
““

###呼び出し元

““java
package singlet

元記事を表示

【Java】文字列の扱い(StringクラスとStringBuilderクラス編)

備忘録。

## Stringクラス
 String型のデータである文字列は、それ自身を書き換えることができません。また、String型は参照型であるため、初期化されたString型の変数に、異なる文字列を際代入すると、元の文字列が書き換えられるのではなく、新しい文字列が生成され、変数の**参照先が切り替わります**。

## Stringクラスのメソッド
“`Java:Sample.java
String s = “onigiri”;
“`

|メソッド|説明|結果|
|:———–|:————|:————|
|charAt(2)|引数にある文字を返す。開始は0番目|i|
|equals(“onigiri”)|引数の文字列と同じか比較し、boolean値で返す。|true|
|intern()|文字列プールの中にある一意の文字列を返す|onigiri|
|indexOf(‘g’)|引数の文字が最初に出現する位置を返す。開始は0番目|3|
|length()|文字列の数を返す|7|
|replace(‘i’,’Y’)|第1引数の文字を、

元記事を表示

kotlinとjavaで関数を作りたい!

# はじめに…

この記事は[3個前の記事](https://qiita.com/sato-na/items/cc23f9b1db9c948dc00e)で書いた、

**7日間毎日記事投稿の4日目**

になってます

使うコードは下に貼りますが、このアプリの詳しい機能はその3個前の記事をご覧ください!

– java版 : https://github.com/sato-na/guruwake_java

– kotlin版 : https://github.com/sato-na/guruwake_kotlin

↓ここからが今回の記事の本題です↓

# それぞれの言語で関数を作るには…

– javaの場合

“`java
修飾子 戻り値の型 関数名(引数, 引数, …) {
関数の内容
return 戻り値
}
“`

例)
※ 引数なし、戻り値なしの関数を定義している

“`java:WhoActivity.java
private void addMember() { // 78行目
EditText memberET = findViewB

元記事を表示

Galasaを使ってみた

#はじめに
[Galasa](https://galasa.dev/)というz/OSをベースとしたハイブリッド・クラウド・アプリケーションのためのテストフレームワークがオープンソースのプロジェクトとして提供されています。これはまだ提供されてから日が浅く(2019年の12月にV0.3.0リリース)、当記事執筆時点(2020年8月)でもV0.10.0というレベルでまだまだこれからという感じのモノなのですが、z/OSのアプリケーションをターゲットにしているというところが魅力的です。しかも、CICS TSの開発拠点でもあるIBM Hursley Lab(UK)で作られているというのが激アツです。ということで、このGalasaを使ってみた時のログです。

#Galasa概要

Galasaはz/OSをベースとしたハイブリッド・クラウド・アプリケーションのためのテストフレームワークです。Eclipseのプラグインが提供されていますので、3270アプリやz/OSのバッチアプリなどのテストコードをEclipse上でJUnitライクにJavaで実装しテスト実行を行うことができます。
サンプルのテストコー

元記事を表示

JavaからSalesforceRESTAPIを叩く

#はじめに
本記事はJavaからSalesforceのRESTAPIを叩くソースコードの備忘録です。
プロパティファイルなど省略している部分も多いので、このまま書いても動くわけではありません。

とりあえず以下3点がわかれば良いと思っています。
1. JSON形式でリクエストを送信/受信する書き方
2. JSON形式でレスポンスを送信/受信する書き方
3. 配列型のJSONの作成方法

##リクエスト・レスポンスの形式
リクエスト

“`JSON:JSON
{
“request” : [
[
“id” : “000”,
“name” : “sample0”
]
[
“id” : “001”,
“name” : “sample1”
]
]
}
“`
レスポンス

“`JSON:JSON
{
“results” : [
[
“id” : “000”,
“name” : “sample0”,
“status” : “200”
]
[
“id”

元記事を表示

Spring Boot + GradleでWebサイトを作ってみる(jdk1.8.x)

# これは何?
JavaでWebサイトを作るのってどうやるの?という、最初の一歩で、成果物はHTMLページが1枚表示されるのみです。Webサーバを動作させブラウザに表示させることを目標とした記事です。
動作したら、修正を加えながら覚えていくと良いと思います。

# 動作確認したシステム要件
2020年8月に以下の要件で動作確認を行っています。

– macOS 10.14.6
– Homebrew 2.4.12
– Gradle 6.6
– jdk1.8.x
– git

# 1. 手順:まずは動かしてみる
## 1.1. Projectのディレクトリを作成して移動する

“`bash:Terminal
$ mkdir -p helloworld; cd $_
“`

## 1.2. Gradle Projectを初期化する

“`bash:Terminal
$ gradle init
“`

ここから対話形式で進むので以下のように選択する。

1. Select type of project to generate >> **2: application**
2. Sele

元記事を表示

51歳(現52)からのプログラミング 備忘 VScodeでjarの追加 Class.forName java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Drive

VScodeでjavaしてると、たまにハマります。
今回は、DB(mysql)を扱うために、mysqlのjdbcを使いたかったのですが、

java.long.ClassNotFoundException: com.mysql.cj.jdbc.Driver
っていうエラーが止められなかった。
解決に丸1日(涙

VScodeでは、外部jarファイルの導入は
![vscode_dependenciew.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399000/b9897759-8921-1246-3ec9-74ef8c44f556.jpeg)
①でjavaファイルを選択し
②のエクスプローラメニュー[ … ]を選択して
③jdk8   なら -> [ java Dependencies ]
 jdk11 なら -> [ java Project ]
 にチェックを入れると
④のように [ JAVA PROJECTS ]\(jdk11) か [ JAVA DEPANDENCIES ]\(

元記事を表示

护网礼盒:哥斯拉Godzilla shell管理工具

护网期间,各大厂商的waf不断,在静态查杀、流量通信等方面对webshell进行拦截,众红队急需一款优秀的权限管理工具,冰蝎3.0的发布可能缓解了流量加密的困境,但是冰蝎3.0的bug众多,很多朋友甚至连不上冰蝎的shell,于是[@BeichenDream](https://github.com/BeichenDream)决定公开他所开发的一款shell权限管理工具,名为“哥斯拉”。

# 简单使用方法
在哥斯拉安装之前,你需要安装jdk1.8的环境。双击Godzilla.jar打开,此时会在同目录下生成data.db数据库存放数据。首页长这样
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593424/5a75e3b1-9b6e-7b2d-9142-134785133157.png)

点击 **管理**-**添加** 生成所需的webshell,哥斯拉支持jsp、php、aspx等多种载荷,java和c#的载荷原生实现AES加密,PHP使用亦或加密。生成时需要记住自己的生成配置用以

元記事を表示

Javaメトリクスとは_メモ_20200818

#メトリクス

**1.メトリクスとは**

  **便利なメトリクスたち**

  メトリクスとは、モデルを構成するクラスやメソッド、クラス間の関係、パッケージ間の関係などを、
  複雑さや結合度、凝集度などの観点から測定し、数値として表すものです。

  ソフトウェア開発で用いられるメトリクスには、マイナーなものも含めると非常にたくさんの種類があります。
  ただし、あまり高度なメトリクスを勉強しても実践の場でうまく使いこなすことは難しいです。
  ですので本資料では便利な3つの指標、「LOC」「CC」「WMC」だけに絞って学習します。
  たくさん覚えても使う機会がないと忘れてしまいますしね。

  **メトリクス利用のメリットデメリット**

  <メリット>

  コードの規模や複雑さ、凝集度(互いに関連する要素のコード内での散らばり具合)、
  結合度(クラスやパッケージの独立性の高さ)などを専用のツールを使って計測し、
  一定の目標を定めて改善していくことができる。
  

  <デメリット>

  たくさん存在するので覚えるのに時間がかかる

**2.LOC**

元記事を表示

Hull Voronoi 3Dで何度もSingular input data errorが出る原因

### Hull Voronoi 3Dについて
3DのVoronoi図を計算するプログラムで、原作はC#で記述されています。私が作ったProcessing(Java)バージョンもあります。Convex HullのfindInitialPoints内で頻繁にSingular input data errorが出るので原因を調べてみました。
https://github.com/Scrawk/Hull-Delaunay-Voronoi
https://github.com/Nekodigi/Hull-Voronoi-3D
### 原因
そもそも、Singular input data errorは入力した点が、一致しているときに発生します。findInitialPointsには、各軸の座標が最小値、最大値の点に絞り込んで渡すのですが、複数の軸の最小値、最大値を兼ねている場合、稀に点が不足し、同じ点が選ばれてしまうという事態が起こります。
### 解決法
点が少ない場合は、Singular input data errorが起こりやすいですが、その分処理も軽いので、findInitialPo

元記事を表示

Factory Methodパターン

###Factory Methodパターン
Template Methodパターンではスーパークラス側で処理の骨組みを作り、サブクラス側で具体的な処理の肉付けを行う。
このパターンをインスタンス生成の場面に適用したものがFactory Methodパターン。

###Product (製品)の役
このパターンで生成されるインスタンスが持つべきインタフェースを定める抽象クラス。
具体的な内容はConcreteProduct役が定める。

““java
package factoryMethod;

public abstract class Product {
public abstract void use();
}
““

###Creator(作成者)の役
Product役を生成する抽象クラス。
具体的な内容はContreteCreatorが定める。
Creator役は実際に生成するConcreteProduct役については何も知らない。
C

元記事を表示

【初心者向け】「return」がイマイチ分からない2年前の自分に向けての記事(if-elseの話も少し)

#この記事を読んで習得できること
・プログラミングを初めてまだ「return」の使い方が分からない方々
・3年前の私

#経緯
大学院でプログラムを書いていた3年前のボク。
大学の研究で実験の解析で必要だったため、必死で書いていたのをなんとなく覚えている。

ひとまず、自分の行いたい解析プログラムは動くようになり、
喜びながらそのプログラムを使って解析を行っていた。

ひと段落してから、プログラムを見てみると、
「結構ソース汚いな…」と思い、修正しようと試みた。

しかし、ソースのスパゲッティ感*が半端なく、
なかなか修正が出来ずに、前回と同じようなソースなのに、
一から書き直したのを覚えている。

#3年前のソースで何が起こっていたのか
おおよそのイメージだが、こんな感じ。

“`sample.swift
func yabaiCode() {
if 条件1 {
処理1(15行以上)
処理A(10行以上)
処理4(10行以上)
} else if 条件2 {
処理2(15行以上)
処理A`

元記事を表示

kotlinとjavaでリストを作りたい!

# はじめに…

この記事は[2個前の記事](https://qiita.com/sato-na/items/cc23f9b1db9c948dc00e)で書いた、

**7日間毎日記事投稿の3日目**

になってます

使うコードは下に貼りますが、このアプリの詳しい機能はその2個前の記事をご覧ください!

– java版 : https://github.com/sato-na/guruwake_java

– kotlin版 : https://github.com/sato-na/guruwake_kotlin

↓ここからが今回の記事の本題です↓

# それぞれの言語でリストを扱うには…

— 目次 —

1. Arraylistの作り方

2. 要素を追加・削除する方法

3. 要素数を取得する方法

4. リストの中身を逆順・シャッフルする方法

5. 中身を違うリストにコピーする方法

## ArrayListの作り方

– javaの場合

“`java
ArrayList<要素の型>変数名 = new ArrayList<>();
“`

例)

“`java

元記事を表示

【忘備録】Java : 文字列調査

# はじめに
今回は今まで逃げ続けてきたJavaの今までの復習と勉強ををしていきます。初めてプログラミングでJavaを触った結果、Javaに対して苦手意識が生まれたのですが、JavascriptやRubyを学んでから、学んだことがJava現場でも少しずつ活かされ始めて少しずつJavaも書けるようになり、Javaを今度こそ、しっかり学んでいきたいと思うようになりました。

今回はJavaにもともと、備わっているStringクラスのメソッドの復習をしていきます。使っている参考書は有名な[こちら](https://www.amazon.co.jp/dp/B00O0NIW30/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)です。

## String操作

### 1, equals
文字列比較の定番。
比較対象の文字列が等しいか見てくれる。小文字、大文字も見てくれる。

“`sample.java
public class string {
public static void main(String[] args){
b

元記事を表示

【Java】ArrayListの最長文字列をstreamを使って簡単に取得する方法

ArrayList\に格納されている文字列のうち、最大長であるものを簡単に取り出す方法です。
普通に考えたら、forで回してlenghtがMaxになるものを取得するというものですが、
ここではstreamを使って1行で取得します。

注)streamはJava8以降で利用可能です。

# ソースコード
maxString()が最大文字列長を取得するメソッドです。

“` StringList.java

package samples.stream.main;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class StringList {
private List _strList = new ArrayList();

public void add(String str) {
_str

元記事を表示

【エラー解決】HV000030: No validator could be found for constraint 〜〜

#####【環境】

– ProductName: Mac OS X
– ProductVersion: 10.14.6
– BuildVersion: 18G2022

#####【遭遇したタイミング】

– spring-bootでアプリを開発中

###結論

– 使うべきアノテーションを間違えていた。

###原因

`@Pattern` では使えない方法でバリデーションを設定していた。

#####【エラー内容】

“`
There was an unexpected error (type=Internal Server Error, status=500).
HV000030: No validator could be found for constraint ‘javax.validation.constraints.Pattern’ validating type ‘java.math.BigDecimal’. Check configuration for ‘price’
“`

訳:

“`
HV000030: 型 ‘java.ma

元記事を表示

プログラミング言語を学ぶ時には、はじめにプログラミング言語の家系図を見ておくとよいよ、という話

# プログラミミング言語の家系図ってなに

あるプログラミングがいつ、どのような言語に影響を受けて誕生したかを表す系譜のことです。

# プログラミミング言語の家系図はここにある

プログラミング家系図を載せているサイトはいくつかあるのですが、今回はこちらのサイトを紹介します。

[diagram & history of programming languages](http://rigaux.org/language-study/diagram.html) (プログラミング言語の系譜)

|![program_diagram.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/288329/c5cab079-38a7-1cba-f4d0-0681f128ccd9.png)|
|:–|

主要言語のみものと、150以上の言語を載せているバージョンの2種類が記載されています。
2020年8月時点で、2018年の分まで記載されています。

# いくつかの言語をピックアップ

主要言語の図から、いくつかの言語を

元記事を表示

OTHERカテゴリの最新記事