「じっくり学ぶ Java講座」は、初心者向けの Java入門講座サイトです。多くのサンプルコードを目にすることでじっくり着実に Javaプログラミングの基本を勉強します。 更新履歴 第01章: はじめに はじめに 本ウェブサイトの目標とターゲット 学習の心構え おすすめ書籍 おおまかな構成 第02章: Java概論と開発環境の構築 Javaとは 開発環境の構築 開発環境メモ 第03章: はじめての Javaプログラム ハローワールド 読みやすいソースコードを書こう 第04章: 基本型と基本型変数、演算子とキャスト、Math.randomメソッドと自作ライブラリ 基本型と基本型変数 演算子と基本型のキャスト Math.randomメソッドと自作ライブラリ 第05章: 条件分岐 if文 switch文 第06章: 繰り返し for文 while文 do while文 gotoは使えない 第07
JAX-RSの場合 ・画面構築方式は次世代型。画面はフロント側で生成。 ・JAX-RSはREST仕様に則ったWebAPIが容易に作成可能。 例)サーバ側REST実装例 ルーティング、JSONシリアライズが直感的 @RequestScoped @Path("hoge") public class HogeResource{ @GET @Path("product") @Produces(MediaType.APPLICATION_JSON) public Product getProduct() { Product product = new Product(); product.setId(1); product.setName("Mattress"); product.setDescription("Queen size mattress"); product.setPrice(500)
はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ
一般記事† Java Webフレームワークの現状 / java web framework at burikaigi - Speaker Deck 2025.2 手軽に学ぶ!初心者向けJavaアプリのAWSデプロイ方法。Eclipse、Tomcat、Apacheで始めるクラウド運用。 - Qiita 2023.6 eclipse + Tomcat + MySQL + Javaを使用して動的Web作成してみた - Qiita 2023.3 WACsについて 2021 IBMのWAS上のMVCフレームワークらしいが、まったく情報がない。IBMサイト上でドキュメントも見つからない。これだけ情報がないのは逆にすごい。売る気があるとは思えない オブジェクトサイズの計測とメモリリークの検出 J2EE開発者にとって、「セッションは小さく」設計するのが定石ですよね。では実際にセッションサイズはどう測るので
セッションについて Java サーブレットは HTTP プロトコルを使用します。HTTP はステートレスプロトコルです。 サーバは、リクエストを受け取ってレスポンスを返すと、クライアント ( ブラウザ ) との接続を終了します。 サーバにはクライアントを一意に識別できる情報を持っていないため、クライアントの情報は維持されません。 ( サーバはどのクライアントがどの情報を持っていたかを判断できない。 ) 上記の問題を解決するための仕組みがセッション管理となります。 セッションとは、簡単に説明するとクライアントがサーバに接続してから切断するまでの 1 接続単位です。 一般的には 1 リクエスト単位ではなく、例えば、ユーザがログインしてからログアウトもしくは、 ブラウザを閉じるなどの操作を行うまでの間を表します。 1 セッションの間には、複数回のリクエスト送信、レスポンス受信が
Object-Oriented & Java maneuver 別室 オブジェクト指向技術とJavaを主にしたプログラミング言語、コンピュータ関連技術について公開しているサイトです。 題名が「別室」となっていますが、現在こちらのサイトが主となっています。(2008.9.15) 本サイトの更新履歴? Torutk Webサイト更新(更新は停止状態^^;) はてなのtorutkの日記 torutkの技術活動(読書会、講演、執筆、など) プログラミング言語JavaとJava周辺技術 Javaプログラミング How To JavaでCORBAプログラミングのページ Java Media Framework Java Webアプリケーション Grails - Javaベースのスクリプト言語Groovyで記述されたWebアプリケーションフレームワーク SOAとJava AspectJ Java起動高速
画面数が増えてくると、struts-config.xmlに書く量が増えていって、すごく大きなファイルになってしまう。 これをモジュールという単位で分割して、複数に分けることが出来る。(Struts1.1からの機能らしい) 概要 モジュール化されていない場合、URLにはコンテキストルートとアクション(アクションパス)を指定する。 http://ホスト/コンテキストルート/アクション http://localhost/contextroot/action.do モジュール分割は、サブのディレクトリー(階層)を作るようなイメージ。 http://ホスト/コンテキストルート/モジュール/アクション http://localhost/contextroot/module/action.do web.xmlへの指定 モジュール分割するには、web.xml内のStrutsのサーブレット(ActionSe
長年Javaを書いてきた人間としてはちょっと情けないことに、先日、会社で自分の書いたコードが原因でちょっとしたバグを出してしまいました。きちんとテストファーストで単体試験は書いていたのですがテストが不十分でしたね。 バグの原因は、Fileクラスの仕様をちょっと勘違いして使っていたことが原因でした。FileクラスにはrenameTo()というメソッドがあって、このメソッドの呼び出しにより、操作が成功すればもともとFileクラスのオブジェクトに対応していたファイルの名前がファイルシステム上で変更されます。ここで、うっかり、Fileクラスが可変なクラスだと勘違いしてしまっていたのですが、実は、Java Docにも明記されている通り、Fileクラスは不変(immutable)なクラスであり、一度生成したら状態が決して変更されることがない設計となっています。これは、以下のテストケースを見ると確認でき
Java(Java SE)で、プログラム起動時にクラスパスでJARファイルを指定するのではなく、実行後にJARファイルを指定してクラスパスに追加したいことがあります。C/C++では、動的リンクライブラリをシステムコール(Win32 APIならLoadLibrary、UNIX系ならdlopen)で利用することができます。 Javaでは、クラスローダー(例えばjava.net.URLClassLoader)のインスタンスを作ってロードさせるのが順当な手段ですが、クラスローダーが異なる場合、staticの扱いが同じクラスローダーでロードした場合と異なるので、できればアプリケーションをロードしたシステムクラスローダーでロードさせたいところです。(staticに依存しないようアプリケーションが作られていればよいのですが、そうもいかないことが多いため) Java SEのプログラムを実行するときは、以下
J2EEのベストプラクティス・トップ10(+2)(前編) Kyle Brown, Senior Technical Staff Member, IBM Software Services for WebSphere Keys Botzum, Senior Consulting I/T Specialist, IBM Software Services for WebSphere Ruth Willenborg, Senior Manager, IBM WebSphere Performance 2004/7/23 J2EEのベストプラクティスについては、過去5年にわたり多数の文章が記されてきている。J2EEアプリケーションの開発ノウハウを解説した記事は数多く公表されており、出版された書籍もおそらく10を超えるだろう。J2EEに関する情報源はあまりにも多いため、互いに矛盾する方針を示している
public class Page { private List results; private int pageSize; private int page; public Page(Query query, int page, int pageSize) { this.page = page; this.pageSize = pageSize; results = query.setFirstResult(page * pageSize).setMaxResults(pageSize+1).list(); } public boolean isNextPage() { return results.size() > pageSize; } public boolean isPreviousPage() { return page > 0; } public List getList(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く