一、JAVA编程风格

  • 注意缩进!

一定要有缩进。缩进就像人得体的衣着一样!

只要遇到{}就缩进,缩进的快捷键tab键。

  • 成对编程!

括号、引号都应该写完后,再往里加内容。

  • 注意命名!

见名知意是最基本的要求!

  • 区分大小写

不同于HTML  java中的类名,对象名,变量名等标识符是严格区分大小写的

  • 驼峰式命名

标识符命名时,当多个单词拼接时,每个单词的首字母大写,其他小写
helloworld  >>> HelloWorld

java 缩进 java缩进规则_开发语言

二、JAVA注释

1、概述

为了方便程序的阅读,Java语言允许程序员在程序中写上一些说明性的文字,用来提高程序的可读性,这些文字性的说明就称为注释。

注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句。

在Java中根据注释的功能不同,主要分为单行注释、多行注释和文档注释。

给人看的提示,不需要程序去执行。

给人看的提示不能干扰正常代码的编译和执行

(1)单行注释

单行注释使用“//”开头,“//”后面的单行内容均为注释。

//单行注释,只能注释一行

(2)多行注释

多行注释以“/*”开头以“*/”结尾,在“/*”和“*/”之间的内容为注释,我们也可以使用多行注释作为行内注释。但是在使用时要注意,多行注释不能嵌套使用。

/*多行注释,可以一次性注释多行*/

(3)文档注释

文档注释以“/**”开头以“*/”结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API)

/**

一般用来注释方法和类(文档注释)

*/

2、举例

注释不会出现在字节码文件中。

即Java编译器编译时会跳过注释语句。

(1)案例一

//下面是一个类,类的名字叫:HelloWorld,起名字一般都见名知意
//起名字,有规则,类名:首字母大写,遵循驼峰命名原则
//成对编程,注意缩进
public class HelloWorld{
	/*
	这是多行注释
	下面是一个main方法
	方法的格式固定,不能写错,否则识别不到这个方法
	*/
	public static void main(String[] args){
		/*
		我们要实现的功能:在控制台上原样输出双引号中的文字
		*/
		System.out.println("hello java....");
	}
	/**
	这是文档注释
	@param name 姓名
	@param age 年龄
	*/
	public void add(String name,int age){
		System.out.println("另一个方法");
	}

}

针对上面的文档注释,我们可以配合一个javadoc生成API文档的命令结合使用:

java 缩进 java缩进规则_java_02

然后会生成一堆html文件:

java 缩进 java缩进规则_开发语言_03

然后发现:生成了一个我自定义类的API:

java 缩进 java缩进规则_开发语言_04

(2)案例二

/**
	文档注释
	author:Teacher Mark 70
*/

public class Test{
	/**
		一般用来注释方法和类
		可以将文档注释的内容生成我们自己的API帮助文档
	*/
	public static void main(String[]args){
		/*
			注释:给人看的提示,不需要程序去执行
			给人看的提示不能干扰正常代码的编译和执行
		*/
		// 1.单行注释  只能注释一行
		/* 2.多行注释,可以一次性注释多行*/
		System.out.println("hello java");
	}

	/**
		该方法用于求两个整数的和
		@param a 第一个整数
		@param b 第二个整数
	*/
	public static void add(int a,int b){
		System.oout.println(“另一个方法”);
	}
}

针对上面的文档注释,我们可以配合一个javadoc生成API文档的命令结合使用:

java 缩进 java缩进规则_开发语言_05

怎么回事?

 将文件重新保存:

java 缩进 java缩进规则_开发语言_06

然后将编码改成ANSI:

java 缩进 java缩进规则_文档注释_07

重新编译:

java 缩进 java缩进规则_java 缩进_08

打开文件位置:

java 缩进 java缩进规则_字节码_09

文件开始位置:  Index.html

java 缩进 java缩进规则_java_10

java 缩进 java缩进规则_java_11

我们可以看到:

java 缩进 java缩进规则_文档注释_12

我们可以看到文档注释:

1.主方法上写的文档注释

java 缩进 java缩进规则_开发语言_13

java 缩进 java缩进规则_字节码_14

2.求和方法上写的文档注释:

java 缩进 java缩进规则_java_15

java 缩进 java缩进规则_字节码_16

a和b是什么?我们也可以看到:

点add看详细信息:

java 缩进 java缩进规则_java 缩进_17

java 缩进 java缩进规则_文档注释_18

由此可见,该方法要干什么,需要的数据,传入的参数是什么,都可以看到。

所以,文档注释是为生成帮助文档用的,而单行和多行注释是在写代码中翻阅代码的时候看得。

三、Notepad++的使用

  • 安装Notepad++
  • 将Test.java用Notepad++打开(打开文件)

java 缩进 java缩进规则_开发语言_19

java 缩进 java缩进规则_文档注释_20

  • 新建文件

java 缩进 java缩进规则_java_21

java 缩进 java缩进规则_开发语言_22

java 缩进 java缩进规则_开发语言_23

关于Notepad++一些注意事项:

(1)改成中文简体

java 缩进 java缩进规则_文档注释_24

java 缩进 java缩进规则_文档注释_25

(2)乱码问题

文件的字符集和dos窗口所使用的默认字符集不一致

