こんにちは! アキバです。 ...T3ブログは初登場かもしれません。ハジメマシテ。 以後お見知りおきを。 いよいよ、2014年3月、Java8が正式公開されますね。 なんと言っても、Java8の注目機能はラムダ式ですので、ラムダ式や型推論に関する記事は多いです。 世の中で「Java8」と検索すると、皆さんいろいろと記事を書かれているので、おおよその事はこれで分かっちゃうような気がします。 が、 実は地味に便利なAPIが追加されていたりすることを最近知りました。 これはあまり触れられていないぞ、と。 というわけで、このエントリでは、あまり日本語で情報の無い、しかし地味に便利なAPIに実際に触れてみます。 大事なところなので2回強調して書いてみました。 今回は、前編として4つ紹介します。 ※APIの紹介と言いつつ、コードにはラムダ式を使ったコードが普通に出てるので、ご了承ください。 (むしろ、
Javaトラブルでは『情報がなくて、再現もなかなかしません』といった状況に陥ることがある。このような状況を回避するために、以下の3つの代表的なトラブルを例に、アプリケーションサーバを再起動する前に何を取得すれば良いのかをまとめてみる。 アプリケーションから応答がない アプリケーションが遅い ヒープメモリが足りない(OutOfMemoryErrorの発生) アプリケーションから応答がない 取得する情報 スレッドダンプ データ取得方法 スレッドダンプとは、コマンド実行時点でのJavaスレッド実行状態を出力したものである。応答がない場合、何らかの要因によりどこかで処理が止まっていることが想定される。スレッドダンプは『どこで止まっているのか?』を切り分けるのに大切な情報である。 取得方法はJDKのバージョンによって色々ある。 kill -3 <pid> (少なくとも1.4.2にはある〜JDK7でも
SQL in Java 8: ResultSet Streams. With Java 8, writing SQL will change fundamentally, no matter what API you're using. List<Schema> result = new ArrayList<>(); try (Connection c = getConnection()) { String sql = "select schema_name, is_default " + "from information_schema.schemata " + "order by schema_name"; try (PreparedStatement stmt = c.prepareStatement(sql); ResultSet rs = stmt.executeQuery())
Spring-MVCを使うと、とてもきれいにMVCを分割することができて、すごく気持ちよくコードを書くことが出来ます。 とても気に入って、このところずっとこれを使っているのですが、使いはじめの頃に躓いたことをメモ。 はじめに。今回はWindowsXP上のTomcat環境で試してます。 環境によって違うとは思うので、ソンナコトナイヨって方にはこの内容は必要ありません。 GETによるリクエストで、なにかしら日本語をはじめとしたマルチバイトのデータを投げたい場合があったとします。 そういった場合、(デプロイ先のOSなどにもよるかもしれませんが)何も設定していない状態では、 コントローラで該当の値を受け取ったとき、文字化けを起こしてしまいます。 この文字化け、URLEncodeとの組み合わせて化けていて、元に戻すことが出来ない。 Spring-MVCでの日本語環境でのWebアプリ開発の準備をするた
eclipseの設定ファイルは、eclipse.exeがあるフォルダの中のeclipse.iniファイル。 この中にある以下の記述を書き換えると設定が変わるようです。 -vmargs -Xms40m -Xmx384m 上記のような設定だと、-Xms40m でメモリのデフォルトの使用量で40MB使用する事になっており、-Xmx384m でメモリの最大使用容量で384MBまで使用できる事になっていました。 メモリが4GBもあるPCなどでは、この使用量は少なすぎかなと思い、以下のように変更してみました。 -vmargs -Xms512m -Xmx1024m 動作速度が速くなった…?あまり変わっていない気もしますが、もしかすると早くなっているのかな? 体感ではその程度でしたが、ちょっとチューニングしてみたい方はどうぞお試しください。 注意 1 メモリの設定を誤るとeclipseが起動しなくなるらし
2024年夏 かばんの中身記録 みんな大好きかばんの中身。 当然私も大好きで、人様のブログ記事やSNS投稿を飽きもせず読み込みまくっています。なぜこんなにも見飽きないのか… 自分も以前同じようにかばんの中身の記事を書いたんですが、気づけばもう3年前!去年くらいの気分だった、月日がたつの…
前回、JVMとGCのしくみ - ITエンジニアとして生きるでJVMとGCのしくみについて書いた。 今回はその続きということでJVMのチューニングについて書きたいと思う。 JVMチューニングって -Xms ・・・ ヒープ全体(New領域+Old領域)の初期値 -Xmx ・・・ ヒープ全体(New領域+Old領域)の最大値 くらいしか話題に上がらないし意識しないことが多い(気がする)。 でもホントはこれだけではダメで、前回のようにPermanent領域、New領域、Old領域を意識したチューニングが必要になる。 VMチューニングを考えるその前に・・・チューニングの話をする前にまずVMの起動モードについて話したいと思う。 VMには大きく以下2つの起動モードがあり、それぞれ以下のような特徴を持つ。 ◆クライアントVMモード 起動時間を短縮し、メモリサイズを縮小するように調整されている。 VM起動時
インターネットを介して各種コンピュータ・デバイスを連携させ、新たな価値を創造する"モノのインターネット(IoT:Internet of Things)"の時代が幕を開けた。そこにおいて大きな役割を果たす技術がJavaだ。 "モノのインターネット"の構築基盤として、さらなる飛躍を遂げるJava インターネットを通じてさまざまなコンピュータ・デバイスとサーバ・サイドを連携させ、新たなサービスの創出へとつなげていく「モノのインターネット(IoT:Internet of Things)」。世界的に関心が高まり、すでに先進的な企業における活用も始まっている。 しかし一方で、IoTを実現するためのテクノロジーやプラットフォームに関する具体的な議論は、国内ではまだ活発化していない。そうした中、IoTサービスを構想するエンジニアやアーキテクトにとって注目すべきセミナーが開催された。日本オラクルが2013年
はじめに Android プログラマのみなさん、こんにちは。 今日も元気に Out Of Memory してますか? ということで、この記事では日々 OOM に悩まされる Memory 的な意味で富豪的な Android プログラマの為に、Eclipse Memory Analyzer Tool、通称 MAT の基本的な使い方を紹介します。 尚、この記事は [twitter:@youten] さんが企画された裏 Android Advent Calendar 12/20 の記事ですが、内容的には比較的オモテなものになっています。 対象読者 Andoid アプリ作ってる/はじめたけど、まだ MAT を使ったことがない方 MAT を使ってみようした事はあるものの、画面から難しそうな雰囲気を察知し、起動10秒後にはそっとタブを閉じてしまった経験がある方 DDMS の基本的な使い方を理解している方
Written on Monday, January 6, 2014With the 2014 season of battlecode starting tomorrow, I figured now would be a good as time as any to finally write up my notes on bytecode hacking. If you’re unfamiliar with Battlecode, a good introduction is my previous post (tldr: it’s an intense open-to-all programming competition where teams write AIs for virtual robot armies). You might be wondering what byt
愛知県でシステムエンジニアとして働く友人のMは、プロジェクトメンバの書くJavaのクソコードに苦しめられているそうです。Mはリードプログラマとして、プロジェクトメンバがあげてくる成果物(ドキュメントとコード)のレビューをする立場にあるらしく、提出されてくる数々のクソコードをTwitterでつぶやいていました。 Mを救うことはできるのでしょうか? もし、クソコードをすばやく見つけることができたら救えるのであれば、救える見込みはあるかもしれません。 コードの問題を見つける静的解析ツール クソコードとは、おおむね次のような問題のあるコードをさすようです。 潜在的バグ バグの可能性があるコード。 重複 機能追加やバグ修正を困難にしがちなコードの重複。 設計上の問題 クラスやパッケージ間の依存関係、多すぎるメソッド引数など。 慣習違反 プログラミング言語やライブラリの慣習、コーディング規約などに違反
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く