Java语法基础(二)

Hello Java

1、一般考虑开发效率的情况下可以使用IDE集成开发环境工具,目前练习一天采用的是记事本之类的文本编辑工具,Centos下使用的是vi/vim

2、创建一个文本文件修改名称为Hello.java

3、Java是一个面向对象的编程语言,所以编写程序的开始就是定义类的开始,如果类是public类型的类,则类名称必须和文件名称一致(不包括后缀,包括大小写)

public class Hello //public class是系统定义的关键字,用于声明定义一个类;Hello是用户自定义的类名称,如果是public类则类名称和文件名称一致,包括大小写,{}中用于用户自定义程序
{
	public static void main(String[] args){ //定义程序执行的起始点,注意方法签名是固定的,如果写错任何一个地方则程序不能正常执行
		System.out.println("Hello Java!");//程序的执行逻辑。在Java中语句以;收尾,System.out.println用于实现在屏幕上输出字串内容,所谓的字串就是引号中所包含的字符序列
	}
}

4、在命令行下执行编译,编译操作可以将程序.java转换为后缀为.class的二进制文件(字节码文件)。名称和源代码文件一致,只是后缀为.class的二进制文件。

在这里插入图片描述

如果有语法错误则返回文本编辑工具进行修改,直到编译通过生成一个.class文件,文件名称和.java名称一致

javac.exe就是编译器

javac Hello.java【源代码文件名称]编译,将源代码转换为虚拟机可以识别的中间性质语言,一般生成一个同名的后缀为class的文件【二进制文件,字节码文件】,这里就是跨平台的原理】

5、执行程序,语法为java 类名称。例如java Hello,注意这里是类名称,不是文件名称,所以没有后缀.class

java.exe就是解释器

在这里插入图片描述

Java文件的类型

Java文件的类型有两种:

  • 扩展名为java的文件:是Java源文件,属于编译之前的纯文本文件,存储java源代码

  • 扩展名为class的文件:是Java类文件,属于编译之后的二进制文件,存储字节码。

Java的编译运行原理

在这里插入图片描述

首先编写java源文件,然后编译成class类文件【javac,ML文件–跨平台】,然后通过虚拟机解释成机器码到硬件执行。

Java既不是完全编译型,也不是完全解释型,是半编译半解释的。特殊例外。

Java语言区分大小写:不管是数据还是标识符或者关键字都区分大小写,例如public不能写成Public,“abc”不能写成“ABC”,inti不能写成INTI等

main方法作用:这是程序的入口方法,是由虚拟机自动调用的----方法签名不能出错,否则程序不能运行

public static void main(String[] args)

java虚拟机与运行平台

java程序语言必须先经过编译,然后再利用解释的方式来运行。一个java程序先要使用编译器compile将其转化成与平台无关(Windows、DOS或Linux操作系统就是一种平台)的机器码,把这种机器码称为字节码byte-codes。然后通过解释器interpreter可以解释并运行java的字节码

Java能够解决互联网应用的安全和可移植性的关键在于Java编译器的编译结果不是可执行代码,而是字节码。字节码是一系列设计用来由名为Java虚拟机的Java运行时系统执行的高度优化的指令。Java虚拟机值一个字节码的解释器。

字节码的执行的三个大步骤

由类装载器负责把类文件加载到java虚拟机中,在此过程需要检验该类文件是否符合类文件规范

字节码校验器检查该类文件的代码中是否存在着某些非法操作

如果字节码校验器检验通过,由java解释器负责把该类文件解释成为机器码进行执行

java虚拟机采用的是沙箱运行模式,即把java程序的代码和数据都限制在一定内存空间里执行,不允许程序访问该内存空间外的内存

总结Java虚拟机中类加载的过程:系统会通过加载、连接、初始化三步来实现这个类进行初始化。

链接包括验证、准备以及解析三个阶段。(1)验证阶段。主要的目的是确保被加载的类满足Java虚拟机规范,不会造成安全错误。(2)准备阶段。负责为类的静态成员分配内存,并设置默认初始值。(3)解析阶段。将类的二进制数据中的符号引用替换为直接引用。

java字节码特性的最大的好处就是可以使java开发的程序跨平台运行,也就是说只要某种平台上配备了java虚拟机,它就可以运行java的字节码文件。“一次编写,到处运行”就是对java语言特性的极好描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值