【Java基础】编译运行 & 规范

上节学到 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)

  1. 代码中的命名均不能以下划线 [_] 或者美元符号 [$] 开始,也不能以这两者结束。

  2. 代码中命名禁止使用拼音和英文混合的方式,更不允许直接用中文。英语实在不行的同学用拼音也不是不可以 (/ω\) 但还是尽量避免为好。【注:国际通用的拼音可视作英文,如 baidu、alibaba 等】

  3. 类名使用大驼峰风格(UpperCameCase),也就是每个英文单词首字母大写,但是也有例外,如DO / BO / DTO / VO / AO / PO / UID等。

  4. 方法名、参数名、成员变量、局部变量都使用小驼峰风格(lowerCameClass),也就是除了第一个单词小写外,其他每个单词首字母大写。

声明:编码规范来自于阿里巴巴 Java 开发手册。有兴趣的同学可以去看一下哦~

本章的编码规范只讲到本文用到的那一部分,且后文不再讲述~
以上,阿里嘎多,20190404 from ahanwhite。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值