Thread オブジェクトを作成する場合 - Thread t1=new Thread(); メソッドを静的に呼び出すことができるクラス Thread のインスタンスを作成したことを実際に意味するのでしょうか? (例: sleep())。
静的メソッドを呼び出す場合、オブジェクトから呼び出すのではありません。それが静的な理由です。インスタンスが静的メソッドを実行する必要はありません。
例
Thread t1 = new Thread();
t1.checkAccess(); // <--- This is an instance method.
Thread.activeCount(); // <-- This is a static method.
キーワードが表示new
されている場合は、新しいオブジェクトが作成されていることを意味します。この場合、Thread
あなたが言ったように、それは class のインスタンスでした。
どのようにそれらを区別しますか?
まあ、それは簡単です。インスタンス メソッドの場合は、オブジェクトのコンテキストから呼び出されます。
String str = new String("hello");
str = str.replaceAll("o", "");
ご覧のとおり、インスタンス メソッドを使用するにはインスタンスを作成する必要があります。
静的メソッドを使用すると、さらに簡単になります。それらは、クラスの名前だけで呼び出されます。
String.copyValueOf(new char[] {'a', 'b', 'c'});
新しいString
インスタンスを作成する必要はありません。クラスの名前を使用するだけです。
注: コメントで指摘されているように、静的メソッドインスタンス オブジェクトから呼び出すことができますが、これは一般的な方法ではありません。確信が持てない場合は、ドキュメンテーションが最良の友です。または、静的コンテキストから同じメソッドを呼び出してテストすることもできます。
インスタンス メソッドの代わりに静的メソッドを使用する場合
Java: 静的メソッドをいつ使用するか、それを繰り返すことに意味がありません:)