- 1. ABC268A~Dの解答[Java]
- 2. (初心者向け)AndroidStudioを使ってギャラリーアプリを作る
- 3. 【Java Silver SE11】検証環境をdockerで構築する
- 4. Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較
- 5. Exchange Onlineの基本認証廃止で普通に困ってる人のためのエントリ
- 6. Keycloakによる認証基盤の立ち上げ(2) Quarkus版
- 7. DynamoDB StreamsのデータをKinesis Client Library (KCL) で処理する方法
- 8. Javaで同時実行スレッド数を制御するコンポーネントを作ってみた
- 9. Python,Ruby,PHP,Java,JavaScript,Perlの例外処理の比較
- 10. 文字列を桁数で区切る
- 11. 【Java基礎】クラスの作り方
- 12. Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
- 13. コンパイル時に文字化けを防ぐ方法(Java)
- 14. helloworld.javaの奮闘(更新)
- 15. 配列のcloneメソッドについて
- 16. SuperCSV便利機能二選(変換処理編)
- 17. Python,Ruby,PHP,Java,JavaScript,Perlの文法・構文の比較
- 18. eclipse4.8 で maven で wabapp(servlet, jsp) の雛形作成
- 19. 【Java】Json文字列をオブジェクトに変換
- 20. javacをtomcatで使う
ABC268A~Dの解答[Java]
## はじめに
今回も4完出来たのでDまで載せようと思います。では見ていきましょう。
## A – Five Integers
問題文は[こちら](https://atcoder.jp/contests/abc268/tasks/abc268_a)[公式解説](https://atcoder.jp/contests/abc268/editorial/4779)のように全部比べていっても良いですが、今回はHashSetを使ってみました。
Setで要素の重複はしないので、単純にsize()を出力すれば良いです。
“`A.java
class Main{static Library System = new Library(java.lang.System.in,java.lang.System.out);
public static void main(String[] args)throws IOException{
//重複を弾くためのHashSet
HashSetlist = new HashSet ();
(初心者向け)AndroidStudioを使ってギャラリーアプリを作る
### 環境
– Windows10 21H2
– Android Studio Chipmunk | 2021.2.1 Patch 1### 使用するライブラリ
– [glide](https://github.com/bumptech/glide) 4.13.2今回は Java を使用して簡易的なギャラリーアプリを作っていきます。
完成するとこのようになります。
\*記事中でこの部分が間違っているやこの方法の方が良いという部分がありましたら教えていただけると幸いです。
それでは始めましょう!
## 下準備
まずは、マニフェストファイルに`【Java Silver SE11】検証環境をdockerで構築する ## 概要
Java Silver SE11の検証用環境をdockerで構築する。
[今回はgithubにソースを置いときました。](https://github.com/hagemanto-saitama/openjdk11)
こちらをベースに説明していきます。
※dockerとdocker-composeの環境が整っていることが前提です## Java Silverおすすめの勉強方法
なぜdockerで環境を構築するのか、に関係するのがこれ。
Java Silverの試験対策で、個人的におすすめなのが、
コード検証を
**テキストエディタで編集+コマンドラインでコンパイル&実行**
で行うこと。
理由は以下の通り。
– コマンドを自然と覚えられる。
→コマンドも試験に出てくるため、わざわざ頑張って暗記するよりも自然に覚える方が楽
– ディレクトリ構成が自然と頭に入ってくる。
→ファイルを跨いだ継承やモジュール関係の箇所は、
実際にディレクトリ、ファイルを作成してコンパイル&実行を行うと頭に入ってきやすい。
– コンパイルエラー、例外、実行時エラー等の違いが経験として蓄積できる
→
Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較
Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較
# Python
https://qiita.com/Morio/items/10d33f6dbb0845ae5038
# Ruby
https://qiita.com/Hashimoto-Noriaki/items/f406bcfb00e79e3937d0
# PHP
https://qiita.com/miriwo/items/2c2aa77d5de66c074ec5
# Java
https://qiita.com/takahirocook/items/05bfe37bb4ba64f3a78e
# JavaScript
https://qiita.com/kaz7991/items/7f98cc17c4df9ab6a009
# Perl
https://perlzemi.com/
Exchange Onlineの基本認証廃止で普通に困ってる人のためのエントリ
# はじめに
基本認証を使っている方は2022年10月1日からExchange Onlineに接続できなくなります。
ある日会社に行ったら、Xデー迄あと1か月ないので至急対処してくれとお達しが来ていました。
現実を受け止めきれなかったのですが、公式声明文が出ていたので、どうやら本当のようです。https://docs.microsoft.com/ja-jp/exchange/clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-exchange-online
ということで、この記事は次のような人に向けて書かれています。
– OfficeのメールボックスをIDPWで開いてなんやかんやする自家製アプリを書いている。
– 2022年10月1日までにOAuth2.0認証に切り替えないといけないし、何ならもう10月1日になった
– 正直何からやっていいか不明だし何で検索すればいいかよくわからない
– こんなことをやっている場合ではないし、とにかく悲しい# 要点
## Azure ADにアプ
Keycloakによる認証基盤の立ち上げ(2) Quarkus版
# この記事の概要
– 以前 [Wildflyベースで立ち上げたKeycloak環境] が壊れたのを機に、Quarkusベースで再立ち上げ。
– Keycloakについては、前項記事を参照。
[Wildflyベースで立ち上げたKeycloak環境]:
# やってみる
[Get started with Keycloak on bare metal] によると、OpenJDK 11以降が必要になったとのこと。
[Get started with Keycloak on bare metal]:
32bit Windows環境では選択肢少ないが、Zulu 17 JDKをscoopから入れる。
“`
> scoop install zulu17-jdk
“`Keycloak本体は、こんな感じでbucket自作。
“`keycloak.jso
DynamoDB StreamsのデータをKinesis Client Library (KCL) で処理する方法
# 概要
DynamoDB StreamsのレコードをKCLを使用して処理する方法です。[AWSの公式ドキュメント](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Streams.KCLAdapter.Walkthrough.CompleteProgram.html)に実装例が示されています。
この実装例は、
1. DynamoDBにテーブルを生成する
1. DynamoDBのレコードを作成(更新、削除)する
1. レコードの更新を受け、DynamoDB Streamsにレコードが流れる
1. DynamoDB Streamsに流れたレコードを処理するというものですが、実際には一連の処理を1つのアプリケーションで行うことはないかと思い、DynamoDB Streamsに流れたレコードを処理する部分(4.)にフォーカスを当てる形で作り替えました。
# 使用した技術
– Java 17
– [localstack](https://github.com/localstack/loca
Javaで同時実行スレッド数を制御するコンポーネントを作ってみた
訳あって同時実行数を制御する処理が必要そうなので・・・Javaで実現するとしたら「こんな感じかな〜」というのを作ってみました。完全に個人メモです。
もっと良いやり方や、OSSのこれ使えば同じことできるよ〜みたいなのあれば是非コメントを!!
# やりたいこと
* 同時に処理を行うスレッド数(=最大同時実行スレッド数)を指定できること
* 「最大同時実行スレッド数」に達している際は空きがでるまでキューインングできること(+キュー数も指定できること)
* キューイング状態で待つ最大時間(=無限に待たないようにタイムアウト)を指定できること
* 「最大同時実行スレッド数」+「キュー数」を超える状態を検知したら拒否時の処理を実装できること# 作ってみたコンポーネント
“`java
package com.example;import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.Semaphore;
Python,Ruby,PHP,Java,JavaScript,Perlの例外処理の比較
Python,Ruby,PHP,Java,JavaScript,Perlの例外処理の比較
# Python
https://qiita.com/imuimu/items/7f27d156dd0f6507803b
# Ruby
https://qiita.com/k-penguin-sato/items/1a6c8096effccb19565a
# PHP
https://qiita.com/wakahara3/items/bcadef53367097765c82
# Java
https://qiita.com/ts7i/items/d7f6c1cd5a14e55943d4
# JavaScript
https://qiita.com/andota05/items/fc1e340642be42ca47c0
# Perl
https://perlzemi.com/blog/201
文字列を桁数で区切る
“`java
String mojiretsu = “12あ41 345 23111”;
String conv = “”;
for(int i = 0; i
【Java基礎】クラスの作り方
# はじめに
最近Java基礎の研修を受けました。学生時代にJavaを授業で習って基礎は身につけていたのですが、忘れていた内容もあったので備忘録として書き残してみます。この記事では、**Javaの基礎的な内容に関してまとめていきます**。
今回は**クラスの作り方**です。# クラスの構成
クラスは以下の3つで構成されます。
+ **フィールド**:インスタンスのデータを保持する変数
+ **メソッド**:オブジェクトが持つ動作
+ **コンストラクタ**:クラスからインスタンスを生成する時に自動的に呼び出される処理これらのクラスの構成要素のことを**メンバー**と呼びます。
“`java:クラス例
class Person {
// フィールド
private String name;
private int age;// コンストラクタ
public Person(String name, int age) {
this.name = name;
this.age = age;
Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
Python,Ruby,PHP,Java,JavaScript,Perlのライブラリ・モジュールの比較
# Python
https://qiita.com/ryuichi1208/items/cb5f850a9811d2a4bc3a
# Ruby
https://qiita.com/sugamaan/items/d7871da28c0160b69609
# PHP
https://qiita.com/mikakane/items/2719df714df5b3fc6adf
# Java
https://qiita.com/haruto167/items/162551100449ea5c7e6d
# JavaScript
https://qiita.com/Nako4/items/1d8eaf731bf4370b84a7
# Perl
https://perlzemi.com/b
コンパイル時に文字化けを防ぐ方法(Java)
# 結論
“`
javac -encoding UTF-8 ファイル名.java
“`
とする。
# 参考文献
https://yama-shu99.hatenablog.com/entry/2020/01/19/194028
helloworld.javaの奮闘(更新)
https://atmarkit.itmedia.co.jp/ait/articles/0710/11/news121_2.html
↑これでトムキャットのサンプルファイル使ったウェブページ表示に苦戦## 壁1:サンプルファイルのコンパイルに失敗
“`HelloWorld.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request
,HttpServletResponse response)
throws IOException, ServletException{
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
配列のcloneメソッドについて
Java silverの学習において、
何度か配列のcloneメソッドで間違えたので、忘備録を残す。## 配列のcloneメソッド
名の通り、配列のコピーを行うもので、同じ値を持った配列インスタンスが複製される。“`java:
int[] arrayA = {1,2,3};
int[] arrayB = arrayA.clone();
System.out.print(arrayA == arrayB); //false
“`上記だと、arrayAとarrayBには同じ{1,2,3}の値が入っていることになるが、
配列のインスタンスを複製しているので同一ではない。### 注意したい点
配列をcloneすると同じ値を持った配列インスタンスが複製されますが、
参照先は同じなので、以下はtrueになる。“`java:
int[][] arrayA = {{1,2,3},{4,5,6}};
int[][] arrayB = arrayA.clone();
System.out.print(arrayA[0] == arrayB[0]); //true
“`
SuperCSV便利機能二選(変換処理編)
# null消去
CSV取り込み時にNULLがある場合、CSV取り込み時に別の値へ置き換えることができる。
## 基本的な使い方
– value()で、変換する値を指定します。
– 読み込むときには、それぞれのタイプの書式に沿った形式を指定する必要があります。もし、間違った書式で定義した場合は、CSVファイルの値が不正なときと同様にエラーとなります。
– アノテーションCsvNullConvertと併用する際には、処理結果が互いに変換対象となるため、 属性cases()やgroups()で適用するケースを分けるようにしてください。“`java
@CsvBean
public class SampleCsv {// クラスタイプに沿った値を指定します。
@CsvColumn(number=1)
@CsvDefalutValue(“0”)
private Integer id;// 書式が指定されている場合は、書式に沿った値を指定します。
@CsvColumn(number=2)
Python,Ruby,PHP,Java,JavaScript,Perlの文法・構文の比較
Python,Ruby,PHP,Java,JavaScript,Perlの文法・構文の比較
# Python
https://qiita.com/Fendo181/items/a934e4f94021115efb2e
# Ruby
https://qiita.com/Fendo181/items/eb2cb17f32d99aa01f59
# PHP
https://qiita.com/7968/items/d739e926189e219273bd
# Java
https://qiita.com/tomonori_hioki/items/cec47a366208d43d7339
# JavaScript
https://qiita.com/Fendo181/items/cca476da99e8f09b6b97
# Perl
https://perlzemi.com/blog/2
eclipse4.8 で maven で wabapp(servlet, jsp) の雛形作成
eclipse4.8 で maven の webapp(servlet, jsp) の雛形を作るとエラーがいくつかあったりしたので備忘録でメモ
使った eclipse は `pleiades-4.8.0-java-win-64bit-jre_20180923`
プロジェクト作成時に標準のディレクトリ構成がいくつかなかった…## maven プロジェクト作成
1. 右クリック – [新規] – [プロジェクト]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51758/2f412f23-aaf3-acb1-e70b-9d758a93a05a.png)
1. [Maven] – [Maven プロジェクト] – [次へ]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51758/09ee2f44-577d-8c85-f9b4-c2faece50e2b.png)
1. デフォルトのまま
【Java】Json文字列をオブジェクトに変換
# はじめに
jsonをjavaクラスに変換する方法をまとめました。
以下のエラーに悩んだので原因と解決方法も書いています。
“`com.fasterxml.jackson.databind.exc.InvalidDefinitionException“`## Json⇒javaクラス変換
mainクラス
“`java
String sjson = “{\”id\”: 1, \”name\”: \”Tanaka Taro\”, \”gender\”: \”Man\”, \”age\”: 23}”;ObjectMapper mapper = new ObjectMapper();
BaseballPlayer player = mapper.readValue(sjson, BaseballPlayer.class);
System.err.println(player.getName());
“`
BaseballPlayerクラス
“`java
public class BaseballPlayer {
private
javacをtomcatで使う
https://atmarkit.itmedia.co.jp/ait/articles/0710/11/news121_3.html
tomcatコンテナ内に上のリンクを参考にhelloworldのサンプルファイル作ろうとしたときにjavacというコンパイルに必要なコマンド必要だとわかったのでメモ
結論:
JDK(Javaの開発キット)にそのコマンドが含まれている&tomcatにapt系コマンドがもともと入っていたので以下のコマンドでインストール
“`
apt-get install default-jdk
“`
aptでインストール:https://www.linuxmania.jp/apt-install-java.html
JDKは開発キット:https://techacademy.jp/magazine/22220