“Design and Implementation of Generics for the .NET Common Language Runtime”他...
パッケージJava製品開発担当の大です。こんにちは。 朝晩はだいぶ肌寒くなって、秋らしい空気になってきましたね。 前回も書いたとおり、現在HOSでは製品のJavaSE 7での動作検証を進めています。JavaSE 7で早く使いたい方、申し訳ありませんがいましばらくお待ちください。 さて、検証している上でちょっと困ったことが出てきました。従来動いていたテストコードの一部が、JavaSE 7ではコンパイルもできなくなってしまったのです。これはJavaSE 7の不具合か?と思い、調査してみました。 日本語のテストメソッド名 製品のクラス名やメソッド名では使いませんが、開発時のユニットテストのメソッド名やクラス名は、最近は、基本的に日本語で書くようになりました。これまで日本語メソッド名で特に問題が起こっていなかったことと、テストのレポートの出力がアルファベットのキャメルケースに比べ圧倒的に見やすいか
Java 7 にアップデートしたら日本語メソッド名が通らなくなった 現象 クラス全体をテスト実行すると動く 日本語メソッドを選択して実行すると動かない Java 6 の場合には問題なかったのに、7 にアップデートしたら上手いこと動きません。 しかし、6 に戻すとちゃんと動くので、7 が怪しい…と調べてたら、一応動くようになりました *1 「Java 6 の時には問題なかったのに 7 にアップデートしたら上手く動かなくなった!」そんな方にはこのエントリが役に立つかもしれません。 環境は以下のとおりです *2 Mac OSX 10.7.5 Java 1.7.0_07 Eclipse 3.7 JUnit 4.8.1 Quick JUnit 0.6.3 おすすめエントリ 〜まずはこちらから〜 Eclipse や JUnit と日本語メソッド名については良く知られている問題ですが、それだけに良エント
先週の水曜日、「JJUG Night Seminar -Java VM & LT & 納涼会-」へ行ってきました。 当日は、ほろ酔いで帰ってきて、スタックマシンを書いて遊んだら満足して寝てしまったので、改めてセッションのメモと感想を書いておきます。 # パソコンを忘れて行ったこともあり、メモをあまり取っておらず、記憶に頼って書きました。間違いがありましたら、ぜひ教えてください。 さくらばさんのJavaのStack Machineのお話 Java VM as Stackmahine http://www.slideshare.net/skrb/java-vm-as-stackmahine スタックマシンとしてのJVMがバイトコードをどうやって実行するか、というテーマでした。 いつも通り、音楽と写真が素敵なプレゼンテーションでした。 余談ですが、当日皆に忘れ去られていたJava 1.4のコード
世間ではオワコンと揶揄されることも珍しくない Java ですが、Java を初めたばかりのエンジニアがチェック例外と非チェック例外の使い分けについて「ベストプラクティスないの?」と調べたのをまとめてみました。 エントリまとめ どのエントリも Java についての深い洞察と開発の実践現場での生きた経験をもとに書かれていて大変に勉強になりました *1 エントリ中からリンクされているエントリもぜひ一読されることをおすすめします。 検査例外と非検査例外(実行時例外)をどう使い分けるか - Lino Blog Java言語のチェック例外は本当にGood Partなのか? - 達人プログラマーを目指して Javaのチェック例外はクソ仕様 - やさしいデスマーチ 例外の扱いについて その2 - じゅんいち☆かとうの技術日誌 「検査例外はアジャイルやオブジェクト指向の考えに反するという事実」について一部誤
本書はOpenJDK7のG1GCの実装と、それに関連する技術を解説します。 目次 スポンサーのみなさま はじめに 1.準備 2.オブジェクト管理機能 3.アロケータ 4.ヒープ構造 5.オブジェクト構造 6.HotspotVMのスレッド管理 7.スレッドの排他制御 8.GCスレッド(並列編) 9.GCスレッド(並行編) 10.並行マーキング 11.退避 12.予測とスケジューリング 13.正確なGCへの道 14.ライトバリアのコスト さらに勉強したい人へ その他参考文献 以下から(ある時点で)最新のebookをダウンロードできます。 徹底解剖「G1GC」実装編-20120915.epub 徹底解剖「G1GC」実装編-20120914.mobi 徹底解剖「G1GC」実装編-20120914.pdf 謝辞 本書はスポンサーのみなさまの金銭的支援によって執筆されました。 スポンサーのみなさま あ
Java Language and Virtual Machine Specifications Java SE 25 Released September 2025 as JSR 400 The Java Language Specification, Java SE 25 Edition HTML | PDF Preview feature: Primitive Types in Patterns, instanceof, and switch The Java Virtual Machine Specification, Java SE 25 Edition HTML | PDF Java SE 24 Released March 2025 as JSR 399 The Java Language Specification, Java SE 24 Edition HTML | PD
もふもふエンジニアン Ajax, Smartphone, Java EE, JSF, eclipse, Trac, OSS, DB2, Rational, Ubuntu 好きなコトを好きなだけ書きっぱなし。それって趣味? 「日付は、和暦で表示してもらいたいんだけど・・・。」 それは、ある日突然に ついに来たか・・・。しかしッ!うろたえるではない!! Java 6 からは和暦が使えるようになっているではないか 明治以前の挙動があやしいと、もっぱらのウワサですが、対象データからして昭和と平成がどうにかなれば良いという恵まれたケースだったので、さっそくトライ import java.sql.Date; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale; /** * 和暦サンプ
久しぶりにSingletonを自前で書こうとしたら書き方を忘れていた。 のでググったり本を見たりしながら思い出した。 なんとなく以下の二点を覚えていたので、そのあたりの記憶を頼りに。 HogeHogeHolder的な内部クラスを使っていた LazyLoad(遅延初期化)になっていた Effective Javaから 「Effective Java, 第2版, Joshua Bloch, 2008」にSingletonパターンの記載がある。 ひとつはPublic finalのフィールドによるSingleton。 package com.undrdevelopment.singleton; public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { } } もうひとつはstat
jinfoというJDKに付属しているコマンドラインツールを使用すると、Javaの起動オプションやシステムプロパティを確認できたり、「-XX」ではじまる一部の値については実行中に変更できるようです。 詳しい説明は以下に書いてありますが、jstackやjmapなどと同様、使用するには対象のJavaVMのPIDが必要です。 http://java.sun.com/javase/ja/6/docs/ja/technotes/tools/share/jinfo.html 例えば、以下のようなちょっとわざとらしいオプション指定でJavaアプリを起動します。 $ java -Xmx512M -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=2 -XX:+PrintGCTimeStamps -XX:+PrintGC -XX:+Pr
photo credit: Juan Antonio Capó ExecutorServiceを使うと簡単にマルチスレッド処理が行えますが、 終了もshutdownメソッドを呼ぶだけと思っていませんか? shutdownメソッドだけだと不十分です。 学校の先生と生徒の関係で説明します。 shutdownメソッドは指示するだけ 学校で先生が生徒に対して、「問題が解けたら教えてねー」と言います。 生徒は問題が解けた人から「先生できたー!!」と言ってきます。 全員問題が解けた段階で授業が終わるとしましょう。 対応はこう。 先生: ExecutorService 生徒: ExecutorService内のスレッド 問題: ExecutorService.executeに渡すタスク(Runnable) 授業: mainスレッド 学校: Javaプロセス 「問題が解けたら教えてねー」
先週のAttach APIは,どちらかというと裏方で使うAPIでした。今週解説するServiceLoaderクラスも,縁の下の力持ち的なクラスです。 第6回でjconsoleのプラグインを作成したときに,META-INFディレクリと,META-INFディレクトリの下にservicesディレクトリを作成したことを覚えているでしょうか。 なんで,こんなことするのだろうと不思議に思った方も多いかもしれません。これがjava.util.ServiceLoaderクラスを使ったコンポーネントのロードなのです。 コンポーネントをロードする さっそく,サンプルを作って,確かめてみましょう。 サンプルはこちらからダウンロードできます:HowdyTalky.java,HowdyTalkyLoader.java,HowdyTalky_ja.java,HowdyTalky_en.java はじめに,ロードするコ
Java 7 の Update 4 がリリースされたようですのでリリースノートから気になる点を拾い読み。 OS X サポート Apple が Java の OS X 対応を止めてしまったために Java 7 リリースから半年ほど遅れましたが、このバージョンからやっと利用できるようになりました。いくつか制約があって: OS X 10.7 Lion 以降、64bit 版のみの提供。 「開発目的のみ」つまり製品版アプリケーションでの使用はサポートされない。 Java Plugin、Java Web Start などのデプロイは含まれていない。 幾つかのサービス機能が機能しない。 Oracle としては初の OSX 対応だからまだ試験的な部分があるようです。とりあえずウチの Leopard は見捨てられているようですが… OS X へのインストール方法はこちら: http://docs.oracl
Java Platform Standard Edition 12 (152.63MB) Java Platform Standard Edition 11 (137.45MB) Java Platform Standard Edition 10 (143.13MB) Java Platform Standard Edition 9 (169.23MB) Java Platform Standard Edition 8 (85.1MB) Java Platform Standard Edition 7 (64.3MB) Java Platform Standard Edition 6.0 (276MB) Java 2 Platform Standard Edition 5.0 (230MB) Java 2 Platform Standard Edition 1.4 (177MB) Java
今回は、文字コードのチェック(エンコーディングチェック)を行う処理に関する問題です。 問題 以下のコードの問題を指摘し、修正してください。 ただし、問題は複数あることもあれば、全くないこともあります。 public class StringValidator { private static boolean checkCharacterCode(String str, String encoding) { if (str == null) { return true; } try { byte[] bytes = str.getBytes(encoding); return str.equals(new String(bytes, encoding)); } catch (UnsupportedEncodingException ex) { throw new RuntimeExcepti
Java 文字化け Unicode 4.0 補助文字対応 † J2SE 5 からは内部文字コード(char型)が UCS-2 (完全16ビット)ではなく UTF-16 (サロゲートペアあり)となった。 Java プラットフォームにおける補助文字のサポート http://java.sun.com/developer/technicalArticles/Intl/Supplementary/index_ja.html ↑ char → byte 変換 † Shift_JIS(SJIS), Windows-31J(MS932) の異なる点のみ拾い出している。(一部逆変換の参考のために記載。) NEC拡張漢字、NEC選定IBM拡張漢字は除外。 Shift_JIS, ISO-2022-JP, EUC_JP は内部的には同じ変換表を使っているので割愛。 ここでは文字は UTF-8 で表記している。(U
以下 Java HotSpot VM Options の勝手翻訳と、追加で原文には載っていないオプションについて。Oracle JDK 6 を対象とした内容となっています。 このドキュメントは Java HotSpot 仮想マシンのパフォーマンス特性に影響を与える一般的なコマンドラインオプションと環境変数に関する情報を提供します。特に断りのない限りこのドキュメントのすべての情報は Java HotSpot Client VM と Java HotSpot Server VM の両方に適用されます。1.3.0 より古い JDK に Java HotSpot VM を移植したいユーザは Java HotSpot Equivalents of Exact VM Flags を参照して下さい。 Java HotSpot VM オプションのカテゴリ Java HotSpot VM が認識する標準オプ
This document is a guide to help troubleshoot problems that might arise with applications that are developed using the release of Java Platform, Standard Edition 6 (JDK 6 release or Java SE 6 release). In particular, this guide addresses possible problems between the applications and the Java HotSpot virtual machine. The document provides a description of the tools, command line options, and other
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く