黑马程序员技术交流社区
标题:
java基础小问题
[打印本页]
作者:
Emperors
时间:
2014-4-11 21:53
标题:
java基础小问题
本帖最后由 Emperors 于 2014-4-14 01:01 编辑
是不是主语句中没有static,就是非静态?
作者:
jingdou56
时间:
2014-4-11 22:39
去掉 static 就不是主函数了,
虚拟机只认为是一个名字叫 main 的方法了!
作者:
姜姗姗
时间:
2014-4-11 22:56
楼上说的对,main函数是给JVM来调用的,而在刚刚调用的使用,是没有对象的对吧,这是很显然的一件事,调用方法两种方式
1 对象.方法() 2 类名.方法()
所以只能用第二中方法,而第二种方法是静态方法,主函数优先于对象存在于内存中,所以必须是静态static的,这样才能调用,main被JVM调用了,从成为了程序的唯一入口。
作者:
展展
时间:
2014-4-11 22:58
public static void main(String[] args)
这里的static必须要加的,这是JVM识别程序入口的地方,不能乱改动,你就当作定死模块的记住吧
至于其他函数有static或者变量,那就是设置是否为static 静态的意思
作者:
skyfly
时间:
2014-4-12 00:11
首先static可以修饰类,类成员(变量,函数),还有static代码块。被static修饰的成员变量和成员方法独立于该类的任何对象,即它们不需要对象(实例)存在而存在,能被其他对象调用;当该类被加载,JVM根据类名直接找上static,把它们先加载了,无需实例,所以static在主句中属于类而不是对象。
主语句main 是被赋予特殊含义,即这是程序入口,也是程序结束处。
假如不是静态,要启动main方法就得创建实例,但是mian是主程序,然后创建实例又回到main。
这个main方法与其他对象是无关的,所有功能都是main方法里面函数调用,产生对象。所以也不需要为了使用main方法去创建一个实例,直接static静态设置,类被加载,它也直接被加载。
----------期待进入黑马----便开始从这努力-----黑马是个好的起点----
作者:
Emperors
时间:
2014-4-12 00:25
skyfly 发表于 2014-4-12 00:11
首先static可以修饰类,类成员(变量,函数),还有static代码块。被static修饰的成员变量和成员方法 ...
谢谢 欧了
作者:
周俊波
时间:
2014-4-12 11:53
首先你应该知道java内存机制,静态的东西 是放在data segment的,是不能通过对象名来调用的,可以通过类名来调用,在一个程序开始的时候JVM要找到main函数,但是呢,在JVM调用main()的时候又没有new main()的对象来指向main(),所以必须有static,去掉static的确是非静态的了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2