- 1. 【Java】paizaでの学習を通して学んだJavaメソッドのチートシート
- 2. Javaのインターフェースについて学んだのでメモ(自分用)
- 3. コンピュータとオセロ対戦40 ~行列計算~
- 4. Java Silver SE11 7章
- 5. Visual Studio Code Remote – Containersで開発環境をコンテナ化する
- 6. Javaのパッケージについてまとめてみた(自分用メモ)
- 7. Scalar DBでの例外処理とは
- 8. Flutterで既存のiOS / Androidアプリに機能追加 (Add-to-app):基本編
- 9. Couchbase Lite機能解説:JSONデータ操作
- 10. Javaの例外処理を学んだのでメモを取る(自分用メモ)
- 11. リーダブルコードのまとめ。 2/2
- 12. textView.text = “文字列” はできるのに editText.text = “文字列” とできない理由とは
- 13. Commons emailで日本語添付ファイルの文字化け解消
- 14. Javaセキュリティ 10のベストプラクティス
- 15. Java オラクルAPIドキュメント
- 16. JARファイルとは
- 17. Mpo100
- 18. Thymeleafで独自UtilityObjectを作る
- 19. APIにGETリクエスト送付時のテストコードを書く
- 20. SQLServerの2100個問題のひとつの解決策として、テーブル値パラメーターを利用する
【Java】paizaでの学習を通して学んだJavaメソッドのチートシート
#はじめに
はじめまして!初投稿をさせていただきますヨシカワです!
大学でpaizaラーニングについての紹介があり、興味を持って取り組み始めました。
その際に、知らなかった便利なJavaメソッドを知れたので記事にしようと思いました。
間違いや補足があればご指摘お願いします。#目次
[文字列aの長さを取り出す](#文字列aの長さを取り出す)
[文字列aに特定の文字列sが含まれているかどうか](#文字列aに特定の文字列sが含まれているかどうか)
[文字列aからn-m番目の文字列を取り出す](#文字列aからn-m番目の文字列を取り出す)
[文字列aを分割し分割した文字列を配列として格納する](#文字列aを分割し分割した文字列を配列として格納する)
[文字列aを数値へ変換する](#文字列aを数値へ変換する)
[数値iを文字列に変換する](#数値iを文字列に変換する)
[数値aの絶対値を求める](#数値aの絶対値を求める)
[参考にさせていただいたページ](#参考にさせていただいたページ)##文字列aの長さを取り出す
“`java:
a.length()
“`
半角、全角関係なく返し
Javaのインターフェースについて学んだのでメモ(自分用)
Javaのインターフェースについてとりあえず軽く調べたので、とりあえずまとめてみようと思います。
#interfaceとは
interfaceは定数とメソッドの定義しかすることができません。
そして、宣言する場所ですが、これはクラスの外で定義をします。つまり、クラスの中で宣言をしてしまうとコンパイルエラーになってしまうので注意が必要です。
そして、interfaceで宣言した定数はどこでも使えるというわけではなく、その定数を使う場所を宣言しなくてはいけません。
そのやり方については、次の場所で説明します。#interfaceの書き方
“`
interface インターフェース名{}
“`と書きます。
具体的には“`
interface hogeInterface{}
“`のようにして宣言します。
いまインターフェースの宣言のやり方を宣言したので、次から実際にインターフェースで定数を宣言して、実際にそれを使えるようにするまでやっていきます。今手元には、interfaceであるhogeInterfaceと、hogeクラスがあります。
まず最初に、inte
コンピュータとオセロ対戦40 ~行列計算~
https://qiita.com/tt_and_tk/items/068f2afde6db637e189f
[前回](https://qiita.com/tt_and_tk/items/e91bfc5c83bd8ee73d75)
# 今回の目標
行列計算用のクラスが必要だと思ったので作ります。
# ここから本編
## 現在のディレクトリ構成
現在のディレクトリ構成は以下の通りです。
ファイルは省略しています。“`
MyNet
├── layer // 層のパッケージ(今は空)
├── matrix // 行列のパッケージ(今回作成)
├── nodes // ノードのパッケージ(前回作成)
│ └── out_function // 活性化関数のパッケージ(前回作成)
└── optimzer // 最適化関数のパッケージ(今は空)
“`## メンバ変数とコンストラクタ
できるだけnumpyのndarrayに近い形にしたいと考えています。
演算子のオーバーライドができない時点で不可能ではありますが、できるだけ近い感覚で使いたいです。
なんとなくい
Java Silver SE11 7章
# Java Silver SE11 7章
[黒本](https://www.amazon.co.jp/gp/product/4295007625/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)をもとに学んだことをアウトプットしていきます。
主に問題を解いていて、間違えた箇所もしくは知らなかった内容になります。## 継承 (extends)
元となるクラスの差分だけを拡張機能として、新たなクラスを宣言できる。“`java:構文
public class クラス名 extends 継承元のクラス名{
継承元のクラスとの差分メンバ
}
“`### 2つのクラスの継承関係
* 継承元のクラス: スーパークラス、親クラス
* 新たに定義されるクラス: サブクラス、子クラス### ルール
* 全てを継承するわけではない
* コンストラクタ
* privateなフィールド、メソッド
* 宣言にfinalがついているクラスは継承できない
* 宣言にfinalをついているメソッドはオーバーライドできな
Visual Studio Code Remote – Containersで開発環境をコンテナ化する
## はじめに
Visual Studio Codeの拡張機能`Remote-Containers`を利用して開発環境をコンテナ化するためのテンプレートプロジェクトの様な物を作りました。公式ドキュメントを見てもいまいち設定の全体像が見えてこないので、とりあえず動くものがあると良いかなと考えました。
とりあえず動くものを作ったという感じなのでRemote-Containersの詳細な使い方やカスタマイズは公式ドキュメントをご参照ください。
https://code.visualstudio.com/docs/remote/containers
### Java Spring Bootアプリケーション
https://github.com/rltnm7/devboot
### Python Flaskアプリケーション
https://github.com/rltnm7/devpython
(Flaskについてはド素人なのでアプリケーションの出来はあまり気にしないでください笑)
## 開発環境のコンテナ化
### そもそも開発環境をコンテナ化するとは?
VSCodeには
Javaのパッケージについてまとめてみた(自分用メモ)
Javaのパッケージについてとりあえずまとめてみようと思います。
packageは見たことあると思います。
初めてプログラミング学習をしたときに見る、classの先頭についている“`
package ‘HogeHoge’
“`のようなやつです。
今回はこれが一体何なのか調べてみたので初心者ながらまとめてみようと思います。
パッケージというのは、
“`
ソースの処理は違うが、役割は同じものをまとめたもの
“`です。
よくあるものとして、
「複数のクラスが一つになって行う処理をまとめて管理できるようにしたい」
といったものがあります。
小さいアプリケーションであればいいのですが、Javaを使っていくということは大規模なものを作っていきます。
クラスの数も100以上になっていくでしょう。
そんなときに継承を點せまくってみたらあっという間にスパゲッティな状態になります。そうならないために、Javaのpackageは役に立つのです。
#やり方
packageを宣言するには、まずpackage文というものを作り作成していきます。
まず最初に、packageを作ると
Scalar DBでの例外処理とは
# TL;DR
Scalar DB と Spring Boot を使った API 開発を行う際の例外処理の設計およびその処理方法をまとめてみました。この記事は、以下の記事の続きになります。Scalar DBとSpring Bootを使ったAPIの開発方法について知りたい方は以下の記事をご覧ください。
[Spring BootとScalar DBを用いたAPIの作り方①](https://qiita.com/yoshi-kinoshita/items/5b2c5c713c9cc2fa2915)
[Spring BootとScalar DBを用いたAPIの作り方②](https://qiita.com/yoshi-kinoshita/items/44363a4aeacf83efcff3)
[Spring BootとScalar DBを用いたAPIの作り方③](https://qiita.com/yoshi-kinoshita/items/1cb6c0b11be5ab087ed6)# 目次
1. [例外処理の設計](#例外処理の設計)
1. [Scalar DBでスローされ
Flutterで既存のiOS / Androidアプリに機能追加 (Add-to-app):基本編
# はじめに
お仕事でFlutterで作成した画面を既存のiOSアプリ・Androidアプリに追加する事になりました。
個人的にAndroidとFlutterは多少知識があるのですがiOS(特にObjective-C)の知識が皆無で少し苦戦したので、ネイティブアプリにFlutterモジュールを組み込む手順とハマったときの対応を備忘録的にまとめておきます。既存iOSアプリはObjective-C、AndroidアプリはJavaで実装されているのでこの記事もそれに合わせたものとなっています。
また、iOSアプリではCocoaPodsを使って組み込み、Androidでは`settings.gradle`でFlutterモジュールを追加させています。基本的には以下の公式ドキュメントを参考にしました。
[Add Flutter to existing app \| Flutter](https://docs.flutter.dev/development/add-to-app)# 環境
* MacBookPro M1 BigSur 11.6
* Xcode:12.5.1
* And
Couchbase Lite機能解説:JSONデータ操作
## はじめに
以下のドキュメントの内容をベースに、ドキュメント指向NoSQL組み込みデータベースCouchbase Liteを用いたAndroidアプリ開発におけるJSONデータ操作について、具体的なコードを交えて解説します。
https://docs.couchbase.com/couchbase-lite/3.0/android/document.html
なお、Couchbase Liteについては、[Couchbase Mobileアプリケーション開発へのロードマップ](https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417)に記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。
https://techbookfest.org/product/5074954942939136?productVariantID=5042865933647872
また、Couchbase Serverの存在意義、機能詳細、利用方法等については、拙著[NoSQLドキュメント指向データ
Javaの例外処理を学んだのでメモを取る(自分用メモ)
Javaの学習をしていて、例外処理が出てきたのでメモがてらつくってみようとおもいます。
#例外処理とは
例外処理がどういうところで役に立つのかというと、“`
・処理の最中にサーバーのメモリがオーバーフローした時
・何らかの原因で月末(営業日)にならないと操作してデータを送信できてしまった場合
“`このように、開発者が想定していないエラーが起きてしまった場合の処理は、書かなければならないのですがそのコードが動く頻度が高いわけではないと思います。
それをメインのコードがおいてあるところにおいておいては、うっかりいじってしまう可能性が高くなってしまいます。
なのでそういったことがないように、例外処理を書いておくクラスを作成しておきます。そうすることで、上記の例が起きたときに問題を回避することがしやすくなります。
##例外処理のための基礎文法
###try,catch,finallyを使った命令処理について
“`
try{
例外があるか確認したい文;
}
catch (例外クラス1 変数名1){
そして、例外が起きたときに実行する文(1つ目の例外処理が書い
リーダブルコードのまとめ。 2/2
前回のリーダブルコードまとめの続きです。
### 8章 巨大な式を分割する
– 式を保持する変数(説明変数)を使う
– ド・モルガンの法則を使う。複雑な論理条件はif(a
textView.text = “文字列” はできるのに editText.text = “文字列” とできない理由とは
# 経緯
俺「Javaを使っていたけど、これからはKotlinだ! まずは TextView での文字列の表示のあたりから。」
俺「`textView.setText(“文字列”)` っと。ほとんどJavaと変わらないけど、セミコロンが不要になったのはいいな」
Android Studio「セッターメソッドの呼び出しをプロパティ構文に置き換えられるよ!」
俺「なるほど!プロパティ構文で書けるのか、`textView.text = “文字列”` っと。いいね!」俺「さて、じゃあ TextView の派生クラスである EditText の方も書き換えよう。 `editText.text = “文字列”` っと」
Kotlin「`Type mismatch: inferred type is String but Editable! was expected`」
俺「え?」
Kotlin「`Editable`じゃないとダメです。`String` なら `setText()` を使って。」
俺「…」# 理由
`TextView#getText()` の戻り値の型は `CharS
Commons emailで日本語添付ファイルの文字化け解消
# Commons-emailで簡単メール送信
Javaでメール送信するとなるとJavaMailですが、結構設定が多くて面倒になります。
私が利用しているのはcommons-email (https://commons.apache.org/proper/commons-email/ ) 。
ただ、日本語の添付ファイルをどうやったら文字化けしないように送信できるかにはまりました。
# 解決案
“`java
package mailrectest;import javax.mail.internet.MimeUtility;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.MultiPartEmail;public class SendMailWithAttachFile {
public static void main(String[] args) {
try {
System.setProperty(“m
Javaセキュリティ 10のベストプラクティス
陽が少しづつ伸びてきましたが、寒い日が続きますね。
昔から、問題を抱えつつも幅ひろく使われているJava.
典型的なSQLインジェクションの問題など、今一度振り返り、Javaデベロッパなら知って損はない10のセキュリティプラクティスについてのこちらのブログ記事の翻訳をご紹介しますhttps://snyk.io/blog/10-java-security-best-practices/
#Javaセキュリティ 10のベストプラクティス
Brian Vermeer, Jim Manico
ブライアン・フェルメール、ジム・マニコ
2019年9月16日今回のチートシート編では、オープンソースのメンテナとデベロッパの両者に向けて、10のJavaセキュリティのベストプラクティスに焦点を当てました。本チートシートは、Snyk社のDeveloper AdvocateであるBrian Vermeer氏と、Java Championで[ManicodeSecurity社](https://manicode.com/)の創設者であるJim Manico氏のコラボレーションによるも
Java オラクルAPIドキュメント
JavaGold(SE11)学習の備忘録
黒本で解いた問題に関連して確認したAPIドキュメントのリンク集##オラクルのドキュメント
– [すべてのクラス(日本語版)](https://docs.oracle.com/javase/jp/11/docs/api/allclasses.html)
– [すべてのクラス(英語版)](https://docs.oracle.com/en/java/javase/11/docs/api/allclasses.html)####関数型インターフェース
| インターフェース名 |説明 | メソッド|戻り値 | 日本語 |英語|
|:————|:————|:————|:————|:————:|:———–:|
|Runnable|スレッドからインスタンスを実行する| **run**()|void|[■](https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/lang/Runnable
JARファイルとは
# 「JARファイル」という言葉
SprigでWebAPIを作ろうと参考サイトを見ながら作成を進めていくと
「JARファイル」という言葉が出てきた。# JARファイルとは
簡単に言うとJavaファイルをzip形式で圧縮したもの。
でも普通の圧縮ファイルが解凍して展開しなければ中身を使えないのに対し、
JARファイルは圧縮ファイルのまま中のJavaファイルを実行できる。
「JAR」の名前の由来は「Java Archive(記録、書庫)」から。# 使い方
JARファイルの作成から実行までは以下のサイトが参考になります。
https://www.tech-teacher.jp/blog/java-jar/# 実行までの流れ
適当なテキストエディタでJAVAを書いて、コマンドでクラスファイルにコンパイルします。
さらにjarコマンドでJARファイルに圧縮します。
事項にはマニフェストファイルが必要なのでこれを作成。
最後にjavaコマンドで実行します。# 調べてみて
1年以上javaに触れているが、実行方法については詳しく知らなかった。
他の言語でも実行方法についてあまり勉強で
Mpo100
https://www.jojo-effekt.info/wp-content/slot88/mpo100/
Thymeleafで独自UtilityObjectを作る
# 概要
Thymeleaf側で金額の数値(int)にカンマを入れたい。(例:1000→1,000)
もちろんThymeleafのデフォルトのUtilityメソッド`#numbers.formatInteger`で可能なので適用箇所が少なければ下記で十分だと思う。“`
${price < 1000 ? price : #numbers.formatInteger(price, 3, 'COMMA')} ``` ただ、適用箇所が多いとコピペするにしても各所でいちいち三項演算子を書きたくない。そこで金額専用の独自Utilityメソッドを作って下記のように書けば上記の三項演算子を書いたように出力したい。 ``` ${#customInt.price(price)} ``` ちなみに`price < 1000`をしないと、100未満の場合050みたいに0埋めされてしまう。なので条件式は`price < 100`でも良いと思う。 # 環境 - Java 1.8 - SpringBoot 2.2.1.RELEASE - Thymeleaf 3.0.11.RELEASE # サンプル
APIにGETリクエスト送付時のテストコードを書く
# やりたいこと
・APIにGETリクエストを送るプログラムのテストを書く
・API参照箇所をMockにする### 以下記事を参考にさせていただきました
Mockito 3 + JUnit 5 で基本的なモック化とテストをするサンプルコード
https://qiita.com/niwasawa/items/f8798c981b4d08ecfa55# 参照APIの構築
テスト用に参照用のAPIを構築する
参考 https://spring.pleiades.io/guides/gs/rest-service/# 2つのクラスを作ります
実行するクラスとリクエストを送るクラスを作成する**実行クラス**
“`Java:App.java
public class App {
public String send_request(int user_id) throws MalformedURLException, IOException {
return request.send(user_id);
}
}
“`**リクエスト送付クラス
SQLServerの2100個問題のひとつの解決策として、テーブル値パラメーターを利用する
useridを主キーとして、ユーザの情報を格納する、以下のようなテーブルがあるとします。
“`sql
CREATE TABLE users (
userid INT NOT NULL PRIMARY KEY,
username NVARCHAR(100) NOT NULL
);
“`複数のuseridがあたえられて、その情報をusersテーブルから取得したいという場合、以下のようなクエリになると思います。
“`sql
SELECT *
FROM users
WHERE userid IN (?, ?, ? …)
“`**問題は、SQLServerではこのプレイスホルダが2100個を超えるとエラーになることです。**たとえば、以下のようなコードで上記のようなクエリを動的に生成したとします。
“`java
int[] userids = …;// SELECT * FROM users WHERE userid IN (?, ?, ?) のようなクエリを構築する。
String sql = “SELECT * FROM