java的基础语法学习
java的基础语法学习
每个语言都有语法,英语汉语是如此的,计算机语言也不例外。
java的基础语法是编写程序的地基,只有地基稳固,高楼大厦才能拔地而起。
注释
在项目结构变得越来越复杂时,我们需要用到注释,以增加代码的可读性和可理解性。写注释可以方便别人或者以后的自己重新理解思路。不写注释的代码写完后只有你与天看得懂,过个十来半个月可能就只有天能看懂了。
- 注释并不会被执行,是作者写给人看的。
- 书写注释是一个非常好的习惯。
- 平时写代码一定要注意规范,好习惯从平时养成。
java的注释种类有三种:
-
单行注释:只能注释一行文字。
//这是一行注释 -
多行注释:可以注释多行文字。
/* 这是 很多行 注释 */ -
文档注释:多行注释,可以注释API参数。
/** * @author Mr.Q *我平生最讨厌两种人 *写代码不写注释的人 *让我代码写注释的人 */
标识符和关键字

- java所有的组成部分都需要名字。类名,变量名和方法名都被称之为标识符。
标识符注意点:
-
所有的标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始。
-
首字符之后都应该以字母(A-Z或者a-z),美元符($),下划线(_)或数字的任何字符组合。
-
不能使用关键词作为变量名和方法名。
-
标识符是大小写敏感的。
-
可以使用中文命名,但不建议使用。也不建议用拼音,很low。
数据类型
java属于强类型语言,每个变量必须先声明其类型。
- 强类型语言:要求变量使用要严格符合规定,所有变量都要先定义后使用。
- 弱类型语言:反之。
java的数据类型分为两大类:
-
基本类型(primitive type)
-
引用类型(reference type)

//整数扩展:二进制用0b开头;八进制用0开头;十进制直接写;十六进制用0x开头;
int i0 = 10; //十进制
int i1 = 010; //八进制
int i2 = 0b10; //二进制
int i3 = 0x10; //十六进制
//浮点数扩展:浮点型能表现的字长是有限的,而小数很多是离散的,所以转换成浮点型都有一定的舍入误差,结果都是接近但不等于。
//最好完全避免使用浮点数进行比较。若必须用小数则引用BigDecimal(数学工具类)进行比较。
float a = 0.1f; //0.1
double b = 1.0/10; //0.1
System.out.println(f==d); //false
float a1 = 123123123123123f;//数据长度越界
float a2 = a1 + 1;
System.out.println(a1==a2); //true
//字符拓展:所有的字符本质都还是数字。
//编码 Unicode 2字节 0-65535
char c1 = 'a';
char c2 = '啊';
char c3 = '\u0061'; //转意为Unicode编码格式
System.out.println(c1);
System.out.println((int)c1);//强制类型转换
System.out.println(c2);
System.out.println((int)c2);//强制类型转换
System.out.println(c3); //输出a
转义字符:
| 转义字符 | 意义 | ASCII码值(十进制) |
|---|---|---|
| \a | 响铃(BEL) | 007 |
| \b | 退格(BS) ,将当前位置移到前一列 | 008 |
| \f | 换页(FF),将当前位置移到下页开头 | 012 |
| \n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
| \r | 回车(CR) ,将当前位置移到本行开头 | 013 |
| \t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
| \v | 垂直制表(VT) | 011 |
| \ | 代表一个反斜线字符''' | 092 |
| ' | 代表一个单引号(撇号)字符 | 039 |
| " | 代表一个双引号字符 | 034 |
| ? | 代表一个问号 | 063 |
| \0 | 空字符(NUL) | 000 |
| \ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
| \xhh | 十六进制所代表的任意字符 | 十六进制 |
注意:
1. 区分,斜杠:"/" 与 反斜杠:"" ,此处不可互换
2. \xhh 十六进制转义不限制字符个数 '\x000000000000F' == '\xF' [3]
类型转换
由于java是强类型语言,所以要进行一些运算的时候,需要用到类型转换。
类型转换的方法:
-
自动类型转换:运算中,不同类型数据会由低到高先转化为相同类型数据然后计算。
-
强制类型转换:(类型)变量名,进行强制类型转换,可实现由高到低的类型转换,但会有内存溢出的风险。
注:
- 不能对布尔进行类型转换。
- 不能把对象的类型转换为不相干的类型。
- 把高容量转化为低容量的时候使用强制转换,可能会发生内存溢出或者精度问题。
- JDK7版本新特性,数字之间可以使用下划线分割。
变量
变量是可以变化的量。
java是一种强类型语言,每个变量都必须声明其类型。
java变量是程序中最基本的储存但愿,其要素包括变量名,变量类型和作用域。
注:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,必须以分号结束。
变量的作用域:
- 局部变量:在方法中使用,方法开始时需对变量进行定义和初始化值。作用范围为定义此变量的方法中。
- 实例变量:定义在类中方法外,从属于对象,使用前必须先初始化类,再引用其实例变量。如果不自行初始化值,会赋值为类型的默认值。布尔值默认为false,除了基本类型其余的默认值都是null。
- 类变量:定义在类中方法外,定义时在前面加入static关键字。
变量的命名规范:
- 所有变量、方法、类名:见名知意。
- 类成员变量:首字母小写和驼峰原则,除了第一个单词小写,后面的单词首字母大写。例如:monthSalary。
- 局部变量:首字母小写和驼峰原则。
- 常量:大写字母和下划线。例如:MAX_VALUE。
- 类名:首字母大写和驼峰原则。
- 方法名:首字母小写和驼峰原则。
常量
常量是初始化之后就不能再改变的值,不会变动的值。
所谓常量可以理解为一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final double PI = 3.1415926535; //使用final来设定常量。
基本运算符
java语言支持的运算符:
- 算数运算符:+,-,*,/,%,++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符: ?:
- t扩展赋值运算符:+=,-=,*=,/=
运算优先级
| 优先级 | 运算符 | 结合性 |
|---|---|---|
| 1 | ()、[]、{} | 从左向右 |
| 2 | !、+、-、~、++、-- | 从右向左 |
| 3 | *、/、% | 从左向右 |
| 4 | +、- | 从左向右 |
| 5 | <<、>>、>>> | 从左向右 |
| 6 | <、<=、>、>=、instanceof | 从左向右 |
| 7 | ==、!= | 从左向右 |
| 8 | & | 从左向右 |
| 9 | ^ | 从左向右 |
| 10 | | | 从左向右 |
| 11 | && | 从左向右 |
| 12 | || | 从左向右 |
| 13 | ?: | 从右向左 |
| 14 | =、+=、-=、*=、/=、&=、|=、^=、~=、<<=、>>=、>>>= | 从右向左 |
包机制
为了更好地组织类,java提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:
package pkg1[.pkg2[.pkg3...]];
一般利用公司域名倒置作为包名。
为了能够使用某一个包的成员,我们需要在java程序中明确导入该包。使用"import"语句可完成此功能。
import pkg1[.pkg2[.pkg3...]];
若是包中需导入的类过多,可用,导入包下所有的类。
javaDoc
javadoc命令是用来生成自己的API文档的。
参数信息:
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
在类上方或者方法上方添加文档注释,可添加上述参数信息。

生成Doc文档:
-
用cmd生成doc文档
- 在java文件目录下唤出cmd命令窗口。
- 执行指令:Javadoc 文件名.java
-
用IDEA生成doc文档
-
在工具栏中找到 tool >> Generate JAVADoc…
-
在配置窗口中选择整个项目生成或者自定义生成。
-
自学于java开源教学平台:KuangStudy

浙公网安备 33010602011771号