Java

 Computer >> コンピューター >  >> プログラミング >> Java
  1. Java 9のJShellでクラスとインターフェースを宣言する方法

    JShellは、Java 9から導入された対話型シェル(REPL)です。main()メソッドを用意したり、実行前にコードをコンパイルしたりする必要がなく、JavaやJava APIのプロトタイピング、デバッグ、学習を手軽に行えます。この記事では、JShell上でクラスとインターフェースを宣言する方法を具体例とともに解説します。 クラスの宣言 JShellでは、通常のJava言語でコードを書くときとまったく同じ感覚でクラスを宣言できます。宣言が完了したタイミングをJShellが自動的に検出し、「created class」というメッセージで通知してくれるのが特徴です。 以下のコードスニペットでは

  2. Java 9モジュールの3つのコンパイルモードとは?レガシー・シングル・マルチモードを解説

    モジュールとはパッケージを格納するコンテナであり、各モジュールにはモジュール記述子(module descriptor)が含まれています。この記述子には、モジュール名、依存する他のモジュールの名前、そして外部に公開するパッケージ名が定義されます。公開(exports)されたパッケージは、そのモジュールに依存関係を持つモジュールからのみ利用可能です。module com.tutorialspoint.app { /** com.tutorialspoint.app が依存するモジュール */ requires com.tutorialspoint.services; /*

  3. Java 9で追加されたInputStream#readNBytes()メソッドの使いどころと実装例

    Java 9以降、InputStreamクラスにはreadNBytes()メソッドが追加されました。このメソッドは、入力ストリームから指定されたバイト数(len)のデータを読み込み、引数として渡されたバイト配列に格納します。読み込み処理は、lenバイト分のデータがすべて読み取られるか、ストリームの終端(EOF)が検出されるか、例外がスローされるまでブロックされます。 また、readNBytes()メソッドは呼び出し後に入力ストリームをクローズしません。そのため、ストリームの再利用が可能であり、呼び出し側で明示的にclose()を行う必要があります。さらに、戻り値として実際に読み込めたバイト数が

  4. Java 9のProject Jigsawとは?モジュールシステムの概要とメリットを解説

    Java 9のProject JigsawとはProject Jigsawの最大の目的は、Java 9にモジュール(Modularity)という概念を導入し、開発者がモジュールを作成できるようにするとともに、その仕組みをJDK自体にも適用することでした。これにより、Javaプラットフォームは従来よりも柔軟で安全、かつスケーラブルな構造へと生まれ変わりました。モジュラリティ(Jigsaw)がもたらす主なメリット強力なカプセル化(Strong Encapsulation):モジュールは、外部利用が許可された部分にしかアクセスできません。module-info.javaファイルでパッケージが明示的に

  5. Java 9のJShellで覚えておきたいショートカットキー一覧

    JShellとはJShellは、Javaコードを対話的に実行し、結果を即座に確認できるインタラクティブなツールです。コンパイルやビルドの手順を踏むことなく、式や短いアルゴリズムを手軽に評価できます。JShellを利用すれば、式、クラス、メソッド、変数などをその場で実行して動作を確かめることが可能です。JShellで使える主なショートカットキー以下は、JShellでの入力・編集作業を効率化する代表的なキーボードショートカットです。Enter:入力した行を確定・実行する←(左矢印キー):カーソルを左に移動する→(右矢印キー):カーソルを右に移動するCtrl + A:行の先頭に移動するCtrl +

  6. Java 9でプログラムからJShellインスタンスを作成する方法

    JShellは、Java 9で導入された対話型ツールです。ユーザーが入力したコードを読み取り、評価し、その結果を出力するというシンプルなプログラミング環境をコマンドライン上で実現できる、Java初の公式REPL(Read-Eval-Print Loop)ツールです。 通常はコマンドラインから利用しますが、実はJavaのコードから新しいJShellインスタンスをプログラム的に作成することも可能です。JShellおよびその関連APIは、jdk.jshellパッケージに含まれています。 JShellの新しいインスタンスを取得するには、JShellクラスの静的メソッドcreate()を使用します。さら

  7. Java 9のJShellにおけるフォワードリファレンス(前方参照)とは?

    JShellとはJShellは、Java 9から導入されたコマンドラインツールです。単純なステートメントや複合ステートメントはもちろん、メソッドやクラス全体といったJavaのコードをその場で入力・評価し、結果を即座に表示できます。REPL(Read-Eval-Print Loop)環境として、小さなコード断片の動作確認や学習に非常に便利なツールです。フォワードリファレンス(前方参照)とはフォワードリファレンス(前方参照)とは、JShellに入力済みのコードにはまだ存在しないメソッド、変数、クラスを参照するコマンドのことを指します。JShellではコードが順番に1行ずつ入力され、評価されていくた

  8. Java 9で追加されたCollectors.filtering()メソッドとは?使い方とgroupingBy()との違いを解説

    Collectorsクラスは、JavaのStream APIにおいて欠かせない重要なクラスの一つです。Java 9では、このCollectorsクラスに新しいメソッドfiltering()が追加されました。このメソッドを使うと、ストリーム内の要素を柔軟にフィルタリングできます。filtering()メソッドとfilter()メソッドの違い一見すると、filtering()はストリームのfilter()メソッドと似た動作をするように思えます。しかし、両者には決定的な違いがあります。filter()メソッド:要素がグループ化される前に値を処理します。filtering()メソッド:Collecto

  9. Java 9のCollectors.flatMapping()メソッドとは?重要性と使い方を解説

    Java 9では、Collectorsクラスに新しいメソッドflatMapping()が追加されました。このメソッドは既存のCollectors.mapping()メソッドとよく似ていますが、ネストした(入れ子になった)コレクションを直接扱える点が大きな違いです。Collectors.flatMapping()は、入力要素に適用する関数と、その関数を通過した要素を蓄積するための下流コレクタ(downstream collector)を受け取ります。mapping()との決定的な違いは、flatMapping()が要素のストリームそのものを扱うため、不要な中間コレクションを排除できることです。こ

  10. Java 9のStackWalkerで各スタック要素にアクセスする方法を解説

    Java 9では、Thread.getStackTrace()、Throwable.getStackTrace()、SecurityManager.getClassContext()の代替手段として、StackWalker APIが新たに導入されました。このAPIは、必要なスタックフレームだけを走査・生成(マテリアライズ)する仕組みを提供しており、追加のスタックフレームが必要になった時点で初めて取得する「遅延アクセス」により、従来よりも効率的なスタックトレース処理を実現します。一方、例外のスタックトレースに含まれる各スタック要素へ個別にアクセスしたい場合は、Throwableクラスが提供するg

  11. Java 9の国際化(i18n)機能強化のポイントを徹底解説

    Java 9における国際化機能強化の概要Java 9の国際化(Internationalization)機能強化には、Unicode 8.0への対応、プロパティファイルのUTF-8読み込み、そしてCLDRロケールデータのデフォルト有効化が含まれます。Java 9はUnicode 8.0規格に対応しており、10,555文字、29のスクリプト(用字系)、42のブロックをサポートしています。プロパティファイルのUTF-8エンコーディング対応Java 9では、プロパティファイルがUTF-8エンコーディングで読み込まれるようになりました。デフォルトでは、入力ストリームの読み込み時に不正なバイト列が検出さ

  12. Java 9のtoEpochSecond()メソッドとは?使い方とサンプルコードを解説

    Java 9では、LocalDateクラスにtoEpochSecond()メソッドが提供され、ローカル日付をエポック秒へ変換できるようになりました。このメソッドは、LocalDateをエポックである1970-01-01T00:00:00Zからの経過秒数に変換します。さらに、LocalDateは指定された時刻(LocalTime)やゾーンオフセット(ZoneOffset)と組み合わせることで、1970-01-01T00:00:00Zを起点とした秒数を正確に計算できます。 構文 public long toEpochSecond(LocalTime time, ZoneOffset offset)

  13. Java 9のofInstant()メソッドとは?Instantから日付・時刻への変換方法を解説

    ofInstant()メソッドとはJava 9では、日付や時刻の変換を簡単に行うためにofInstant()メソッドが新たに導入されました。このメソッドは、LocalDateクラス、LocalTimeクラス、LocalDateTimeクラスのそれぞれに用意されている静的メソッド(staticメソッド)です。ofInstant()は、java.time.InstantオブジェクトをLocalDateなどの日付・時刻オブジェクトへ変換します。InstantはUTC(協定世界時)上のある時点を表すため、変換の際にはjava.time.ZoneIdの形式でタイムゾーンを指定する必要があります。構文pu

  14. Java 9のProcess APIでプロセスを破棄する方法|ProcessHandleの使い方を解説

    Java 9のProcess APIとは Java 9ではProcess APIが大幅に強化され、OS上で動作するネイティブプロセスに関する詳細な情報を簡単に取得できるようになりました。ProcessHandleインターフェースは、ネイティブプロセスの識別と制御を担い、プロセスの生存状態(liveness)の確認やプロセスの破棄を行うためのメソッドを提供します。また、ProcessHandle.Infoインターフェースを使えば、特定の時点におけるプロセス情報のスナップショットを取得できます。 プロセスを破棄するには、ProcessHandleインターフェースのdestroy()メソッドを呼び出

  15. Java 9のProcess APIでプロセスのすべての子プロセスを取得する方法

    Java 9のProcessHandleインターフェースとは Java 9では、OS上のプロセスを扱うための新しいクラスとAPIが導入されました。ProcessHandleインターフェースとその関連メソッドを利用することで、プロセスID(PID)や、親プロセス・子プロセスといった関連プロセスの詳細情報を簡単に取得できます。 あるプロセスのすべての子プロセスを取得したい場合は、java.lang.ProcessHandle.children()メソッドを使用します。このメソッドは、直接の子プロセスのスナップショットをStreamとして返します。なお、子プロセスを持たないプロセスに対しては、空のス

  16. Java 9のProcess APIですべてのプロセスデータを取得する方法

    Java 9のProcess APIによるプロセス管理 Java 9では、Process APIが拡張され、オペレーティングシステム上のプロセスをより細かく制御・管理できるようになりました。新たに導入されたProcessHandleクラスを使うと、プロセスのネイティブなプロセスID(PID)、開始時刻、累積CPU時間、引数、コマンド、ユーザー、親プロセス、子孫プロセスといった詳細情報を取得できます。 さらに、プロセスが生存しているかどうか(liveness)を確認するメソッドや、プロセスを破棄(destroy)するメソッドも用意されています。システム上で動作しているすべてのプロセスの情報は、静

  17. Java 9のリアクティブストリームを支える4つのコアインターフェースとは?

    Java 9では、java.util.concurrent.FlowパッケージのもとでReactive Streams(リアクティブストリーム)が導入されました。これは、相互運用可能なパブリッシュ・サブスクライブ(Publish-Subscribe)フレームワークをサポートするものです。リアクティブストリームは、非同期の境界を越えて(別スレッドやスレッドプールへ要素を渡しながら)データの非同期ストリームを処理します。この仕組みにより、受信側が任意の量のデータをバッファリングすることを強制されず、バッファオーバーフローの発生を防ぐことができます。Flow APIの4つのコアインターフェースFlo

  18. Java 9のSubmissionPublisherクラスとは?実装方法とReactive Streamsの基礎を解説

    Java 9におけるReactive Streamsの概要 Java 9からは、Publisher・Subscriber・Subscription・Processorという4つのコアインターフェースと、Publisherインターフェースを実装した具象クラスSubmissionPublisherが導入され、Reactive Streams(リアクティブストリーム)を標準APIとして扱えるようになりました。 各インターフェースはそれぞれ異なる役割を持ち、Reactive Streamsの設計原則に対応しています。 Publisher:データ(アイテム)を生成し、サブスクライバーへ配信する側の役割

  19. Java 9のCompletableFuture#delayedExecutor()メソッドとは?使い方と活用場面を解説

    Java 9では、CompletableFutureクラスにdelayedExecutor()メソッドが新たに追加されました。このメソッドを利用すると、指定した時間だけ処理を遅らせてからタスクを実行するExecutorを簡単に作成できます。リトライ処理や遅延実行が必要な非同期処理において非常に便利な機能です。 delayedExecutor()には、2つのオーバーロードされたメソッドが定義されています。 1つ目のメソッド: CompletableFutureがデフォルトで使用するExecutorオブジェクトをもとに、指定した遅延時間の経過後にタスクを実行する新しいExecutorオブジェ

  20. JavaのStackWalker APIを使ってさまざまなスタックフレームを出力する方法

    StackWalker APIとは Java 9では、遅延評価(レイジー処理)とフレームフィルタリングを提供するStackWalker APIが定義されました。StackWalkerオブジェクトを使用することで、スタックの走査やアクセスが可能になり、特に有用なメソッドとしてwalk()が用意されています。 walk()メソッドは、現在のスレッドに対してStackFrameのストリームを開き、そのStackFrameストリームに関数を適用します。StackWalkerオブジェクトを取得するには、StackWalker.getInstance()メソッドを使用します。 以下の例では、StackWa

Total 1930 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:54/97  20-コンピューター/Page Goto:1 48 49 50 51 52 53 54 55 56 57 58 59 60