- 1. Javaのswitch文とbreak、Kotlinのwhen式と…
- 2. Prototypeパターン
- 3. Java SE Bronze試験のテスト内容
- 4. Singletonパターン
- 5. 【Java】文字列の扱い(StringクラスとStringBuilderクラス編)
- 6. kotlinとjavaで関数を作りたい!
- 7. Galasaを使ってみた
- 8. JavaからSalesforceRESTAPIを叩く
- 9. Spring Boot + GradleでWebサイトを作ってみる(jdk1.8.x)
- 10. 51歳(現52)からのプログラミング 備忘 VScodeでjarの追加 Class.forName java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Drive
- 11. 护网礼盒:哥斯拉Godzilla shell管理工具
- 12. Javaメトリクスとは_メモ_20200818
- 13. Hull Voronoi 3Dで何度もSingular input data errorが出る原因
- 14. Factory Methodパターン
- 15. 【初心者向け】「return」がイマイチ分からない2年前の自分に向けての記事(if-elseの話も少し)
- 16. kotlinとjavaでリストを作りたい!
- 17. 【忘備録】Java : 文字列調査
- 18. 【Java】ArrayListの最長文字列をstreamを使って簡単に取得する方法
- 19. 【エラー解決】HV000030: No validator could be found for constraint 〜〜
- 20. プログラミング言語を学ぶ時には、はじめにプログラミング言語の家系図を見ておくとよいよ、という話
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年の分まで記載されています。# いくつかの言語をピックアップ
主要言語の図から、いくつかの言語を