- 1. Java 16 から利用可能な Unix ドメイン ソケット
- 2. 2重登録制御
- 3. 【Java】ハッシュユーティリティを列挙型とチェーンな感じで書いてみた
- 4. 【メモ】 JSON 概要
- 5. 【解説】AtCoder Beginner Contest 197【A~C問題】
- 6. 【Spring Boot】SOAPクライアントの実装
- 7. Java黒本著者の「オブジェクト指向の基礎」Youtube動画が分かりやすかったのでまとめメモ
- 8. Javaの開発環境 ~JDK(Java Development Kit)~
- 9. [Spring Batch] ItemWriter内でJPARepositoryを使用してデータの更新を行う
- 10. デスクトップマスコットを作ってみる。【マスコットの表示編】
- 11. デスクトップマスコットを作ってみる。【マウスの操作編】
- 12. JavaとJavaScriptの違い
- 13. 【続】Codelabsの通知機能の実装をViewModelを使って書き換えてみた
- 14. 市場に価値を提供できるエンジニアになる
- 15. jsp内の九九表
- 16. 通院メモ管理システムが完成いたしました
- 17. 【Java】文字列を結合する方法(join)
- 18. 【Java】数値と文字列の変換方法 (valueOf)
- 19. クッキーをブラウザで覗いてみる/JQuaryで設定
- 20. Helidon MP, WebAuthn4JでFIDO2(WebAuthn)
Java 16 から利用可能な Unix ドメイン ソケット
Java 16 で [JEP 380: Unix-Domain Socket Channels](https://openjdk.java.net/jeps/380) が取り入れられました。今回はこれをご紹介します。
名前の通り、Unix で使われてきたものですが、Windows 10 April 2018 Update 以降は Windows でもサポートされています。Windows Subsystem for Linux (WSL) や Docker コンテナのように、ホスト OS 上の Unix と通信したい場面が増えたためだと思われます。
私なりにわかりやすくご紹介しようと思いますが、にわかユーザーに過ぎませんので、正確な情報や参考になる実装コードがほしい方は、ぜひ JEP 380 のオーナーさんによる [Inside Java – JEP-380: Unix domain socket channels
](https://inside.java/2021/02/03/jep380-unix-domain-sockets-channels/) ([Logico Insid
2重登録制御
#### トーク制御
トークン制御は登録、更新、検索処理をボタンなどに対して、ボタンの二重クリックを防止する。### 代表的な制御方法
#### 1.javaScript
更新処理を行うボタンを押下した際に、JavaScriptによるボタン制御を行うことで、2度押しされた際にリクエストが送信されないようにします。– ボタンやリンクを非活性化することで、ボタンやリンクを押下できないように制御します。
– 処理状態をフラグとして保持しm処理中にボタンやリンクが押された場合に処理中であることを通知するメッセージを表示します。
などがあげられます。#### 2. PRG(Post-Redirect-Get)パターン
更新処理を行うリクエスト(POSTメソッドによるリクエスト)に対する応答としてリダイレクトを返却し、その後ブラウザから自動的にリクエストされるGETメソッドの応答として遷移先の画面を返却するようにします。
PRGパターンを適用することで、画面表示後にページの再読み込みを行った場合に発生するリクエストがGETメソッドになるため、更新処理の再実行を防ぐことができます。
【Java】ハッシュユーティリティを列挙型とチェーンな感じで書いてみた
# 0. INDEX
– 概要
– ハッシュユーティリティを書いてみた
– あとがき# 1. 概要
列挙型を使ってtypoしないぞ計画!
ってそこまで大層なものじゃないけど、いつものようにあれば使うよなって奴です。# 2. ハッシュユーティリティを書いてみた
## 2.1. 動作サンプル
https://paiza.io/projects/l7JLOgpc_dJpGXJ75gFhqA## 2.2. 使い方
こんな感じでupdate関数を繰り返せるチェーンメソッド仕様です。“`java
String result = MessageDigestUtil.SHA256
.update(“hello”.getBytes())
.update(“everyone”.getBytes())
.toHexString();System.out.println(result);
“`## 2.3. ソースコード
“`java:MessageDigestUtil.java
package jp.go.mahny_conf.jun
【メモ】 JSON 概要
JSONを初めて使用したので、概要だけまとめておく。
おおむね、下記の3パターンを階層的に組み合わせていく。
## オブジェクト型
### json
“`
{
“id”: “001”,
“name”: “taro”
}
“`### java
“`
// マッピング
JsonSampleBean bean = mapper.readValue(json, JsonSampleBean.class);// Beanの定義
package com.example.app.bean.json.request;import lombok.Getter;
import lombok.Setter;/**
* JSONマッピング用のオブジェクト。
*
* @author start
*/
public class JsonSampleBean {/** ID */
@Getter
@Setter
private String id;/** 名称 */
@Getter
@Setter
private String name;}
“`
【解説】AtCoder Beginner Contest 197【A~C問題】
#はじめに
オイイイイイイイイイイイイッス!どうも、歌うプログラマのことり兄貴(・8・)です!
「AtCoder Beginner Contest 197」、お疲れさまでした~
昨日はかなりやらかしました…レート-30…
バタバタしてたので動画もないですw
まあ2完でしたが、Cまで書いてみたいと思います。今回はJavaとPythonの両方で書いてみます。
#目次
[1.A – Rotate](#1-a—rotate)
[2.B – Visibility](#2-b—visibility)
[3.C – ORXOR](#3-c—orxor)
[4.おわりに](#4-おわりに)#1. A – Rotate
####問題
長さ3の文字列Sが与えられます。
Sの先頭の文字を末尾に移動した文字列を出力してください。####制約
・Sは英小文字のみからなる長さ3の文字列
[A問題リンク](https://atcoder.jp/contests/abc197/tasks/abc197_a)####考察
文字列のインデックス番号で考えます。3文字の文字列の
【Spring Boot】SOAPクライアントの実装
はじめに
–
SpringBootでのSOAPクライアント実装方法について記載します。
あまり使われなくなったSOAPですが、たまに使うので備忘として。環境
–
– Spring Boot 2.3
– spring-ws-core
– Java 8ライブラリの追加
–
spring-ws-coreを依存関係に追加します。“`xml:pom.xm
org.springframework.ws
spring-ws-core
“`WSDLからソース生成
–
maven-jaxb2-pluginを使用します。
pom.xmlに下記を定義し、実行することでSOAPサービスのRequest/ResponseのBeanが生成されます。
データ定義をXSDに切り出している場合にも対応しています。#Gradle版がなくすみません…。いつか試して追記したいです。
“`xml:pom.xml
Java黒本著者の「オブジェクト指向の基礎」Youtube動画が分かりやすかったのでまとめメモ
[Oracle Certified Java Programmer認定試験](https://www.oracle.com/jp/education/certification/jse11-5570635-ja.html#2)の問題集(いわゆるJava黒本)の著者である志賀澄人さん([@betteroneself](https://twitter.com/betteroneself?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor))が解説する「オブジェクト指向の基礎」の動画がとても分かりやすかったので、個人のメモがてら共有します。
動画の再生リストは以下でご覧になれます
なお、動画は全部で12本あるのですが、どれも6~10分ほどでサクッとみることができます。
この記事は自分のメモがてらでかなり端折っていますが、動画では図も交えて分かりやすくなっているので、全編見てみることをお勧
Javaの開発環境 ~JDK(Java Development Kit)~
#Java Development Kitとは?
日本語でjava開発キットと呼ばれています。Javaの開発に必要な各種ツールが入ったアプリケーションです。このJDKにはJavaコンパイラとJava仮想マシンが入っています。-Javaコンパイラ :Java用のファイルにプログラムを変換する。
-Java仮想マシン :Java用のファイルを読み取り実行する。#Javaにおけるプログラミングとは?
プログラムというのは一般的に、まず、人間語で元ネタ(ソースコード)を作ります。
人間語で書かれたプログラムの元ネタファイルは「ソースファイル」です。
#↓次にコンパイル(編集)という作業を通して、コンピュータが分かる形に変換します。
#↓
これでコンピュータさんは、プログラムの内容を理解できるようになりました。
あとは実際に動かします。
#↓
いろいろと端折りましたが、これが、プログラムができるまでの流れです。プログラムを作るときには、コンパイルしてくれるやつ(コンパイラ)が必要です。
他にも、必要なものや、あると便利なものが、あれやこれやとあります。以上を踏まえてJav
[Spring Batch] ItemWriter内でJPARepositoryを使用してデータの更新を行う
# はじめに
Spring BatchのChankモデルではDBからデータを一括で取得するReader, 取得したデータに対しビジネスロジックを追加するProcessor, DBへデータの更新を行うWriterの3層構造になっています。WriterにSQLを渡してデータの永続化を行う方法では、同時に2テーブルの更新ができないので、今回Writerで2つのテーブルの更新を同時に行う方法を記述したいと思います。# シナリオ
実際の例題があった方が書きやすいので…
例えば、とあるサービスの会員申請フォームから新規会員登録の申請情報を格納するテーブル`registration`と
会員テーブル`user` を用意して、`registration`からビジネスロジックを加えて`user`へ一括INSERTをすることを考えます。
めちゃめちゃシンプルにテーブルは`registration`テーブル(会員登録申請テーブル)
“`
user_name, // ユーザの名前
status // 処理ステータス(未処理0, 完了1, エラー9)
“``user`テーブル(会員
デスクトップマスコットを作ってみる。【マスコットの表示編】
# 初めに
この記事は以下の記事で作成していた内容と同じですが、
作成中に方針を変えたため、別記事としています。
[JavaFX+Kotlinでデスクトップマスコットを作ってみる。【マスコットの表示編】](https://qiita.com/urado/items/140293b94cac2424dc02)上記ではJavaFXとKotlinで作成していましたが、
マスコットアプリ作成のライブラリとして公開する際に、
依存関係が増えないようにするため、javaのみで実行できるように変えています。そのため、以降の記事からはJavaFXもKotlinも出てきません。
(ライブラリとしてリリースされた内容をKotlinで使用することは可能なはず)ということで、似たような内容にはなると思いますが、行ってみましょう!
#環境
環境も変わってます。* windows10
* Eclipse 2019-12 (4.14.0)# プロジェクトの作成
Eclipseを起動したら、パッケージエクスプローラを右クリックでプロジェクトを作成しま
デスクトップマスコットを作ってみる。【マウスの操作編】
# 初めに
前回の記事ではマスコットの表示と反転までを作成しました。今回はマウスで動かせるように処理を追加していこうと思います。
JavaFXで行っていた時と異なり、マウスイベントについて実装を変える必要があったので
そのあたりが中心になります。# MouseListenerの関数型インターフェース化
JavaFXで作成していたころはFxmlにイベントを定義していましたが、
今回からはSwingを使用しているため、同じようにはいきません。JFrameのマウスイベントを設定するためには**MouseListener**インターフェースを
実装する必要があります。このインターフェースにはマウス操作の必要なメソッドがずらっと定義されています。
これは関数型インターフェースではないため、ラムダで記述できないのです。マウスイベントごとに実装クラスを作成したり、何かしらの条件分岐を作れば
実現可能と思いますが、めんどくさい・・・悩んだ自分はどうしたかというと、こうしました。
“`java:JDIMouseClicked.java
@Functional
JavaとJavaScriptの違い
#JavaとJavaScriptの違い
まずJavaとJavaScriptは全く違うプログラミング言語です。そもそもこの二つの言語は違う目的で使われます。
#Javaとは
javaは環境に依存せずに開発を行えます。そしてJavaはシステム開発、Web開発、アプリケーション開発と、使える場面が多岐にわたり、さまざまな開発に利用されています。
#JavaScriptとは
Webページの見栄えをよくしたいユーザーが使用して、主にデザインや簡易的な処理をブラウザ上のみで行えるようにした言語。
JavaScriptの特徴は、あまりプログラミングの知識もなく、開発環境がそろっていなくても手軽に始めることができる点です。
# 具体的にどう違うか?
#1 開発した会社が違う
そもそも開発した会社は違うのでその目的や文法、利用される分野も異なります。
#2 目的が違う
Javaは「Write Once, Run Anywhare(一度プログラムを書けば、どんなハードウェアでも動作する)」ことを目指して開発されました。
JavaScriptは、容易に開発できる手軽さと素早さを求めて
【続】Codelabsの通知機能の実装をViewModelを使って書き換えてみた
[前回](https://qiita.com/kilalabu/items/ca420f2346635efe19a8)の続き
[タスク2:通知を更新またはキャンセルする](https://developer.android.com/codelabs/android-training-notifications#3)を参考に通知機能を実装してみた。|update|cancel|
|—-|—-|
|![update.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/ddf7246f-4f77-603f-5f7c-55e59e389192.gif)|![cancel.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670405/8e69d8c0-2261-e0aa-f122-5104baf70390.gif)|## 実装
### layout
`android:enabled`でボタン操作をコントロール
市場に価値を提供できるエンジニアになる
初めまして、中島聡さんの様な伝説のエンジニアになりたく、これからエンジニアを目指すことに決めました。
これからの目標はこんな感じです。
1〜3年目
エンジニアとして経験を積みながら、システム開発に必要な知識を習得し、顧客の要望に応えられる能力を身に付け、機械学習を学び、レコメンド機能などを使ったサービスを考える。4〜5年目
プロジェクトリーダーになり、チーム全体の進捗管理など、前職で培ったマネジメント能力を活かす。6年目以降
予算の収支を意識しながら、プロジェクトを成功に導けるプロジェクトマネジャーとして活躍。最終目標は市場に価値を提供できるエンジニア、自分の作ったサービスを多くの人に使ってもらうです!!
皆様、よろしくお願い致します。
jsp内の九九表
“`kuku99.html
jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Insert title here
九九表 <% for(int i=1;i<=9;i++){ %>
<%for(int j=1;j<=9;j++){ %> <%=i*j %> <%} %>
<%} %>
“`![スクリーンショット 2021-03-28 14.48.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101
通院メモ管理システムが完成いたしました
通院メモ管理システムが完成いたしました。
Javaで1クラスで作成いたしました。
ソースコードはこちらです。“`java
//
// 通院リストプログラム
// 新規作成 2021/03/28(Ver1.0)
// 作成者 乃木坂46好きのITエンジニア
//
//
//
//
//
//
// 所属パッケージの定義
package mental;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;public class mantal {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String hiduke = “”;
String memo = “”;
int flag =0;
//日付入力処理
while (flag==0) {
System.out.println(“日付を自由に入力してくださ
【Java】文字列を結合する方法(join)
# はじめに
本記事ではJava8で追加されたStringクラスのjoinメソッドについてアウトプットします。#使い方
・指定された引数で文字列を結合します。
・1つ目の引数は区切り文字を指定し、2つ目の引数に結合する文字列を指定します。任意の数を指定できます。
・文字列の結合時に新たなインスタンスは生成されます。(StringBuilderを使うよりも遅くなる)
・文字列がnullの場合、nullという文字が追加されます。“`java
public static String join(CharSequence delimiter,CharSequence… elements)
“`“`java
public class Sample {
public static void main(String[] args) {String a = String.join(“”,”A”,”BC”,”D”);
System.out.println(a);// ABCDStri
【Java】数値と文字列の変換方法 (valueOf)
# 数値を文字列に変換
valueOfメソッドで数値を文字列に変換できます。“`java
public class Sample {
public static void main(String[] args) {int num1 = 2021; // int型
String a = String.valueOf(num1);//String型に変換
System.out.println(a);//2021long num2 = 2021; // long型
String b = String.valueOf(num2);//String型に変換
System.out.println(b);//2021double num3 = 2021.21; // double型
String c = String.valueOf(num3);//String型に変換
System.out.println(c);//2021.21
}
}
“`# 文字列を数値に変換
valueOfメソッドは文字列を数値に変換することもできます。`
クッキーをブラウザで覗いてみる/JQuaryで設定
クッキー情報の取得方法などを学習がてらまとめて書いてみます。
クッキーの仕組みをまとめた記事はこちらがとてもわかりやすかったです。こちらを読んだ上or理解された上でお気軽にお読みいただければ幸いです!https://qiita.com/7968/items/ce03feb17c8eaa6e4672#%E8%87%AA%E5%88%86%E3%81%AE%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8Bcookie%E3%82%92%E7%A2%BA%E8%AA%8D
##ブラウザ
Chromeでは標準でクッキーを情報を見ることができます。
Chromeで検証モードに切り替え、Applicationタブを選び、その中のクッキーのアイコンの場所に、今見ているサイトのurlが表示されています。
こちらをクリックすると、そのサイト持たせているクッキー情報が、キーとバリューで表示されています。
サイトにより持たせている情報も
Helidon MP, WebAuthn4JでFIDO2(WebAuthn)
# 始めに
JavaでFIDO2のRelying Partyを実装してみました。自分用の備忘録として残しておきます。
# 構成
作ったサンプルコードは[リポジトリ](https://github.com/shukawam/fido2-example)に格納してあります。リポジトリルートの`docker-compose.yml`を使用すると、以下の構成が起動されます。
![architecture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560068/1ee5d6dc-da79-cf9d-314b-452779e2ce92.png)
構成図にも記されていますが、こんな技術スタックで作ってみました。
– Relying Party
– Java
– [Helidon MP](https://helidon.io/#/)
– Oracle主導で開発している軽量フレームワークで、今回はREST APIの実装用途で使っています
–