第一个Java应用

1、每个Java源文件可包含多个类或接口的定义,但是至多只有一个类或者接口是public类型的,而且Java源文件必须以其中public类型的类的名字命名。
2、return语句有2个作用
①结束执行本方法
②向本方法的调用者返回数据
3、程序入口main()方法必须同时符合以下4个条件
●访问限制:public
●静态方法:static
●参数限制:main(String[]args)
●返回类型:void
public static void main(String [] args)
public static void main(String args [])
static public void main(String [] args)
由于static修饰的方法默认都是final类型的(不能被子类覆盖),所以在mian()方法前加上修饰符final也是可以的。
4、JDK主要包括以下内容:
☞Java虚拟机:负责解析和执行Java程序。Java虚拟机可以运行在各种操作系统平台上。
☞JDK类库:提供了最基础的Java类及各种实用类。
☞开发工具:这些开发工具都是可执行程序,主要包括:javac.exe(编译工具)、java.exe(运行工具)、javadoc.exe(生成java文档的工具类)和jar.exe(打包工具)等。
5、Java虚拟机的运行时数据区
Java语言之所以有跨平台的特点,要归功于Java虚拟机。Java虚拟机封装了底层操作系统的差异,不管是在哪种平台上,都按照以下同样的步骤来运行程序。
①把.class文件中的二进制数据加载到内存中
②对类的二进制数据进行验证
③解析并执行指令
Java虚拟机提供了程序运行时环境,运行时环境最重要的一个资源是运行时数据区。运行时数据区是操作系统为Java虚拟机进程分配的内存区域,Java虚拟机管辖着这块区域,它把该区域进一步划分为多个子区域,主要包括堆区、方法区和Java栈区等。在堆区中存放对象,在方法区存放类的类型信息,类型信息包括静态变量和方法信息等,方法信息中包含所有方法的字节码。

package dallapp;

public class Dall {
private String name;

public Dall(String name) {
    this.name = name;
}
public void speak(){
    System.out.println(name);
}
}

package dallapp;

public class MainDall {

public static void main(String[] args) {
    Dall beibei=new Dall("贝贝");
    beibei.speak();
}

}

“`
当运行java AppMain命令时,就启动了一个Java虚拟机进程,该进程首先从classpath中找到AppMain.class文件,读取这个文件中的二进制数据,把AppMain类的类型信息存放到运行时数据区的方法区中。这一过程称为AppMain类的加载过程。Java虚拟机加载了类之后,还会对类进行验证及初始化。Java虚拟机接着定位到方法区中AppMain类的main()方法的字节码,执行它的指令。main()方法的第一条指令为:
Dall beibei=new Dall(“贝贝”);
以上语句创建一个Dall实例,并且使用引用变量beibei引用这个实例。Java虚拟机执行这条语句的步骤为:
☞搜索方法区,查找Dall类的类型信息,由于此时不存在该信息,因此Java虚拟机先加载Dall类,把Dall类的类型信息放在方法区。
☞在堆区为一个新的Dall实例分配内存,这个Dall实例持有指向方法区的Dall类的类型信息的引用。这里的引用,实际上指的是Dall类的类型信息在方法区中的内存地址,在Dall实例的数据区存放了这一地址。
☞beibei变量在main()方法中定义,它是局部变量,被添加到执行main()方法的主线程的Java方法调用栈中。这个beibei引用堆区中的Dall实例,也就是说,它持有指向Dall实例的引用。
这里写图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值