Java 9のJShellで覚えておきたい便利なコマンド徹底解説
Java 9では、JShellと呼ばれる新しい対話型ツールが導入されました。このツールを使うと、Javaのクラス、インターフェース、列挙型(enum)、オブジェクト、ステートメントなどを、ユーザーにとって分かりやすく手軽な形で実行・テストすることができます。JShellは、ユーザーが入力したコマンドを評価(評価して結果を返す)することで動作し、その仕組みはREPL(Read-Evaluate-Print-Loop:読み込み→評価→表示→繰り返し)の原理に基づいています。
ここでは、JShellで特に役立つ重要なコマンドをいくつか紹介します。
/var ― 宣言済みの変数を一覧表示する
/varコマンドを使うと、これまでに使用したすべての変数の一覧を取得できます。計算を実行すると、JShellは暗黙的な変数を自動的に作成します。/varコマンドを入力すると、それまでに宣言されたすべての変数が表示されます。以下の例では、$1、$2、$3が該当します。
実行例
jshell> 2+5 $1 ==> 7 jshell> 8%3 $2 ==> 2 jshell> 9/3 $3 ==> 3 jshell> /var | int $1 = 7 | int $2 = 2 | int $3 = 3
/types [option] ― クラスやインターフェースの型情報を確認する
/types [option]コマンドは、宣言されたすべてのクラス、インターフェース、enumの型情報を表示します。[option]には、確認したい対象の具体的な名前またはIDを指定できます。存在しない名前を指定した場合は、「No such snippet」というメッセージが返されます。
実行例
jshell> class Test1 {
...> void testMethod1() {
...> System.out.println("TutorialsPoint");
...> }
...> }
| created class Test1
jshell> /types Test1
| class Test1
jshell> /types Test2
| No such snippet: Test2/methods ― 定義済みのメソッドを確認する
/methodsコマンドは、それまでに宣言されたすべてのメソッドの一覧を表示します。以下の例では、demo()というメソッドを作成し、その内容を確認しています。
実行例
jshell> String demo(String firstName, String lastName) {
...> return firstName + lastName;
...> }
| created method demo(String, String)
jshell> /methods
| String demo(String, String)/list ― 入力履歴(スニペット)を一覧表示する
/listコマンドは、JShellの中でも最も便利なコマンドのひとつです。それまでに入力・作成したすべてのスニペット(コード断片)を一覧形式で確認できます。変数、クラス定義、メソッド定義など、セッション中の作業履歴をまとめて振り返りたいときに活用しましょう。
実行例
jshell> /list
1 : 2+5
2 : 8%3
3 : 9/3
4 : class Test1 {
void testMethod1() {
System.out.println("TutorialsPoint");
}
}
5 : String demo(String firstName, String lastName) {
return firstName + lastName;
}これらのコマンドを活用することで、JShell上でのJavaコードの検証や学習がより効率的に行えます。小さなコードを即座に試せるREPL環境は、新機能の動作確認や文法の復習にも最適です。
-
Java 9のJShellで使える「/edit」コマンドの種類と使い方
JShellは、Java 9で導入されたコマンドラインツールです。main()メソッドを用意しなくても、宣言・ステートメント・式をその場で評価できるのが大きな特徴です。さらに、JShellにはJShell Edit Padという簡易テキストエディタが組み込まれており、「/edit」コマンドで起動することで、入力済みのコードを手軽に編集できます。 /editコマンドの3つの形式 JShellで利用できる「/edit」コマンドには、次の3つの形式があります。 /edit /edit [ID] /edit [コード名] /edit:引数なしで実行すると、現在アクティブなすべてのコードがテキストエデ
-
JavaのString intern()メソッドとは?その役割と使い方をわかりやすく解説
JavaにおけるStringクラスの基本Stringは、Javaで一連の文字(文字列)を格納するためのクラスで、java.langパッケージに属しています。Stringオブジェクトは一度生成すると内容を変更できない「イミュータブル(不変)」という特性を持っています。文字列の保存場所すべてのStringオブジェクトは、ヒープ領域内にある「文字列定数プール(String Constant Pool)」と呼ばれる専用のメモリ領域に格納されます。文字列リテラルを定義するたびに、JVMは文字列定数プール内にその値を持つStringオブジェクトを生成します。そのため、同じ内容の文字列リテラルが複数存在して