上节学到 Java 的编译与运行,我们已经学会了怎么去执行一个写好(假装我们已经会写了)的代码,这篇当然要试试手啦 O(∩_∩)O 哈哈~
小试一下
新建一个 HelloAhanWhite.java 文件,将下方代码复制到文件中。
public class HelloAhanWhite {
public static void main(String[] args) {
System.Out.println("Hello Ahanwhite~");
}
}
在文件路径上的地址栏中输入 cmd 进入到命令行:
打开命令行后使用上文学习到的命令,进行代码的编译以及运行。
代码详解
这个代码首先声明的一个叫 HelloAhanWhite 的公共类(public class)。然后调用了主方法 main() 。
类这个东西,涉及到对象,所以我们之后再讲对象的时候再去聊他~,所以先不用管它是个什么玩儿,目前只需要知道它怎么创建即可。创建类的时候,我们需要用到关键字 class。
创建一个类: class 类名 {}
,一般的类会加上属性比如 public
。
【重要】类名必须与文件名一致
main 方法
方法,就是做一个事情(程序)的步骤,步骤不同,方法不同。那 main 方法呢,就是主方法,做一个事情的主线,程序第一个执行的就是这个主方法。方法的代码固定。
public static void main(String[] args) {方法体}
必须类型为:public static void
,必须接收一个字符串数组的参数String[] args
,参数也可以是String args[]
这么写,也是没有问题的。
public:访问权限为公共访问,这个工程下任何文件都能访问。
static:main 方法是一个静态函数,意思是只要定义了方法所在的类之后就已经存在这个方法。带着关键字的代码,可以直接类. 方法进行调用。
void:标识返回值为空,不返回任何东西。
main:方法名
String args[]:方法的参数
说到这,大概又会有小伙伴不太理解参数是什么意思了吧~
参数
参数其实很好理解,就是一个信息,发来发去,传来传去,那这个信息就叫参数,转发的动作就叫传参了。如果还不好理解的话,我们只好来写一个代码来帮助理解了~
public class HelloAhanWhite {
public static void main(String[] args) {
if (args == null || args.length == 0) {
System.out.println("没有参数传进来呢");
} else {
for (int i=0; i < args.length; i++) {
System.out.println("第"+(i+1)+"个参数:"+args[i]);
}
}
}
}
运行结果
编译(用 UTF-8 编码编译才能输出中文)之后,不传参编译,提示没传参,传递三个参数之后会打印三个参数。
这里的代码就暂时先不解释了,仅用于帮助理解,用到的知识后面慢慢学~。
补充——编译原理 20190421
首先,需要给几个定义:
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 代码的可移植性以及高性能。
编码规范之命名风格(1)
-
代码中的命名均不能以下划线 [
_
] 或者美元符号 [$
] 开始,也不能以这两者结束。 -
代码中命名禁止使用拼音和英文混合的方式,更不允许直接用中文。英语实在不行的同学用拼音也不是不可以 (/ω\) 但还是尽量避免为好。【注:国际通用的拼音可视作英文,如 baidu、alibaba 等】
-
类名使用大驼峰风格(UpperCameCase),也就是每个英文单词首字母大写,但是也有例外,如
DO / BO / DTO / VO / AO / PO / UID
等。 -
方法名、参数名、成员变量、局部变量都使用小驼峰风格(lowerCameClass),也就是除了第一个单词小写外,其他每个单词首字母大写。
声明:编码规范来自于阿里巴巴 Java 开发手册。有兴趣的同学可以去看一下哦~
本章的编码规范只讲到本文用到的那一部分,且后文不再讲述~
以上,阿里嘎多,20190404 from ahanwhite。