はじめに ~ 「じゃんけんアドベントカレンダー」について ~ 今年もアドベントカレンダーの季節がやってきました。 毎年「全部俺アドベントカレンダー」や「一人アドベントカレンダー」といったものを見かけ、自分もやってみたいなと思っていたので、今年はそれに挑戦します。 テーマとしては、「じゃんけんプログラムを全力で実装していく」というものです。 じゃんけんプログラムといえば誰もが一度は実装したことがあるものであり、オブジェクト指向プログラミングの練習題材などに使われることもあります。 とはいえ、どこかで見たことがあるじゃんけんプログラムを再発明しても面白くありません。 そこでこのアドベントカレンダーでは、「オブジェクト指向でじゃんけんプログラムを書くとどうなるか」という方向ではなく、どちらかというと「MVC や 3 層アーキテクチャといった、アプリケーションアーキテクチャを整えていく」ことや「C
一つのウェブ画面にはヘッダー、フッターなど共通で使っているところがあります。 それらが画面ごとに書かれていて、ヘッダーを修正する場合、全ての画面を触らなあかんですね。 そんな面倒くさい作業を避けるために、Thymeleaf Layout Dialectを使って画面レイアウトの共通化をやってみます! イメージ図 build.gradleにThymeleaf Layout Dialectの依存関係を追加 dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf:2.6.2' implementation 'nz.net.ultraq.thymeleaf
概要 モジュールを理解するのに苦戦したので、実戦形式でまとめました。 細かな仕様や、概念については別の記事にて作成中ですのでしばらくお待ちください。 IDE:「Eclipse」 Java SE9 以降対応 OS:Windows コマンドラインとIDEを交えながら説明しますので、他のOSでも応用できるかと思います。 準備 準備で作成したプロジェクトを何度も改変して解説していきます。 簡単に作る物を説明します。 ライブラリ(mylib) TaxCalculator(税金計算機) 貰ったお金から税金を計算し表示するクラス。 WorldTaxRate(世界の税率) 各国の税率と国名を列挙型で保持しているクラス。 アプリケーション(client) App(実行クラス) ライブラリを使用して実行するクラス。 ライブラリの作成(mylib) まずは「mylib」プロジェクトを新規作成します。 次にパッケ
トランザクションとは、一連の処理を一つのまとまった処理として扱うための論理的な単位です。同一トランザクションに属するSQL処理が複数ある場合 すべてが成功して初めて処理結果を確定する(コミット) 途中で失敗したら、トランザクション実行前の状態に戻す(ロールバック) データベースの処理結果を確定させることをコミット(commit)、実行前の状態に戻すことをロールバック(rollback)といいます。 トランザクションの利用 Javaでは、JBDC(Java DataBase Connectivity)というデータベース操作専用のAPIが提供されています。 JBDCを用いてトランザクション制御を指示するには、Connectionオブジェクトを使います。 1. setAutoCommit()-接続が確立した直後 JBDCのデフォルトでは、SQLが一つ送信されるたびに自動的にコミットされるオートコ
TERASOLUNA Server Framework for Java (5.x) Development Guideline¶
HTTP自体には、物理的にセッションを維持する仕組みはないが、セッションを識別するための値(セッションID)を、クライアントとサーバとの間で連携することで、論理的にセッションを維持する仕組みが提供されている。
【Java】Serializableの実装、役割、使い方、危険性とその対策【serialVersionUIDとは】 by nao · 2021年2月20日 前書き: Javaの勉強中に見つけたSerializable 2021年になってから、腰を据えてJavaの勉強を始めました。 今年はJavaを後輩に教える機会があり、自分もJava歴が短くて手探り感がある。勉強が必要だ。 JavaのOSS(小規模)を読みたいが、何か良いものはないかなー。以前、「Apacheのコードを読もう!」と考えた時期があった記憶もある。が、もう少し小規模なプロジェクトから始めたい。 — Nao03@疲れて会話がUDP (@ARC_AED) February 7, 2021 私はJava学習の一環としてJava Core APIのソースコードを読んでおり、その際にjava.io.FileクラスでSerializabl
はじめに OCJP-Goldの試験対策中に匿名クラスの理解に苦しみました。 匿名クラスはラムダ式やストリームAPIを理解するためにも大事な内容になります。 そのためここでは色々な書籍を読んで匿名クラスの理解に役立った考え方について整理します。 ※匿名クラスとは何かといった内容についてはここでは触れないため、別の記事や書籍を参考にしていただければと思います。 匿名クラスを利用しない場合 まずは匿名クラスを利用せずに普通にインタフェースの実装を行い、メソッドを呼び出すコードについて確認します。 1 interface Foo {// インタフェース 2 void methodA();// 抽象メソッド 3 } 4 5 class FooImple implements Foo {// 実装クラス 6 @Override 7 public void methodA() {// 抽象メソッドのオー
Java には 動的配列 ArrayList と Vector があります。 (それに加えて LinkedList というのもあります。) いずれも Collection インターフェース、 List インターフェース を実装しており、 使い方はほとんど同じです。 歴史的には Vector のほうが ArrayList よりも先に作られました。 この記事では、 それら2つのクラスの違いと、それを検証するサンプルコードを紹介します。 ArrayList はマルチスレッドで複数のスレッドからアクセスされると、正しく動作しないことがあります。 一方で Vector はスレッドセーフです。 ArrayList に synchronizedList メソッド を施すと、 スレッドセーフになります。 検証コード ArrayList と Vector の違いをコードで確かめてみます。 ArrayList
Javaの例外処理について、みなさまの開発チームでは運用ルールなどはありますか? 皆様の意見をお聞きしたいのは以下になります 1.事前にパラメータチェックするか パラメータチェックせずに例外でチェックするか ルールはありますか? 2.関数内でtry-catchするのか 呼び出し元へ例外を投げるのか ルールはありますか? 3.例外を呼び出し元へ投げる場合には、発生した例外をそのまま投げますか? それとも、独自の例外などに変換して投げますか? 4.throwsの記載には呼出元へcatchすることを強制する以外に意味があるのでしょうか? テストしたところ、動作が変わらないように思えました throwsには何を記載するようにしていますか? 5.例外処理に関して、有名なベストプラクティスなどはありますか? <補足> 私はC言語出身の人間であったため、パラメータのチェックは事前に行い、 例外処理は基本
出展: Effective Java 第3版 equals をオーバライドすべきケース equals メソッドを問題なくオーバライドすることは簡単ではありません。 問題の発生を防ぐためには equals メソッドをオーバライドしないのが一番です。 この場合は、equals は自分自身と同じオブジェクトである場合にのみ true を返すように振る舞います。 Object#equals(Object) の実装 振る舞いを定義するようなクラスでは、上記のようなデフォルトの equals 実装で十分なことがほとんどです。 一方で、Integer や Date クラスのような論理的な値を表すクラスでは、論理的な同値判断を行えることを期待するでしょう。 equals メソッドをオーバライドする場合は、下記のような条件を満たすことが求められます(Object クラスの説明抜粋)。 It is refle
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く