一、JAVA编程风格
- 注意缩进!
一定要有缩进。缩进就像人得体的衣着一样!
只要遇到{}就缩进,缩进的快捷键tab键。
- 成对编程!
括号、引号都应该写完后,再往里加内容。
- 注意命名!
见名知意是最基本的要求!
- 区分大小写
不同于HTML java中的类名,对象名,变量名等标识符是严格区分大小写的
- 驼峰式命名
标识符命名时,当多个单词拼接时,每个单词的首字母大写,其他小写
helloworld >>> HelloWorld
二、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文档的命令结合使用:
然后会生成一堆html文件:
然后发现:生成了一个我自定义类的API:
(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文档的命令结合使用:
怎么回事?
将文件重新保存:
然后将编码改成ANSI:
重新编译:
打开文件位置:
文件开始位置: Index.html
我们可以看到:
我们可以看到文档注释:
1.主方法上写的文档注释
2.求和方法上写的文档注释:
a和b是什么?我们也可以看到:
点add看详细信息:
由此可见,该方法要干什么,需要的数据,传入的参数是什么,都可以看到。
所以,文档注释是为生成帮助文档用的,而单行和多行注释是在写代码中翻阅代码的时候看得。
三、Notepad++的使用
- 安装Notepad++
- 将Test.java用Notepad++打开(打开文件)
- 新建文件
关于Notepad++一些注意事项:
(1)改成中文简体
(2)乱码问题
文件的字符集和dos窗口所使用的默认字符集不一致
文件的字符集?
我们可以看到:当前文件默认保存方式是UTF-8
即:Notepad++创建文件时默认使用UTF-8 国际通用字符集
dos窗口的字符集?
默认使用本地系统字符集:ANSI (英文版本)
GBK (中文版本)
为什么会出现乱码呢?
乱码产生的原因大致有以下几点:
1、文件读取和写入使用的字符集不一致,就会出现乱码
问:英文为啥不乱码?
一般世界上所有的字符集,对于英文字母的处理都是一样的。
2、使用了不支持中文的字符集
此次出现乱码是第一个原因:
文字的字符集和dos窗口所使用的默认字符集不一致
在Notepad++里面“新建”,会创建一个文件,但Notepad++是为软件行业服务的,可能不太考虑本地窗口的字符集,默认新建一个文件是以“”字符集来存储文件的。
我们可以查看一下Notepad++是以什么为默认编码的:
而dos窗口是ANSI,就是GBK。
两种使用的编码不一样
调整方案:
- 调整dos窗口读取文件时使用的字符集,但如果调整他,可能会对系统其他地方产生影响。
- 每新建一个文件的时候,把编码改成ANSI。记得把默认语言改成Java。
四、反编译
1、编译
由源代码(Test.java)转换成字节码(Test.calss)的过程。
字节码文件(给计算机看的):
2、反编译:class --> 源代码
源代码写完就可以删掉,有字节码就可以执行:
但我现在想知道Test3里面是咋写的?
需要通过这个字节码文件(Test3.class)再把它原有的代码(Test3.java)还原回来!
3、反编译工具:JD-JUI
下载地址:Java DecompilerJD Java Decompilerhttp://java-decompiler.github.io/
显示的代码和原来的基本一致:
注意:反编译工具并不能保证每一行完完全全都一样,只能大致还原回来,一些特殊的代码还原起来可能会有些费劲。
反编译既然作为了解,那我们了解它有什么用?
我们通过反编译测试代码的时候,会得出一些结论:
(1)先打开Test3
(2)添加一些注释
(3)重新编译
(4)用Notepad++重新打开源代码
我们可以看到编译之后注释还在。
(5)反编译一下Test3.class
我们可以看到,一行注释都没有了!
也就是说,源代码中有注释,但是字节码中不存在注释!
源代码是给人看的,字节码并不会。编译进去会增加字节码的大小,所以干脆不会执行注释。
总结:
反编译后的文件没有注释了,证明编译的时候注释没有参与编译。正是因为没有编译进来,我们才可以随便写注释。然后正是因为没有编译到字节码文件中来,所以反编译也看不到注释。
五、编写第二个Java代码
演示一些常见的错误
(1)先编写一段代码:
成功编译执行:
(2)分析哪个地方写错,会发生什么错误
<1> 关键字写错
<2> 缺少一个括号
<3> 主方法写错
<4> “String”的“S”没有大写
<5> “[ ]号”可以换位,但不能省
<6> “System”的“S”不能小写
<7> 出现中文标点
为了避免此种情况,可以设置一下输入法(以搜狗为例):
将“√”打上,以后用搜狗输入法,打任何标点符号都是英文的。
<8> 算加减乘除
这样写没什么问题:
用双引号包上之后(会当成普通文字来输出):
除法计算,分母若为0: