java中的main方法,为什么是静态(static)的?

i李小武 2010-06-13 09:54:24
public static void main(String [] args)
{
......
}
main方法为什么是静态的?
...全文
971 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
qhitly 2011-08-09
  • 打赏
  • 举报
回复
没分了 急啊
qixiaolei1758 2010-06-17
  • 打赏
  • 举报
回复
main方法被声明成 public static 以便类的外部的声明的代码和类的任何对象建立之前调用;静态类都是加载在内存中的(Java程序开始运行首先是从静态类开始的),不需要对它们进行实例化,也不需要实例化;而“类是对象的抽象,对象是类的实例化”,程序实际实际用的是对象,而类只是方便了我们的编程(面向对象更符合人类的思维,通过复用代码来简化我们编程的代码量)。首先,每个程序只有一个入口(开始程序)和一个出口(结束程序)(所以Java中goto跳转时访问保留字),Java借鉴了许多语言的优点,尤其是c语言的,main就是入口,也是出口。static的main不需要找类生产对象,而是main中的内容直接加载到内存中开始运行程序,由类生成对象,对象完成你需要的功能。
humanity 2010-06-16
  • 打赏
  • 举报
回复
每天登录回贴,CSDN 赞助分数
my_mobile 2010-06-16
  • 打赏
  • 举报
回复
使用STATIC声明的对象和方法可通过类名直接访问,其中的MAIN是内建的方法。
焙焙龙 2010-06-16
  • 打赏
  • 举报
回复
JAVA中的任何方法/函数都必须依附于某个类,而main方法仅仅用作程序的入口而已,无需搞得很复杂,你觉得static和非static方法哪个调用起来更方便呢?
mymtom 2010-06-16
  • 打赏
  • 举报
回复
偶初学JAVA,来蹭点分。
hfCoder 2010-06-16
  • 打赏
  • 举报
回复
不懂,up
chainhou 2010-06-16
  • 打赏
  • 举报
回复
呵呵,比较深入
zxjdai 2010-06-16
  • 打赏
  • 举报
回复
一种规则约束而已,遵从便是
i李小武 2010-06-16
  • 打赏
  • 举报
回复
差不多明白了
lizhy09QIHANG 2010-06-16
  • 打赏
  • 举报
回复
那么以前是怎么调用的?鸡生蛋,蛋生鸡,何时了?[Quote=引用 19 楼 ostroff 的回复:]

在以前main()方法可以不是static的,后来的JSR规范强制规定main()方法的格式必须是:
public static void main(String[] args)
[/Quote]
diginame 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 apeipo 的回复:]
如果不是静态的话,要启动就必须创建一个实例,但是main是程序入口,创建一个实例又得从main开始.

鸡生蛋,蛋生鸡。
[/Quote]
我赞同~~
zzg_boy 2010-06-14
  • 打赏
  • 举报
回复
《Java编程思想》有言:如果不需要内部类对象与其外围内对象之间有关系,那么可以将内部内声明为static。记住,普通的内部类对象隐式地保存了一个引用,指向创建它的外围对象……(详
ZangXT 2010-06-14
  • 打赏
  • 举报
回复
就是规定。
  • 打赏
  • 举报
回复
《Java编程思想》有言:如果不需要内部类对象与其外围内对象之间有关系,那么可以将内部内声明为static。记住,普通的内部类对象隐式地保存了一个引用,指向创建它的外围对象……(详见:201页)
zhanlang9075 2010-06-14
  • 打赏
  • 举报
回复
zhanlang9075 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lanjianyi 的回复:]
首先是 static 方法可以直接通过类名.方法名 访问到。其次为何是main方法,估计是jvm自己设计成这个样子,使得大家都统一了程序入口方法。
[/Quote]
先要顶顶 最佳答案
zhpsdsg 2010-06-14
  • 打赏
  • 举报
回复
学习了
ronniegxq 2010-06-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 apeipo 的回复:]

如果不是静态的话,要启动就必须创建一个实例,但是main是程序入口,创建一个实例又得从main开始.

鸡生蛋,蛋生鸡。
[/Quote]
dddddz 2010-06-14
  • 打赏
  • 举报
回复
java中static方法属于类而不是属于某个对象,所以static是可以直接调用的,main方法也一样。static的main方法可以直接被虚拟机调用,方便。
加载更多回复(15)

62,617

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