HelloWorld.java是我们学习java的第一个程序,简单的再也不能简单了,可是里面的原理以及执行流程大家都知道吗?最近在复习java知识,特地钻研了一番分享给大家!

贴出HelloWorld的代码如下:

public class HelloWorld {
public static void main(String[] args)
{
String s ;
s = “Hello World!”; //定义字符串s
System.out.println(s);
}
}

分析内存图:

HelloWorld的具体执行过程:

1.执行HelloWorld.java文件,生成HelloWorld.class字节码文件;

2.虚拟机执行HelloWorld.class,将这个类加载到内存中(即方法区的类代码区中);

3. 虚拟机通过类找到HelloWorld的主方法(程序的入口方法),访问权限为public(公有可用),虚拟机传递String[](字符串数组对象:空数组)类型参数的地址到主方法的args中去,并在栈区为args开辟内存空间,返回一个void的返回值;

4.定义一个String(标准类库中的)类型的变量(在栈区开辟空间)s,s的值不确定(垃圾值,编译无法通过);

5. s = “Hello World!”,对象“Hello World!”在方法区的常量数据区开辟空间,属性即为:Hello World!,方法即为:toString(),变量s存放对象“Hello World!”的地址;

6. 虚拟机找到标准类库中的System.class类并加载到内存中(即方法区的类代码区中),System.out为标准字节输出流对象(),并调用println()方法将变量s的值打印到屏幕上。

PS: 虚拟机调用主方法时会创建三个默认对象:System.out(标准字节输出流对象)、System.in(标准字节输入流对象)和System.error(标准字节出错流对象).

以上共涉及:

1个java文件:HelloWorld.java

4个class类: HelloWorld.class、String[].class、String.class、System.class

5个对象: “Hello World!”、String[]、System.out、System.in、System.error

2个变量:args、s

3个方法:main()、toString()、println()

最新文章

  1. JavaScript学习08 Cookie对象
  2. 安卓手机开机开启指定Activity
  3. 正则表达式学习日记zz
  4. mesos概述
  5. install ios开发环境
  6. POJ 1236
  7. 点点滴滴-NET下的常用框架
  8. HDU4763 - Theme Section(KMP)
  9. Cloud Insight 客户案例-晨芯时代科技有限公司
  10. Js 表单序列化
  11. Android调试优化篇
  12. 【Netty】Netty核心组件介绍
  13. web兼容性测试相关知识
  14. Python内置函数(15)——memoryview
  15. golang 常见疑惑总结
  16. Cygwin工具安装和使用指导书
  17. Excel 驼峰表达式
  18. Win版:Adobe 全系列软件模拟授权注册破解工具 AMT Emulator V0.9.2
  19. Oracle错误——SP2-0734: 未知的命令开头 "imp C##sin..." - 忽略了剩余的行。
  20. docker-compose使用volume部署mysql时permission deny问题解决

热门文章

  1. POJ1446 Girls and Boys
  2. AutoCompleteTextView 简单用法
  3. day02_雷神_字符串、列表、字典
  4. 2.Django模型
  5. Android-WebView与本地HTML (Java调用--->HTML的方法)-(new WebView(this)方式)
  6. Aggregate类型以及值初始化
  7. 统计--VARCHAR与NVARCHAR在统计预估上的区别
  8. .NET Core 跨平台 串口通讯 ,Windows/Linux 串口通讯,flyfire.CustomSerialPort 的使用
  9. ASP.NET MVC5 高级编程-学习日记-第三章 视图
  10. Lerning Entity Framework 6 ------ Inserting, Querying, Updating, and Deleting Data