main函数的作用只是作为一个入口
使Java虚拟机知道从哪里执行
Java Virtual Machine Specification
一旦程序启动main便成为类中一个普通的方法
不调用不执行
这时再new main函数所在类便不会执行main函数,只会执行构造方法
例1
class kk {
public kk() {
System.out.println("First");
}
public static void main(String[] args) {
new kk();
}
}
如果new kk类时默认执行main函数那么就会循环产生First,而不是只产生一个
例2
class kk extends Thread {
public static void main(String[] args) {
Thread threadNew1 = new kk();// 创建线程
Thread threadNew2 = new kk();// 创建线程
threadNew1.start();// 调用线程的strt()方法启动线程
threadNew2.start();
while(true) {
String threadName = Thread.currentThread().getName();
System.out.println(threadName);
}
}
@Override
public void run() {
while(true) {
String threadName = Thread.currentThread().getName();
System.out.println(threadName);
}
}
}
本段代码new main函数所在的类,但是并没有使线程越来越多,因为main函数仅执行了一次