技術メモ

技術メモ

ラフなメモ

Java

CompletableFutureでJavaの非同期処理を試す

CompletableFutureの公式ドキュメントはこちら CompletableFutureはタスク並列の記述に向いています。

Springのトランザクション管理機構を試す

宣言的トランザクション管理 トランザクションそのものの説明は割愛します。本稿ではSpringの @Transaction を用いたトランザクション管理機構について考えてみます。 概要 宣言的トランザクションのイメージから掴んだほうがわかりやすいと思います。以下の…

Springの非同期処理機構を試す

Springの非同期処理を試してみます。まずは公式チュートリアルを試しました。

Semaphore(セマフォ)でスレッドの流量を制御する

概要 Semaphore(セマフォ)とはリソースへの同時アクセススレッド数を制御することができる機構です。Semaphoreには計量Semaphoreと二値Semaphoreがあります。java.util.concurrent.Semaphore は計量Semaphoreです。 https://docs.oracle.com/javase/jp/8/doc…

SQSをjava-sdkで試してみる

SQSをJavaのSDKを用いて試してみます

ThreadLocalを試す

概要 https://docs.oracle.com/javase/jp/8/docs/api/java/lang/ThreadLocal.html このクラスはスレッド・ローカル変数を提供します。これらの変数は、getメソッドまたはsetメソッドを使ってアクセスするスレッドがそれぞれ独自に、変数の初期化されたコピー…

gRPCに入門する

公式ドキュメントをベースにgRPCに入門します。

Javaのシリアライズ・デシリアライズを試す

Javaのシリアライズ・デシリアライズについて学びます。

Javaのjava.nioを試してみる

ノンブロッキングI/OをJavaで扱うにあたって、 java.nio について学んでおきます。

JavaでいろいろなEcho Server/Clientを作る

JavaのSocket通信を試してみたいと思い、いろいろなEcho Server/Clientを実装しました。 Socket通信に関連するクラスは java.net にまとまっています。

Javaのデザインパターンを整理(振る舞い編)

Javaのデザインパターンについて復習します。プログラムをデザインするにあたって、参考にできる引き出しは多く持っておきたいです。

Javaのデザインパターンを整理(構造編)

Javaのデザインパターンについて復習します。プログラムをデザインするにあたって、参考にできる引き出しは多く持っておきたいです。

Javaのデザインパターンを整理(生成編)

Javaのデザインパターンについて復習します。プログラムをデザインするにあたって、参考にできる引き出しは多く持っておきたいです。

Javaのリフレクションでフィールドを扱ってみる

リフレクションの勉強をします。今回はフィールドに関するリフレクションについて勉強します。

Javaのリフレクションでメソッドを試す

リフレクションの勉強をします。今回はメソッドに関するリフレクションについて勉強します。

Javaのリフレクションを使ってインスタンス生成を試す

リフレクションの勉強をします。リフレクションといってもカバーする領域が広い(応用範囲が広い)ので、今回はインスタンスの生成に関するリフレクションについて勉強します。

java.util.concurrentを試す

いくつか java.lang.Thread の使い方を見てきました。今回は java.util.concurrent にあるいくつかの仕組みを試してみようと思います。

JavaのThreadGroupを試してみる

EffectiveJavaの「項目73 スレッドグループを避ける」にあるようにThreadGroupを自前で実装することは少なそうです。しかしその概念を知っておくのは有用と思われるので試してみました。

Javaのinterruptを試す

スレッドのキャンセルについて勉強します。

Javaのwait,notify,notifyAll,yieldを試す

スレッド間で通信するための仕組みに wait(), notifiAll(), notify() があります。またスレッドのCPUリソースの委譲に yield() があります。各メソッドを試してみようと思います。

Javaでsyncronizedを試す

スレッドまわりの勉強のために以下の本を読んでいます。(第14章:スレッド) プログラミング言語 Java 第4版作者: ケンアーノルド,デビッドホームズ,ジェームズゴスリン,Ken Arnold,David Holmes,James Gosling,柴田芳樹出版社/メーカー: 東京電機大学出版局…

Groovyに入門した

Gradleに入門するにあたって予めGroovyの記述方法について理解しているほうがGradleのbuild.gradleの記述方法がわかりやすくなると考えています。この記事では、groovyに関する一通りの文法を抑えることをゴールとします。

SpringJDBCを試す

SpringJDBCを試してみました。

org.springframework.beans.factory.NoSuchBeanDefinitionException が出たときの対処

TL;DR どういうときに起こるかというと、端的に言えばコンポーネントを注入しているけれども、コンポーネントがDIコンテナに存在しない/参照できていない場合に発生します。具体的な例を見てみます。

リファクタリングを読んだ【仕掛り】

点検読書 全体として何に関する本か?何がどのように詳しく書かれているか? 対象の読者 著者はどのような構成で概念や知識を展開しているか? 第1, 2章 第3章 第6章:メソッドの構成 メソッドの抽出 メソッドのインライン化 一時変数のインライン化 問い合…

「現場で役立つシステム設計の原則」の感想

書籍 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法作者: 増田亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: Kindle版この商品を含むブログ (4件) を見る 感想 かなりさらっと読めてしまった。プログラム…

JavaO/RマッパーであるDomaを試してみる

Doma の Tutorial をやってみる 公式のチュートリアルが丁寧なので、それを見るのがよいです。 http://doma.seasar.org/setup.html 概要 重要っぽいところだけ抜粋(主に利用するユーザとしても視点で) O/R マッパー*1 Dao パターンを使っている 命名規則 …

Javaの基本事項を復習(例外処理)

6 章: 例外処理 例外の基本 例外には大きく 3 つの種類があります。 検査例外(Exception) 実行時例外(Runtime Exception) エラー(Error) 検査例外(Exception) プログラム作成時に想定できる異常を通知するために使用します。検査例外を使用すると想定される…

Javaの基本事項を復習(StreamAPI・ラムダ式)

5 章: ストリーム処理 Stream API Stream API は大量データを逐次処理する「ストレーム処理」を効率的に記述するための手段 大量データではなくとも、コレクションの処理を効率的にできる Stream API は「作成」「中間操作」「終端操作」を 3 つの操作から…

Javaの基本事項の復習

Java の基本的な内容を復習することにします。特に Stream 周りの知識が皆無なので、まずは読めるように、次に正しく書けるようにしていきたいです。あとは 例外処理 ロギング マルチスレッド あたりも知識が少ないので吸収していきたいです。とりあえず 「J…