- 1. Java入門#2_演算子と条件分岐
- 2. extendsはなぜ邪悪か – 具象基底クラスをインターフェイスに変えることでコードを改善する
- 3. Javaのインクリメント・デクリメントについてまとめてみた
- 4. 初心者でもわかるBuilderパターン Builderパターンでカレーを作くろう!!
- 5. コンピュータとオセロ対戦43 ~目的関数~
- 6. フォームバリデーションのカスタマイズ【Spring Boot】
- 7. Java基礎(命令実行文)
- 8. JavaのWebアプリをHerokuでデプロイする方法
- 9. Javaを使用してPowerPointで散布図を作成する方法
- 10. クラス図を作成できない方でも大丈夫 eclipceでクラス図を自動生成してみた
- 11. Javaのstringについて
- 12. 古いASAにASDMでアクセスできないのはTLSバージョンのせい
- 13. Java 初心者でもわかる関数型インタフェイス(Consumer編)
- 14. Javaのラムダ式についてまとめてみる
- 15. Java 初心者でもわかる関数型インタフェイス(Suppler編)
- 16. SpringBootセキュリティ 10 のベストプラクティス
- 17. IvyDE で追加したライブラリが VSCode の Project Manager for Java に認識されない
- 18. Java CSV出力時のエスケープ処理について
- 19. 【AndroidStudio】独自アダプタとクラスを作成してListViewに一覧を表示する
- 20. ラムダ式って美味しいの?って思ってる方でもわかるラムダ式の解説
Java入門#2_演算子と条件分岐
#演算子
演算子とは、加減乗除をする文字のことです。
c#やPythonでは`+,-,*,/`などがありました。***javaもC系統とほぼ同じ記号を使います***
忘れてしまっていたら以下のページで確認して見てください。
以下、上記はだいたい頭に入っているものとして進めます。
試しに、二つの数を入力してその数の和を出力するプログラムを書いて見ます。
“`java
import java.io.*;class cal{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//お約束//二つの数字を文字として入力
System.out.println(“a=?”);
String str1 = br.readLine();
extendsはなぜ邪悪か – 具象基底クラスをインターフェイスに変えることでコードを改善する
## 翻訳にあたり
この記事はアレン・ホルブ(Allen Holub)[^1]さんの[Why extends is evil](https://www.infoworld.com/article/2073649/why-extends-is-evil.html)の翻訳です。古い記事ですが日本語訳が存在しないため翻訳いたしました。アレンさんにはTwitterメッセージ越しに快諾いただきました。
[^1]: 日本語圏における情報が少なかったため、[氏が講師を務めるアメリカO’reilly社の講座](http://shop.oreilly.com/product/0636920043942.do)で発音を確認したところ、「u」がほとんど発音されておらず(聴感上は「Holb」)、それに倣った。早口なせいか書き起こしが「Alan Holt(日本語字幕も当然アランホルト)」になっていたのはご愛敬。
Javaに総称型が導入される前の記事ですが、この記事の要点は現在でも通用する内容で、いい意味での古典だと思います。C#など、Java同様にインターフェイス(もしくはプロトコル、トレイト)を持つ言語
Javaのインクリメント・デクリメントについてまとめてみた
Javaのインクリメントとデクリメントについて学習したのでまとめてみたいと思います。
# Javaのインクリメントとデクリメントの書き方とそれぞれについて
| |処理内容 |構文 |
|—|—|—|
|インクリメント |一つ加算される |変数++、もしくは、++変数 |
|デクリメント |一つ減産される |変数–、もしくは、–変数 |インクリメントに関しては見たことがあると思います。
“`main.java
public class main {
public static void main (String[] args) {
for (int increment = 0; increment < 2; increment++){ System.out.println("increment=" + increment); } } } ``` このようにJavaでfor文を使ったことがある人であれば、変数++でインクリメントしているところを見たことがあると思います。 ただ、インクリメントもデクリメントに
初心者でもわかるBuilderパターン Builderパターンでカレーを作くろう!!
##はじめに
皆さんはBuilderパターンをご存知でしょうか。
Builderパターンには色々な種類ありますが、今回はGoFのBuilderパターンについて解説していきます。##GoFのBuilderパターンとは
Builder パターン(ビルダー・パターン)とは、GoF(Gang of Four; 4人のギャングたち)によって定義されたデザインパターンの1つです。 オブジェクトの生成過程を抽象化することによって、動的なオブジェクトの生成を可能にします。(引用 wikipedia)分かりやすく言うなら、猫というクラスがあるとします。猫の抽象的な概念は動物ですよね。
この場合、猫クラスから犬クラスに変わったとしても対応できますよね。
どうでしょうか?イメージが湧いたでしょうか。サンプルコード通してどんなものか具体的に説明していきます。##クラス図
![スクリーンショット 2022-02-15 20.51.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2526916/00b09582-8
コンピュータとオセロ対戦43 ~目的関数~
https://qiita.com/tt_and_tk/items/068f2afde6db637e189f
[前回](https://qiita.com/tt_and_tk/items/9c3e208d77373d0683e3)
# 今回の目標
# ここから本編
## 修正点
パッケージ名out_functionをactivationFunctionに変更しました。
また、Matrixクラスに以下のメソッドを追加しました。“`java
/**
* Return absolute value of this matrix.
* @param in Matrix.
* @return Absolute value of this matrx.
*/
public void abs(){
for (int i = 0; i < this.row; i++){ for (int j = 0; j < this.col; j++){ this.matrix[
フォームバリデーションのカスタマイズ【Spring Boot】
#概要#
フォームバリデーションをする際、Bean Validation APIの標準の制約(@NotBlanckなど)を使うほかに、独自のチェックをする制約を利用したくなる場面があると思います。そのような場合、これまではコントローラで実装してきましたが、特定のFormオブジェクトのチェック処理を集約したバリデータを利用すると、コントローラからチェック処理を切り離すことができることが分かりました。#前提#
社内システムのの管理者登録を実装する場合を想定します。チェック項目は以下の通りとします。
・空欄ではないこと(@NotBlanck / @NotNull)
・従業員テーブルに存在する社員であること(存在チェック)
・パスワードと確認用パスワードが一致していること(相関チェック)“`register.html
管理者登録
Java基礎(命令実行文)
##Javaの命令実行文
###画面に文字を表示する
“`java
System.out.println(“おはよう”);
“`
“`java:出力
おはよう
“`###文字を改行せずに表示
“`java
System.out.print(“私の名前は”);
System.out.print(“山田です”)
“`
“`Java:出力
私の名前は山田です
“`###二つの値の大きい方を代入する
“`java
int a = 3
int b = 5
int m = Math.max(a,b);
//m に 5 が代入される
“`###文字列を数値に変換
“`java
String age = “30”;
int n = Integer.parseInt(age);
//変数nが文字列から整数に変換
“`###乱数を生み出して代入
“`java
int a = new java.util.Random().nextInt(30);
//aには0〜29の値が代入
“`###キーボードから1行の入力を受け取る
“`java
String s =
JavaのWebアプリをHerokuでデプロイする方法
JavaのWebアプリをHerokuでデプロイする方法を自分用にメモします。
こちらの記事を参考にしました。
https://phoeducation.work/entry/2021/01/30/143607#Herokuインストール
まずはHerokuにアカウント登録してください。URL:https://jp.heroku.com/home
次にEclipseで作ったプロジェクトを右クリック → 構成 → Mavenプロジェクトへ変換
でプロジェクトをMevanプロジェクトにします。pom.xmlが生成されればOKです。ターミナルを開き、Heroku CLIをインストール
“`
$ brew install heroku/brew/heroku
“`デプロイツールをインストール
“`
$ heroku plugins:install heroku-cli-deploy
“`Herokuにログイン
“`
$ heroku login -i
“`以下のメッセージが表示されるとログイン成功です。
“`
Logged in as Herokuに
Javaを使用してPowerPointで散布図を作成する方法
散布図は、名前の示すように、散布点で構成されるグラフであり、これらの点が配置される場所は、X値とY値によって決まります。ゆえにXY散布図とも呼ばれます。この記事では、Javaコードの例を使用してPowerPointスライドに散布図を作成する方法を示します。
##チャートを作成する前に
PowerPointを操作するためのjarパッケージ**[Free Spire.Presentation for Java](https://www.e-iceblue.com/Download/presentation-for-java-free.html)**をJavaプログラムにインポートする必要があります。インポートするには、次の方法を参照してください。jarパッケージを手動でインポートします。jarパッケージをローカルにダウンロードして解凍し、libフォルダーでjarファイルを見つける必要があります。次に、以下の手順に従ってインポートします。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2787
クラス図を作成できない方でも大丈夫 eclipceでクラス図を自動生成してみた
##はじめに
ある時、Buildingパターンのクラス図を作ろうとしましたが、クラス図の作り方がわかリませんでした。なのでeclipceで自動生成してみました。##全体の流れ
たった3ステップで作成できてしまいます。①GEF SDKをインストール
②GEF SDKのインストール
③クラス図の作成##GEF SDKのインストール
①ヘルプボタンを押下し「新規ソフトウェアのインストールを押下しましょう。
![スクリーンショット 2022-02-14 21.48.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2526916/c534721f-cf54-115a-377a-4b60c9f2675a.png)②作業対象に「http://download.eclipse.org/releases/oxygen」を検索しましょう。
③モデリング選択し、GEF (MVC) SDKをインストールしましょう。
![スクリーンショット 2022-02-14 22.30.14.png](https://q
Javaのstringについて
# stringとはなんでしょうか
まずstring本質とはcharアレイです、例えば“`java
String a = “hello”;
“`実はと以下のコッド同じです
“`java
char[] b = {‘h’,’e’,’l’,’l’,’o’};
“`
#stringと他のタイプの変換ここはintを例にして 文法は以下です
“`java
//int toString: string.valueof(int)
String abc = String.valueOf(200);//String to int: integer.parseint(string)
int bcd = Integer.parseInt(“200”);
“`
#string tools of date
これはJava.util.dateというの内容を引用する、とscanner同じです。“`java
java.util.Date now = new java.util.Date();
//フォマード制定したいなら:
古いASAにASDMでアクセスできないのはTLSバージョンのせい
私はCisco ASA5505を持っている。
ヤフオクで入手した中古品だ。ASAはASDMというJavaで動く管理用のGUIツールを使って設定する。
CLIでも設定できるが見やすかったり設定しやすかったりするのでだいたいASDMを使う。久しぶりに引っ張り出してASDMでアクセスしたら、こんなエラーになった。
![asdm error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379353/3006391b-e05d-5c70-e5d7-8eb41e4f1b72.png)
ログインダイアログ右下にあるJavaコンソール(コーヒーカップのアイコン)を開いてアクセスすると、以下のようなエラーが記録されている。
“`java
javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
“`Jav
Java 初心者でもわかる関数型インタフェイス(Consumer編)
#はじめに
Javaではあらかじめいくつかの関数型インターフェイスが用意されてますが、皆さんはいくつご存知でしょうか。今回は代表的な関数型インターフェースのConsumerインターフェースについて解説していきます。
#Consumerインターフェイスとは?
英語を勉強したことがある人なら「Consumer」という単語は何度か聞いたことあると思います。
日本語に訳すと「消費者」という意味になります。
__名前の通り、Consumerインタフェイスは引数を受け取ってその引数を使った処理を実行するメソッドを定めます。__その定められたメソッドが__accept()__です。
:::note info
関数型インターフェイスとはメソッドを一つしか持たないインタフェースのことを言います。
:::##いつ使うの?
引数を受け取ってその引数を使った処理を実行する時に使います。
具体的には引数で受け取ったものをコンソールに出力することやインスタンスの初期化に必要な値を受け取ったりします。##どうやって使うの?
関数型インターフェイスはラムダ式でよく利用します。
ラムダ式がまだわからないっ
Javaのラムダ式についてまとめてみる
Javaシルバーの合格を目指して、ラムダ式についてまとめてみました。
もし指摘やアドバイスなどありましたら書いていただけると本当に嬉しく思います。
#ラムダ式とは
まず最初に、ラムダ式のメリットについて書いていきたいと思います。
ラムダ式のメリットとしては、
「抽象メソッドの処理を完結に書くことができる」
というのがメリットとしてあります。今から、そんな便利なラムダ式の書き方を紹介します
#ラムダ式の書き方
まず最初にラムダ式の構文を紹介します。ラムダ式の構文は
“`
インターフェース名 変数名 = (引数名) -> { 処理内容 };
“`そして、ラムダ式を書く時に知っておいたほうがいいと思うので知っておいたほうがいいですが、引数名の型を書く必要はありません。
ラムダ式の場合は、引数の型をラムダ式の中に書き込まなくてもJava側できちんと型を推論してくれるので書かなくても大丈夫です。ラムダ式で実装できるのは、関数型インターフェイスのメソッドです。関数型インターフェースというのは、そのインターフェースの中に入っているメソッドが抽象メソッドかつ一つしかメソッド
Java 初心者でもわかる関数型インタフェイス(Suppler編)
#はじめに
Javaではあらかじめいくつかの関数型インターフェイスが用意されてますが、皆さんはいくつご存知でしょうか。今回は代表的な関数型インターフェースのSuplierインターフェースについて解説していきます。
#Supplierインターフェイスとは?
英語を勉強したことがある人なら「Supplier」という単語は何度か聞いたことあると思います。
日本語に訳すと「提供者」という意味になります。
__名前の通り、Supplerは引数を受け取らずに値を戻す関数型インターフェースです。__get()メソッドを持っています。
:::note info
関数型インターフェイスとはメソッドを一つしか持たないインタフェースのことを言います。
:::##いつ使うの?
引数を受け取らずに値を戻す時に使います。
具体的にはインスタンスを生成する時や、引数関係なく値を出力する時に利用します。##どうやって使うの?
関数型インターフェイスというのはラムダ式でよく利用します。
ラムダ式がまだわからないっていう方は下記の記事を参考にしてください。
https://qiita.com/110shu
SpringBootセキュリティ 10 のベストプラクティス
JavaフレームワークのSpring Boot。
Spring Bootを使用していて、セキュリティに関してどこから手をつけてよいかわからないとお悩みであれば、ぜひご一読ください。
今回は、こちらのブログ翻訳の内容をお届けいいたします。
https://snyk.io/blog/spring-boot-security-best-practices/
#SpringBootセキュリティ 10 のベストプラクティス
Simon Maple, Matt Raible
サイモン・メープル、マット・レイブル
2018年8月16日[チートシートのダウンロード](https://res.cloudinary.com/snyk/image/upload/v1534422834/blog/Spring_Boot_Security_Cheat_Sheet.pdf)
この
IvyDE で追加したライブラリが VSCode の Project Manager for Java に認識されない
[IvyDE](https://ant.apache.org/ivy/ivyde/) は Eclipse 用の拡張機能で、[Apache Ivy](https://ant.apache.org/ivy/) で管理している依存ライブラリを Eclipse のクラスパス管理に統合します。Ivy 管理下の JAR ファイルへのパスを `.classpath` に直接記載していると、ライブラリの更新等でファイル名が変わった際にエラーが発生します。しかし、IvyDE でクラスパスコンテナを作成している場合、自動的にクラスパスの情報が変更されるためエラーになりません。
![ivyde.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463374/f543c0b2-b3b3-f72d-4bb4-f994e299d428.png)
一方、[Extension Pack for Java](https://github.com/Microsoft/vscode-java-pack) は VSCode 用の拡張機能パッ
Java CSV出力時のエスケープ処理について
# Java CSV出力時のエスケープ処理について
– ダブルクォーテーション
– シングルクォーテーション
– 改行
– タブ
– カンマなどが入っている場合のエスケープ処理についてどのようにしたほうが良いのか試した結果を記載する。
## 結論
とりあえずダブルクォーテーション、シングルクォーテーション、改行、タブ、カンマとかにかかわらず、全てダブルクォーテーションで囲んどいたらええやろ、、てことで、下記escapeメソッドはただのダブルクォーテーションについての処理に終始し、全て良しとすることにしました。
“`
/**
* CSVファイルを作成
*
* @param fileName
*/
public void exportCsv(String fileName) {
try {
File newFile = new File(System.getProperty(“java.io.tmpdir”) + “/” + “tmp.csv”);
File
【AndroidStudio】独自アダプタとクラスを作成してListViewに一覧を表示する
#はじめに
AndroidでListViewに何かを表示するときは基本的にAdapterを利用しますが、初めは使い方がわからず、とりあえず教本などに書いてあるSimpleAdapterを使いがちな気がします。まあそれでもいいんですが、SimpleAdapterはリストに入ったデータを取り出すのが結構面倒だったので、BaseAdapterを継承してAdapterを自作してしまうという感じです。なにやら難しそうに聞こえますが、やってることは案外単純なので、ListViewで詰まっている方はぜひ。ちなみにJavaしか書けない人間なので、Javaで書いちゃいます。#ListViewに表示するデータのクラスを作成する
まずは、リストに入れるデータをクラスで定義しましょう。ここでListなどを使ってしまうと、データの変更などが結構面倒です。初心者の方はクラスに抵抗があるかと思いますのでゆっくり説明していきます。
今回は定食屋のメニューをリスト表示してみましょう。MainActivityとは別ファイルでItemというクラスファイルを作ります。“`Java:Item.java
public
ラムダ式って美味しいの?って思ってる方でもわかるラムダ式の解説
#はじめに
ラムダ式を理解するのって初心者にとっては難しいですよね。
僕も理解するのに苦労しました。
今回は初心者の方でも分かるようにラムダ式をまとめました。
この記事が皆さんのお役に立てれば幸いです。
##ラムダ式とは?
メソッドを一つしかもたないインターフェイスの実装とインスタンス生成が同時に作成できる文法のことを言います。
要するにラムダ式は、クラス宣言とインスタンス生成がが同時にできるってことです。:::note info
メソッドを一つしか持たないインタフェースのことを関数型インターフェイスと言います。
:::#どのように使うの?
サンプルコードを通して使い方を説明していきます。
###構文
最初はその場で名前のないメソッドを作るようなイメージでいいと思います。“`
構文
(引数) ->{処理}
“`
###サンプルコード
例えば、モンスターというインターフェイスを作ろうとします。
このモンスターはlevelが1なので、1つしか技を持っていません。
しかも、技名だけであり、未完成です。