java 缩进 java缩进规则_文档注释_26

文件的字符集?

java 缩进 java缩进规则_开发语言_27

java 缩进 java缩进规则_开发语言_28

我们可以看到:当前文件默认保存方式是UTF-8

即:Notepad++创建文件时默认使用UTF-8 国际通用字符集

java 缩进 java缩进规则_文档注释_29

dos窗口的字符集?

默认使用本地系统字符集:ANSI (英文版本)  

GBK (中文版本)

为什么会出现乱码呢?

乱码产生的原因大致有以下几点:

1、文件读取和写入使用的字符集不一致,就会出现乱码

java 缩进 java缩进规则_字节码_30

问:英文为啥不乱码?

一般世界上所有的字符集,对于英文字母的处理都是一样的。

2、使用了不支持中文的字符集

java 缩进 java缩进规则_文档注释_31

此次出现乱码是第一个原因:

文字的字符集和dos窗口所使用的默认字符集不一致

在Notepad++里面“新建”,会创建一个文件,但Notepad++是为软件行业服务的,可能不太考虑本地窗口的字符集,默认新建一个文件是以“”字符集来存储文件的。

我们可以查看一下Notepad++是以什么为默认编码的:

java 缩进 java缩进规则_字节码_32

java 缩进 java缩进规则_字节码_33

而dos窗口是ANSI,就是GBK。

两种使用的编码不一样

调整方案:

  1. 调整dos窗口读取文件时使用的字符集,但如果调整他,可能会对系统其他地方产生影响。
  2. 每新建一个文件的时候,把编码改成ANSI。记得把默认语言改成Java。

java 缩进 java缩进规则_字节码_34

java 缩进 java缩进规则_文档注释_35

java 缩进 java缩进规则_java_36

 四、反编译

1、编译

由源代码(Test.java)转换成字节码(Test.calss)的过程。

java 缩进 java缩进规则_java_37

字节码文件(给计算机看的):

java 缩进 java缩进规则_java_38

2、反编译:class  -->  源代码

源代码写完就可以删掉,有字节码就可以执行:

java 缩进 java缩进规则_java 缩进_39

java 缩进 java缩进规则_java 缩进_40

但我现在想知道Test3里面是咋写的?

需要通过这个字节码文件(Test3.class)再把它原有的代码(Test3.java)还原回来!

3、反编译工具:JD-JUI

下载地址:Java DecompilerJD Java Decompilerhttp://java-decompiler.github.io/

java 缩进 java缩进规则_字节码_41

java 缩进 java缩进规则_文档注释_42

显示的代码和原来的基本一致:

java 缩进 java缩进规则_java_43

注意:反编译工具并不能保证每一行完完全全都一样,只能大致还原回来,一些特殊的代码还原起来可能会有些费劲。 

反编译既然作为了解,那我们了解它有什么用?

我们通过反编译测试代码的时候,会得出一些结论:

(1)先打开Test3

java 缩进 java缩进规则_java_44

(2)添加一些注释

java 缩进 java缩进规则_字节码_45

(3)重新编译

java 缩进 java缩进规则_开发语言_46

(4)用Notepad++重新打开源代码

java 缩进 java缩进规则_文档注释_47

我们可以看到编译之后注释还在。

java 缩进 java缩进规则_java_48

(5)反编译一下Test3.class

java 缩进 java缩进规则_java_49

我们可以看到,一行注释都没有了!

java 缩进 java缩进规则_开发语言_50

也就是说,源代码中有注释,但是字节码中不存在注释!

源代码是给人看的,字节码并不会。编译进去会增加字节码的大小,所以干脆不会执行注释。

总结

反编译后的文件没有注释了,证明编译的时候注释没有参与编译。正是因为没有编译进来,我们才可以随便写注释。然后正是因为没有编译到字节码文件中来,所以反编译也看不到注释。

 五、编写第二个Java代码

 演示一些常见的错误

(1)先编写一段代码:

java 缩进 java缩进规则_java_51

成功编译执行:

java 缩进 java缩进规则_字节码_52

(2)分析哪个地方写错,会发生什么错误

<1> 关键字写错

java 缩进 java缩进规则_开发语言_53

<2> 缺少一个括号

 

java 缩进 java缩进规则_java 缩进_54

<3> 主方法写错

 

java 缩进 java缩进规则_文档注释_55

<4> “String”的“S”没有大写

 

java 缩进 java缩进规则_java_56

<5> “[ ]号”可以换位,但不能省

 

java 缩进 java缩进规则_字节码_57

java 缩进 java缩进规则_文档注释_58

<6> “System”的“S”不能小写

 

java 缩进 java缩进规则_文档注释_59

<7> 出现中文标点

 

java 缩进 java缩进规则_字节码_60

为了避免此种情况,可以设置一下输入法(以搜狗为例):

java 缩进 java缩进规则_java_61

java 缩进 java缩进规则_开发语言_62

将“√”打上,以后用搜狗输入法,打任何标点符号都是英文的。

<8> 算加减乘除

 这样写没什么问题:

java 缩进 java缩进规则_java 缩进_63

用双引号包上之后(会当成普通文字来输出):

java 缩进 java缩进规则_java_64

除法计算,分母若为0:

java 缩进 java缩进规则_开发语言_65