Fork me on GitHub

一.初识JavaSE

Java应用程序的运行机制

计算机高级语言的类型主要有编译型(C,C++)和解释型(PHP,javascript,Python),而Java语言是两种类型的结合,即Java在运行的过程中既有编译过程也有解释过程。

image

之前说Java是安全的,为什么是安全的,就是它每次会在jre中有个字节码校验器,这个时候是jvm来帮我们和操作系统打交道的,实现跨平台的一个机制(Jre包含了JVM,)。

image

JVM、JRE和JDK

image

image

他们三者的关系如下图

image

image

配置Java运行环境

这里我就不说了,大家自己百度,JDK环境变量配置等等。。。

Java跨平台原理

image

C语言跨平台原理:

image

总结1:Java运行过程

  • Java程序的运行分为两步:先编译再解释执行
  • 通过“编译器”将Java源程序编译成Java字节码文件(.class)(字节码文件采用结构中立的中间文件格式)
  • 通过不同的“虚拟机”将Java字节码文件解释为对应机器语言并执行

总结2:Java跨平台和C跨平台的区别

  • Java:一次编译,到处运行 C:多次编译,到处运行
  • 在互联网情况下,平台各异,Java的跨平台更具有优势
  • Java可以跨所有平台吗:要看有没有提供并安装相应的虚拟机
  • Java的运行速度没有C语言快
  • Java需要将class文件解释成机器码再执行;C执行执行机器码

总结3:字节码文件bytecode

  • .class文件 二进制文件
  • 格式中立、平台无关的二进制文件
  • 是编译的产物,是解释的原料

总结4:Java虚拟机 JVM

  • JVM是Java Virtual Machine(Java虚拟机)的缩写
  • JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
  • JVM就是一个虚拟的用于执行bytecodes字节码的计算机
  • Java虚拟机是Java最核心技术,也是跨平台的基础。
  • Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
  • Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因

Java程序解析

  • Java对大小写敏感,如果出现了大小写拼写错误,程序无法运行
  • 关键字public被称作访问修饰符(access modifier),用于控制程序的其它部分对这段代码的访问级别
  • 关键字class的意思是类。Java是面向对象的语言,所以代码必须位于类里面
  • 一个源文件中至多只能声明一个public的类,也就是说源文件其他类不能声明为public,其他类的个数不限,如果源文件中包含一个public类,源文件名必须和其中定义的public的类名相同,且以”.java”为扩展名
  • 一个源文件可以包含多个类
  • 正确编译后的源文件,会得到相应的字节码文件,编译器为每个类生成独立的字节码文件,且将字节码文件自动命名为类的名字以”.class”为扩展名
  • main方法是Java应用程序的入口方法,它有固定的书写格式
  • 程序中的全部内容都包含在类中,Java是一种面向对象的语言。
  • public static void main(String[] args ) {…}
  • 在Java中,用花括号划分程序的各个部分,任何方法的代码都必须以“{”开始,以“}”结束, 由于编译器忽略空格,所以花括号风格不受限制
  • Java中每个语句必须以封号结束,回车不是语句的结束标志,所以一个语句可以跨多行

最常用的DOC命令

image