Java中HelloWorld程序的组成分析和注意事项

  HelloWorld是每个程序员首次编码对代码世界的美丽问候,所以我借此文作为在csdn博客编写的第一篇博文,以后会经常在此记录自己的编程经历和经验和感悟!希望大家看完每篇文章后有意见的能给与评论,谢谢!


public class HelloWorld{

public static void main(String[] args){

String str = "HelloWorld";

System.out.println(str);

}

}


HelloWorld.java 组成分析:

  1个源文件:HelloWorld.java 

-------------------------------------------------

  4个字节码文件(存放于方法区):
   HelloWorld.class\String[].class\String.class\System.class

 (程序有4个类,所以编译时,jvm加载相应类的字节码文件)

---------------------------------------------------

  5个对象(大部分为堆区,字符串常量对象位于方法区的常量数据区):
   System.out\System.in\System.err\"Hello World"\""(空串)

 (这里需要注意,程序启动时,会创建三个输入或输出对象,由System调用实例属性进行返回调用,

  主方法的形参为字符串数组类型的变量,运行时没有在类名后跟上字符串,就会输入一个空串对象)
-------------------------------------------------
  2个局部变量(栈区):String[] agrs\String s

 (方法调用时会单独开辟一个栈帧区,局部变量包括方法中的形参都在该方法栈帧中占用内存,

  方法使用完后,就会释放掉该方法所开辟栈帧的内存空间)

--------------------------------------------------
  3个方法(方法区):System.out.println()\main()\toString()

 (方法在jvm内存中方法区中开辟空间)


main方法必须声明的三个标示符:public\static\void
  1.main方法声明为static,jvm通过类加载,将main方法置于jvm方法区
  2.main方法的访问权限只能设为public,否则jvm找不到入口方法
  3.mian方法的返回值为void,jvm不能处理main方法的返回值

注意:
  a.main方法中的参数为局部变量
  b.栈中对象引用的字节长度为四个字节
  c.字符串常量(双引号直接标示的,如"hello")开辟在方法区的常量数据区 
  d.对象的值:句柄 = 地址 = 引用
  e:main方法也可以重载,不推荐这样使用


最后注意:主类是编译时的入口,主方法是解释时的入口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值