標準(java.nio.charset.Charset
)および拡張文字セットの実装には、いくつかの改善点があります。改善点は次のとおりです。
Solarisのイベント・ポート・メカニズムに基づくSolaris向けの新しいSelectorProvider
実装。このSelectorProvider
を使用すると、一部のサーバー・ワークロードのパフォーマンスやスケーラビリティが改善される可能性があります。デフォルトは、引き続き/dev/poll SelectorProvider
です。Solarisのイベント・ポート・メカニズムを使用するには、システム・プロパティjava.nio.channels.spi.Selector
を値sun.nio.ch.EventPortSelectorProvider
に設定して実行します。
<JDK_HOME>/jre/lib/charsets.jarファイルのサイズの縮小
java.lang.String(byte[], *)
コンストラクタおよびjava.lang.String.getBytes()
メソッドのパフォーマンスの改善。
java.nio.file
パッケージ、およびその関連パッケージであるjava.nio.file.attribute
は、ファイルの入出力とファイル・システムへのアクセスを包括的にサポートします。JDK 7では、Zipファイル・システム・プロバイダも使用できます。詳細は、次のリソースを参照してください。
<Java home>/sample/nio/chatserver/
には、java.nio.file
パッケージに含まれる新しいAPIの例を示すサンプルが格納されています<Java home>/demo/nio/zipfs/
には、NIO.2 NFS (Network File System)ファイル・システムの例を示すサンプルが格納されていますさらに、次の拡張機能が導入されています。
分野: NIO
標準/プラットフォーム: JDK 7
概要: JDK 7リリースより前では、java.nio.ByteBuffer.allocateDirect(int)を使って割り当てられたダイレクト・バッファがページの境界上に配置されていました。JDK 7では実装が変更され、ダイレクト・バッファがページの境界上に配置されないようになりました。これにより、小さいバッファを数多く作成するアプリケーションに必要なメモリー量が削減されます。
RFE: 4837564
次の新しいクラスが1つ追加されました。
Console
- 文字ベースのコンソール・デバイスにアクセスするメソッドが含まれます。readPassword()
メソッドは、エコーを無効にすることから、パスワードのような機密データの取得に適しています。System.console()
メソッドは、Java仮想マシンと関係のある一意のコンソールを返します。次の新しいメソッドがFile
に追加されました。
getTotalSpace()
はパーティションの容量をバイト数で返しますgetFreeSpace()
はパーティションの空き容量をバイト数で返しますgetUsableSpace()
は、パーティションで使用可能なバイト数を返すほか、書込み権限とほかのオペレーティング・システムの制限についてチェックします setWritable(boolean writable, boolean ownerOnly)
とsetWritable(boolean writable)
は所有者または全員の書込み権限を設定します setReadable(boolean readable, boolean ownerOnly)
とsetReadable(boolean readable)
は所有者または全員の読取り権限を設定します setExecutable(boolean executable, boolean ownerOnly)
とsetExecutable(boolean executable)
は所有者または全員の実行権限を設定しますcanExecute()
は実行権限の値をテストします次のクラスにコンストラクタが追加されました。
IOException
は、新しいコンストラクタIOException(String, Throwable)
とIOException(Throwable)
の追加により、例外チェーンをサポートします。次のメソッドの動作が変更されました。
false
を返すように、File.isFile()
のWindows実装が変更されました。以前の戻り値はtrue
で、それがUNIXで使用するデバイスの動作と整合していないことから、対象ユーザーはこれをバグと見なしていました。java.nio.channels.SelectorProvider
実装が新たに追加されました。このepoll機能はLinux 2.6以降のカーネルで使用できます。Selector
に多数のSelectableChannel
が登録されている場合、新しいepollベースのSelectorProvider
実装は、従来のpollベースのSelectorProvider
実装よりもスケーラブルです。新しいSelectorProvider
実装は、2.6カーネルが検出されると、デフォルトで使用されます。pollベースのSelectorProvider
は、2.6より前のカーネルが検出されると使用されます。sun.nio.ch.disableSystemWideOverlappingFileLockCheck
は、FileChannel
のほかのインスタンスによって領域がロックされるかどうかをjava.nio.channels.FileChannel.lock()
がチェックするかどうかを制御します。このシステム・プロパティがtrue
に設定されていないかぎり、アプリケーションがFileChannel
の別のインスタンスによってロックされた領域と重複する領域をロックしようとすると、FileChannel.lock()
は OverlappingFileLockException
をスローします。システム・プロパティが存在するのは、JVM全体の重複ファイルロック・チェックを実装していない以前のリリースとの互換性を提供するためです。javax.net.ssl.SSLEngine
が追加されました。J2SDK v1.4.0での既存の安全な通信インフラストラクチャであるjavax.net.ssl.SSLSocket
は、java.net.SocketのI/Oモデルをベースとしています。SSLEngine
クラスはI/Oモデルを無視しているため、開発者は代替のI/Oを使用して通信経路を保護できます。SSLEngine
はNew I/O APIと組み合わせて、安全なブロックまたは非ブロックSocketChannel
などの実装を作成できます。詳細は、「JSSEリファレンス・ガイド」を参照してください。FileInputStream
およびFileOutputStream
クラスでは、ベースとなるFileChannel
オブジェクトを返すgetChannel
メソッドが追加され、close
メソッドはベースとなるチャネルをクローズするように改訂されました。RandomAccessFile
クラスでは、getChannel
メソッドが追加され、close
メソッドはベースとなるチャネルをクローズするように改訂されました。RandomAccessFile
コンストラクタが、モード文字「s」と「d」をサポートするようになり、ファイルを開くときに、同期書き込みまたは同期データ書込みを指定できるようになりました。InputStreamReader
およびOutputStreamWriter
クラスでは、ストリームとCharset
オブジェクトを引数に取るコンストラクタが追加され、getEncoding
メソッドが、使用されているエンコーディングの互換名を返すように改訂されました。既存のCharsetDecoder
オブジェクトを取るInputStreamReader
のコンストラクタと、既存のCharsetEncoder
オブジェクトを取るOutputStreamWriter
のコンストラクタが追加されました。java.io.File
クラスの変更点について説明します。java.io
パッケージの変更点について説明します。