インタビューで私はこの質問をしました:静的とメインを使わないと、どうやってコンソールにメッセージを表示できますか?Javaのメインブロックと静的ブロックを持たないコンソールにメッセージを出力することはできますか?
答えて
あなたのメッセージを出力するカスタムクラスローダを定義することができ
java -Djava.system.class.loader=MyClassLoader
(パラメータとしてクラスを追加する必要はありません)
@Chafousin @Chafousinその働き!説明できますか?java -Djava.system.class.loaderの略語 – shree18
'-Djava.system.class.loader'は、JVMクラスローダ、つまり読み込みを担当するオブジェクトを定義するために使用されますクラス。ここでは独自のクラスローダーを提供し、テキストを表示して終了するように「ハック」します。 –
JavaはOOP言語です。
クラスを作成せずに静的メイン関数を追加することなく、プログラムを作成することはできません。
次に、System.out.println
を呼び出して行を印刷することができます。
したがって、答えはいいえです。
あなたはJavaが好きではないが、名前の呼び出しに頼る必要はない。 – MikeTheLiar
あなたはいつも、おそらく、コードのブロックにsyso
を配置する必要があります。
public class example { public void message(){ System.out.println("Hello"); } }
方法は面接のための静的
しかし、この非静的コードはどのように実行されますか? – vikingsteve
@Savinsあなたが提供した解決策は、関数を呼び出すmain()メソッドが必要です** "message" ** – r3ap3r
@ r3ap3r私はよく分かりませんが、飛行機は必要ではありません。デプラの間にオブジェクトの値を表示するには、テストでは、主な方法はありません。これは非常に特殊なケースであることは事実です。 – Savins
public class Test {
public static PrintStream ps = System.out.printf("%s", "hello");
}
かなり奇妙な質問ではありません。こんにちはを印刷し、Exception in thread "main" java.lang.NoSuchMethodException
を投げます。
Java7の/ではない!私はあなたのコードを試して、私は**エラー:主なメソッドは、クラスのテストでは見つかりませんでしたメインメソッドを定義してください: public static void main(String [] args)** –
まあ、6 javaで動作します。 7番目のコードがmainメソッドなしで実行されないことは本当です。しかし、それはまだ静的変数を持っています。私はそれが受け入れられるかどうかを知らない。 – Mikhail
私はそれがJava 7で修正されたバグのようなものだと言っています。クラスをロードした後にmain()メソッドが検索されたため、7より前のすべてのJDKで動作します。 –
I have asked this question:Without using static and main how could we print
message on console?Is it possible?
回答はいいえ!
main()メソッドが呼び出されない限り、何も実行できません。 Java(登録商標)7以前は、main()メソッドが参照される前にクラスがロードされていました。したがって、静的ブロック(静的ブロックはクラスがロードされたときに実行されます)からデータを印刷できますが、Java 7以降ではそれは不可能です。したがって、まずmain()メソッドを最初に実行する必要があります。
Spring Beanのようなフレームワークでも、コンテキストが参照されるときにのみ初期化されます(main()も最初に実行する必要があります)。静的関数/ブロックを通して。
public class MyClassLoader extends ClassLoader {
public MyClassLoader(ClassLoader other) {
super(other);
System.out.println("Hi there");
System.exit(0);
}
}
が続いてjavaコマンドを実行します:
@ Aniket Thakurあなたは正しいですが、私の質問はメインブロックと静的ブロックでした。プライベートstatic int i = m1(); public static int m1(){ System.out.println( "Test ... !!!!"); System.exit(0); return 0; } – shree18
@ shree18 main()メソッドのルックアップの前にクラスがロードされたため、前に述べたように、コードはJava 7以前でのみ動作します。あなたの質問が考慮されるように(インタビューの視点を考慮して)、あなたが最近のJavaの変更を認識していないことだけを示すあなたのコードではいと答えた場合。私は最近のことを言ってはいけません:P(Java 7は今のところずっと続いていましたが)あなたが私の意見を得ることを願っています。 –
答えは間違いありません。
少なくとも静的なブロックが必要か、空のmain()が必要です。
は、以下の実施例を参照してください
public class ABC {
static{
System.out.println("hai");
}
public static void main(String[] args) {}
}
OUTPUT:
ハイ
2。
public final class ABC {
static{
System.out.println("hai");
}
}
「hai」は実行中に表示されますが、そのあとで例外が発生します。
OUTPUT:
java.lang.NoSuchMethodErrorのメイン
ハイ
可能
スレッドの例外 "メイン" メインメソッドの前
を実行静的ブロックと@ Aniket Thakur 私のポイントのためコメントできません。次のプログラムはmainに入る前にメッセージを出力します。 注:私はJava 7とJava 8を使用しました。両方とも正常に動作し、mainの前に静的ブロックを実行します。
public class PrintBeforeMain {
private static int i = m1();
public static int m1(){
System.out.println("m1(): Before main() through static method...");
return 0;
}
static{
System.out.println("Inside standalone static{} block");
}
public static void main(String[] args) {
System.out.println("Inside main()");
}
}
- 1. メインメソッド、静的変数、静的メソッドを使用せずにJavaメッセージをコンソールに出力できますか?
- 2. JPQLで静的Javaメソッドを呼び出すことはできますか
- 3. 静的ブロックと静的でない原始的なデータフィールド
- 4. JSP/Java/HTML | JSP out.println();メソッドのときにコンソールに出力する
- 5. Java出力コンソールのエラーメッセージをファイルに出力しますか?
- 6. なぜ静的クラスは静的メンバーのみを持つことができますか?
- 7. 静的な方法でsynchronizedブロックでwait()を呼び出すと、Javaはjava.lang.IllegalMonitorStateExceptionをスローします。
- 8. C++でフラッディングすることなくコンソールに出力
- 9. Ruby on Railsプロジェクトで静的ファイルに関するメッセージをサイレントにすることはできますか?
- 10. Javaの静的ブロックを擬似する
- 11. Workerスレッドから静的クラスインスタンスの静的メソッドを呼び出すことはできますか?
- 12. C#で静的関数内で非静的関数を呼び出すことはできますか?
- 13. libstdC++とmemcpyを静的にリンクすることはできますか?
- 14. C#の静的メソッドとコンソール
- 15. Javaで静的初期化ブロックを使用するのはなぜですか?
- 16. Pythonコンソールはsypderコンソールとは異なる出力を表示します
- 17. コンソールに出力するときに改行を防止する
- 18. 静的TLSブロックでメモリを割り当てることができません
- 19. フレームワークを別のフレームワークに静的にリンクすることはできますか?
- 20. 私のJavaコードでhtopの出力を読むことはできますか?
- 21. クラスをJavaで静的としてインスタンス化できますか?
- 22. jquery tablesorterプラグインを使用しています - 静的な列を持つことは可能ですか?私は、静的なコラムで何を意味するか
- 23. JavaScriptをJavascriptコンソールにレンダリングすることはできますか?
- 24. オプションで、CMakeを使用して静的または動的ブーストライブラリにリンクすることはできますか?
- 25. コンソールの幅をJavaで見つけることはできますか?
- 26. Doxygenが保護されたメンバーを出力できないようにすることはできますか?
- 27. Cプログラムの出力はコンソールに行くべきですが、リダイレクトすることはできません。
- 28. インスタンス変数を持たないときに静的メソッドを使用できますか?
- 29. Mockito:、私はmockitoから何かを(静的または非静的メソッド)模擬することができません静的&非静的メソッド
- 30. 私のコンソールに出力がないのはなぜですか?
[main()メソッドを使用せずにコンソール上の印刷メッセージ]の可能な重複(http://stackoverflow.com/questions/8605137/printing-message-on-console-without-using-main-method) –
@Razaしかし、mainまたはstaticブロックにない場合、sysout呼び出しはどこに行きますか? – vikingsteve
このリンクを試してください:[メインメソッドなしのJavaでの印刷メッセージ/静的ブロック](http://stackoverflow.com/questions/18171465/can-we-print-a-java-message-on-console-without-using- main-method-static-variabl)を使用します。上記の解決方法では、main()関数を使用して** "イニシャライザブロック" **を呼び出します。 – r3ap3r