Java
プログラミングを習得したいと考えている人はどのプログラミング言語を学べばいいのか悩むだろう。Javaを選べば以下のメリットがあるよ。・インフラが多い 1 いろんなOSで利用可能 2 いろんなデバイスで利用可能・基本情報処理技術者の試験に出る・いろん…
Chapter 2. Constraint Definition 制約定義 Constraints are defined by the combination of a constraint annotation and a list of constraint validation implementations. The constraint annotation is applied on types, methods, fields or other co…
下記の様にするとjava.lang.StackOverflowErrorが発生する。 Map m = new HashMap(); m.put(m, "1"); //←この瞬間、この”m”は終了した。 //エラー m.put("", "1"); //これもエラー m.remove(m); //これもエラー m.containsKey("1"); これがHashtableだと起き…
今までは、テーブル設計をしてからEntityを作成(自動生成含む)する方向だったんだけども、JavaではJPAアノテーションとBean Validationのアノテーションを利用してEntityから先に作成(自動生成含む)することができるようになった。まぁ今でもマイグレー…
http://java.dzone.com/news/javaone-lives 一回も行ったことないけども来年も開催されるような流れでうれしい限りだ。
Switchを使うと以下の二つの命令のどちらかがコンパイラによって生成される。 lookupswitch - switch文のcase式の値が不連続である場合値を探しながらジャンプ先を探す。tableswitch - switch文のcase式の値が連続である場合キー値をindexとしジャンプ先アド…
Java5からアノテーションとジェネリックが導入されて、Java6を経てようやくJava7がでてきますが、Java6になってもこのアノテーションとジェネリックがそこまで受け入れられていないように見受けられます。 ビジネスの上で重要なJavaEEもようやくJavaEE6にな…
ようやく、正式仕様がリリースされるみたいです。
ついにApache POIの正式版である3.5-FINALが9月末にリリースされます。
WindowsのtomcatでVisualVM使おうとして普通に使えなかったのでJMXの設定を行ったときのメモ -Dcom.sun.management.jmxremote.port=8086(適当なポート番号) -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false …
http://www.theserverside.com/news/thread.tss?thread_id=55430 これは驚きました。今年はJava界隈変遷の年ですね。 色んな意味でSpringSourceにとってはいいタイミングだったのではないでしょうか。 また、OracleがどんなにJavaに対してテコ入れしようとも…
最近、”芋”がマイブームなんですが、芋づる式にJavaにも脆弱性が波及していますね。MSのATLの脆弱性によりJava Web Start が影響を受けています。http://blogs.sun.com/security/entry/sun_alert_264648_security_vulnerability
Proposed Final Draftのフェーズですが、Servlet3.0の新機能をさらっと調べてみました。また、Servlet3.0はtomcat7でサポート予定です。 1. Asynchronous processing ・Servletで非同期処理が可能となります。 2. Modularity of web.xml ・アノテーションでS…
昨今ではソフトウェア価格破壊の影響によりIT業界はサービス中心の仕事になりつつあります。 ITILにもITサービスマネジメントというコアなプロセスがあります。 ITサービスマネジメントの達成目標として以下が挙げられます。 ・ITサービスの提供 ・ITサービ…
Apache POI3.5beta4のserializeがエラーする。 - http://d.hatena.ne.jp/kensir0u/20090123/1232717566ようやくbeta6がリリースされます。 個人的には上記のバグが解消されてホッとしています。 他にも沢山のBug Fixがあるので、導入を検討されている方や導…
Java6以上だったら BTraceを使えばよし! https://btrace.dev.java.net/source/browse/btrace/docs/usersguide.html?rev=1.7
最近、標準をめぐってなにかとDI(Dependency Injection)が話題ですが、 JavaではDIがかなり標準的な実装パターンとして認知されてきました。 ここで、パッケージとして標準化されるのであれば、もうDIコンテナを利用しないパターンも想定してもよいと思う。…
JVMはC++で記述されていると思うんだけども、 C++自体にはGC機構はないので、VM内部のメモリ管理はどうしているのだろうとふと疑問に思った。BohemGCというライブラリとかはあるみたいだけども。そういうGCライブラリ使ってるとすると、GC(Java用のGC)のGC…
あるインターフェースを実装している異なる2つのクラスを生成し、 メソッドを実行する場合にメソッド呼び出しコストが増大する。 2つのクラスインスタンス生成でのバイトコードでの影響はほとんどない。 スタック位置が異なる。 ※javapで確認 推測になって…
JVMに "-verbosegc" オプションをつけて起動するとGCの情報が出力される。 その際に見る必要があるポイント。HotSpotVMの場合・GC後の最大ヒープサイズ 初期・最大ヒープサイズ調整の一因とする。 ・GC実行時間 パフォーマンス考慮の一因とする。 ・GCでの開…
APサーバーを利用したシステムでパフォーマンスチューニングを行う際に 以下の箇所を考えると良い。 ・スレッドプール スレッド生成にコストがかかるためプールする。 ・コネクションプール コネクション接続にコストがかかるためプールする。 ・キャッシュ …
Java7からG1GCが導入されます。現在のJavaでは世代別GCがメインアルゴリズムで、ヒープ領域を多量に使用します。 これは、源流のCopyingGCの欠点(※コピー元とコピー先が必要)でもあります。 そこで、このCopyingGCの多ヒープ領域確保を少なくした試みがG1G…
これは真実なのか!?http://ci.nii.ac.jp/naid/110000117827/あるならあるで驚きだけども、無いなら無いで誰も気づかないのが驚き。
Java6でのGCの種類とオプションを調べてみた。 オプション 内容 デフォルト -XX:+ScavengeBeforeFullGC ScavengeGCとFullGC デフォルト -XX:-UseConcMarkSweepGC ConcurrentMarkAndSweepGC -XX:+UseParallelGC ScavengeGCを並列処理 デフォルト -XX:-UsePara…
Javaの誕生のお話1.パトリック・ノートンというサンの社員が辞表を提出する際に会社の不満とやりたいことをぶちまけたメールを社長へ提出。 2.ノートンのやりたいことを実現するプロジェクト「Greenプロジェクト」発足、ノートン、ジェームズ・ゴズリン…
Java6ではデフォルトでBiased Lockingが組み込まれています。 Biased Lockingとは同一のスレッドからのロック取得コストを低減させる仕組みです。 通常はスレッド中のオブジェクトの状態として、非ロック状態とロック状態を持つ。 その他、GC回収待ち状態な…
http://www.theserverside.com/news/thread.tss?thread_id=54590宗教戦争的な様相ですね。 自分も最近作ったプログラムのパフォーマンスが芳しくなかったので凹んでるとき、この記事をみて、危うくJavaのせいにしようとしました(笑)Swingでクライアントア…
http://blogs.sun.com/abuckley/entry/draft_of_the_java_vmこれは要チェックですね。
いまさらですが、Jettyにディレクトリトラバーサルの脆弱性が見つかったそうです。参考http://www.kb.cert.org/vuls/id/402580
Javaでは配列に値を代入する際に境界チェックを行う。 これがなければもう少しパフォーマンスが向上するのだけども、セキュリティの観点からチェックは必要なのである。 Javaでは配列のサイズを求めるときにlengthという属性を参照すればよい。 これは配列の…