1. Java基础语法
基础语法主要包含以下内容
关键字、标识符、注释、常量/变量、进制、数据类型、运算符、语句、函数、数组
2. 关键字
关键字是值被java定义了特殊含义的单词
关键词分类
基本类型值 | true、false、null |
基本数据类型 | byte、boolean、short、char、int、long、float、double |
循环 | for、do、while、break、continue |
条件 | if、else、switch、case、default、return |
访问控制 | private、protected、public |
修饰符 | abstract、final、 static、synchronized |
类、接口、无返回值 | class、interface、void |
异常处理 | try 、catch、finally、throw、throws |
类与类关系 | extends、implements |
实例建立、引用、判断 | new、super、this、instanceof |
其他 | native、transient、volatile、strictfp、assert |
* 在官方文档上有说true, false, and null mightseem like keywords, but they are actually literals;所以严格意义上,这三个并不算关键字。
**此外还有保留关键词 goto和const,java1.5新增enum。
3. 标识符
3.1 定义:在程序中自定义的一些名称,例如:类名、变量名等。
特点:由26个英文字母大小写,数字:0-9,符号:_ $ 组成。
3.2 规范
3.2.1 开头不能使用数字,例如1Test。
3.2.2 不能使用关键字,例如 static
3.2.3 包名:全部小写
3.2.4 类名:首字母大写,例如 AxxBxxCxx
3.2.5 变量和函数名:首字母小写,后续大写。例如 axxBxxCxx
3.2.6 常量:全大写,加下划线。例如 AAA_BBB_CCC
4. 注释
4.1 定义:注释是加在代码中用于解释说明代码的文字,起到便于他人理解的作用。
4.2 分类
4.2.1 单行注释:格式://注释内容
4.2.2 多行注释:格式:/*注释内容*/
4.2.3 文档注释:格式:/**文档注释内容*/
4.2.4 其中单行和多行不会被虚拟机识别,相关语句不会被编译。文档注释可以被javadoc识别,形成说明文档。
5. 常量
5.1 定义常量表示不能改变的数值
5.2 分类
1、整数常量:所有整数。
2、小数常量:所有小数。
3、布尔(boolean)型常量:只有两个数值:true、false。
4、字符常量:将一个数字字母或者符号用单引号( ' ' )标识,如:'a'。
5、字符串常量:将一个或者多个字符用双引号("")标识,如:"hello world"、"a"、""(空字符串)。
6、null常量:只有一个数值就是:null。
6. 进制
6.1 进制是指进位的规则。二进制就是逢二进一,十进制就是逢十进一。
6.2 常用的进制有十进制、二进制、八进制、十六进制
二进制常用是因为计算机能识别二进制数据。
八进制和十六进制是因为正好是二进制的整数倍(及3个二进制位表示一个8进制,4个二进制位表示一个16进制位),用八进制和十六进制可以缩短数字长度。
6.3 八进制表示方式:用0开头,如013;
十六进表示方式:0x开头,如0x4F。
7. 进制的转换
7.1 十进制转二进制
采用除余法,例如7的二进制
7/2=3 余1
3/2=1 余1
1/2=0 余1
所以7(十进制)=111(二进制)
对于十进制转任意进制,每次除以进制数取余即可。
7.2 二进制转十进制
采用乘幂法,例如二进制的111
111(二进制)=1*2^2+1*2^1+1*2^0=4+2+1=7(十进制)
对于任意进制,转换成十进制的公式是:
对于每个位上的数字:位数上的数字*进制数的(位数-1)次幂,然后求和。
8. 负数的二进制
8.1 来源:求一个数的负数,本质上应该满足和对应的整数相加等于0。例如6+(-6)=0,则-6是6对应的负数。
8.2 对于二进制来说,同样也是如此,但是要如何使二进制数相加等于0呢?
这里要设计到溢出的概念。
以byte类型数据为例;
数据占8个字节。那么
0000 0001
+1111 1111
-----------------------
10000 0000
但是由于byte只能识别8位,那么就相当于结果是0。所以-1对应的二进制是11111111。
8.3 负数的计算
负数=正数(取反)+1。
PS:取反是指0-->1,1-->0,取反之后与原数相加会得到n个1。再加1则溢出得到0。
注意:负数的最高位是1,正数的最高位是0。
9. 变量
9.1 定义:内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),该区域的数据可以在同一类型范围内不断变化。
9.2 特点:变量其实就是将不确定的数据进行存储,也就是需要在内存中开辟一个空间。
9.3 变量的作用:
用来不断的存放同一类型的常量,并可以重复使用。
9.4 格式
数据类型 变量名 = 初始化值;
例如:byte b = 3;
注意
1、变量的作用范围(一对{}之间有效)。
2、变量只能存放某一类型的数据。
10. 数据类型
10.1 Java数据类型分类如下
1.5版本新增枚举(enum)类型。
10.2 整数默认类型是int,小数默认类型是double。
因此如果是float类型,后面要加f,long类型后面要加l以示区别。
例如
float f=2.3f; long l=4l;
10.3 类型转换
基本数据类型是有优先级的,在运算的时候会发生强制转换。
级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double。
也就是说,要知道一个运算的结果是什么,可以从double一次往下找,结果与级别最高的相同。
10.4 注意:
short s=1; s=s+1;//报错,1是int类型,运算时会强转,int无法赋值给short类型。
此时可以用 s=(short)(s+1);进行强制转换。
short=1+3;//正确,显式运算,系统会判断是否在范围内。
char类型可以和int类型相加,结果为int类型。