在一次采访中,我问过这个问题:如果不使用静态和主要,我们如何在控制台上打印消息?是否可能?
答案 0 :(得分:26)
您可以定义打印邮件的自定义类加载器:
public class MyClassLoader extends ClassLoader {
public MyClassLoader(ClassLoader other) {
super(other);
System.out.println("Hi there");
System.exit(0);
}
}
然后运行java命令:
java -Djava.system.class.loader=MyClassLoader
(不需要添加类作为参数)
答案 1 :(得分:2)
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())。所以你无法在不调用main()方法或通过静态函数/块。
答案 2 :(得分:0)
Java是一种OOP语言。
如果没有创建类并添加静态主函数,则无法创建程序。
然后,您可以致电System.out.println
打印一行。
所以,答案是否定的。
答案 3 :(得分:0)
您始终需要将syso
放在代码块中,可能是:
public class example {
public void message(){
System.out.println("Hello");
}
}
这里的方法不是静态的
答案 4 :(得分:0)
public class Test {
public static PrintStream ps = System.out.printf("%s", "hello");
}
面试很奇怪的问题。它会打印你好,并抛出Exception in thread "main" java.lang.NoSuchMethodException
。
答案 5 :(得分:0)
答案绝对不是。
至少要么你需要一个静态块,要么你需要一个空的main()。
见下面的例子:
1
public class ABC {
static{
System.out.println("hai");
}
public static void main(String[] args) {}
}
输出:
海
2
public final class ABC {
static{
System.out.println("hai");
}
}
它会在跑步时打印'hai'但在此之后也会发生一个例外。
输出:
java.lang.NoSuchMethodError:main
海
线程“main”中的异常
答案 6 :(得分:0)
可以使用在main方法之前执行的静态块
答案 7 :(得分:0)
@ 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()");
}
}