Java基础(10)——小结与填坑

前面都写了9篇啦,虽然断断续续发了半个月,写着写着会发现每篇中都有些比较重要的地方没有讲到~这篇还是需要填一填目前我已发现的坑了~

一、 小结

  1. Java编译命令 javac、运行命令java
  2. java默认字符编码为Unicode
  3. Java程序从main方法开始
  4. 每一个语句都需要以英文分号结束。
  5. 程序会被{}划分出范围。
  6. 类型与方法都需要定义在{}中
  7. 对于空格通常不影响代码运行
  8. Java 中的标识符就是类名、变量名、方法名、包名。
  9. 关键字、保留字全部都是小写,比如null。
  10. 变量名可以由字母、数字、下划线、美元符组成,但标识符不能以数字开头,也不能是关键字,区分大小写。
  11. 变量类型分为基本数据类型和引用数据类型
  12. byte的取值范围是-128~127
  13. 常量定义之后,不会改变
  14. 注释有//、/**/、/** ... */
  15. 运算符涉及到优先级,建议加好()
  16. =号是赋值,==号是相等
  17. 选择结构的条件必须为布尔表达式,返回值必须为true或者false
  18. break会使程序跳出循环,continue只会跳过该次循环。
  19. System.out.print()是输出语句,System.out.println()是自带换行

二、Java的编译运行

写好源代码之后,我的学习记录里只有写到怎么用,却没有去详细解释流程,如此就造成了一些知其然而不知其所以然的问题,so,这里补充上:

首先,需要给几个定义:

Java虚拟机(JVM):是可以运行Java代码的虚拟计算机。只要电脑上安装有Java环境,就拥有JVM虚拟机。

字节码(Byte-code):是一种包含执行程序,由一序列 op 代码 / 数据对组成的二进制文件,是一种中间码。(百科)

机器码:指的是将硬件序列号经过一系列加密、散列形成的一串序列号。(百科)

1. 编译

写好代码后,保存的为 .java 文件,用 javac.exe(编译器)编译之后,编译器会先检查错误:

  如果有错,则编译无法完成,需要修改,直至修改到没错了,才能通过。

  如果没错,通过编译,产出一个字节码文件(.class)。

so,编译器:将Java源文件(.java)编译成字节码文件(.class文件,是特殊的二进制文件,二进制字节码文件)

字节码文件与平台是无关的,这也是JVM的平台无关性的来源。

2. 解释

编译完成后,JVM操作解释器将产生的字节码文件来解释。

解释器解释字节码的过程,就是将字节码文件解释成本机能够识别的机器码。

机器码与平台是有关的,不同平台的机器码不同。

解释由分成以下步骤:

  首先,通过类加载器(class loader)将所有代码装入解释器。

  然后,被装入的代码由字节码校验器进行检查,若无错误,则进入下一步。

3. 执行

Java字节码开始执行,这个也有两种方式:

    a. 即时编译方式:先将字节码编译成机器码,再执行该机器码。

    b. 解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程序的所有操作。

   通常情况下回采用解释执行方式,这样会使字节码翻译成机器码有更高的效率。当然,对于对运行速度要求较高的应用程序,还是选择即时编译比较好,可以很好的保证Java代码的可移植性以及高性能。

 三、变量的声明与初始化

在程序运行的过程中,内存有一部分的空间是变化的,这个空间就叫变量。那么声明变量就是申请了一个内存空间。内存空间在开辟之时,如果没有赋值的话,内存空间会根据变量的类型来设置默认值。

如果有赋值的话,就会将值存入内存空间,否则就是默认值。变量的用处:存放数据。

int i;  // 声明变量。申请了一个内存空间,当前为int的默认值0
i = 1;  // 初始化变量。将i赋值为1

四、引用类型

对于引用类型来说,其默认值是null,没有任何指向的内存空间。

那么数组也是引用类型,在声明的时候如果没有直接给元素的话,那么其默认值为null。

五、逻辑运算符

关于逻辑运算符&&、||两者,有一点要十分注意:
这两个存在一个短路问题,意思就是前面第一个条件已经能够使表达式得出结果了,后面的条件就不用判断了。

比如:1>2&&2>1,那么这个因为1>2已经为假了,&&要求两个都为真才能返回True,所以后面的条件就不用计算,直接出返回结果。2>1 || 1>2,也是一样。

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

暂时先补充到这儿~以后发现没写到的再进行补充说明。

以上,阿里嘎多,20190420 from ahanwhite。

猜你喜欢

转载自www.cnblogs.com/ahanwhite/p/10733507.html