关键字和保留字
关键字
在编程语言中有一些事先定义的,有着特殊含义和用途的单词。
保留字
和关键字一样都是编程语言事先定义好的,只是说现在暂时没有特殊的用途,但说不定以后某天会突然被赋予意义和被使用到。因此被保留下来的单词,goto和const就是Java的保留字。
标识符
在程序中自定义的一些名称。它是由26个字母大小写,数字:0-9,符号 _ $ 组成
规定:
- 不能以数字开头
- 不可以使用关键字
- 见名知义
注释
注解,解析用于注解说明解释程序的文字
注解的作用:
- 注解可以帮我们解释说明一些代码
- 也可以帮我们缩小错误范围,用于排错
Java的注释信息是给程序员看的,编译器(javac)在编译的时候会忽略掉源文件中的注释信息。
为此,Java提供3种注释类型:
① 单行注释; //
② 多行注释; /* */
③ 文档注释; /** */
注意问题
- 单行注释能嵌套单行注释,可以嵌套多行注释
- 多行注释当中不能嵌套多行注释,多行注释当中可以嵌套单行注释
分隔符
Java语言分隔符:
- 分号(;):语句的分割,表示一句话结束,好比咱们使用的句号。
- 花括号({}):表示一个代码块,是一个整体,花括号要成对使用。
- 方括号([]):定义数组和访问数组元素时使用。
- 圆括号(()):使用很广泛,具体用到细讲。
- 圆点(.):类和对象访问它的成员时使用。
- 空格( ):把一整条语句分割成几段,空格的次数不限制,好比一句英文里单词都要分开写一样。
注意:必须都是半角下的英文符号。
常量与变量
常量
什么是常量
程序中固定不变化的值。定义了就不能再去修改。比如:整数常量1,2,3;小数常量3.14;布尔常量false,true等。
常量分类
- 整数常量
- 小数常量
- 布尔型常量
- 字符常量
- 字符串常量
- null常量
整数常量的表现形式
- 二制制
- 八进制
- 十进制
- 十六进制
变量
什么是变量
其值可以发生改变的量, 定义完毕后可以指代某一事物
变量的定义:
数据类型 变量名 = 初始化值;
表示存储空间,可用来存放某一类型的常量,没有固定值,并可以重复使用,也可以用来存储某种类型的未知数据。
变量的特点:
① 占据着内存中的某一块存储区域;
② 该区域有自己的名称(变量名)和类型(数据类型);
③ 可以被重复使用;
④ 该区域的数据可以在同一类型范围内不断变化;
使用变量的时候要注意的问题
A:作用域
- 变量定义在哪个大括号内,它就在这个大括号内有效。
- 并且,在同一个大括号内不能同时定义同名的变量。
B:初始化值
- 没有初始化值的变量不能直接使用。
- 你只要在使用前给值就行,不一定非要在定义的时候立即给值。
- 推荐在定义的时候给值。
定义变量的格式:
(1)数据类型 变量名 = 初始化值;
(2)数据类型 变量名; 变量名 = 初始化值;
C:在一行上建议只定义一个变量
可以定义多个,但是不建议
表达式
表达式(expression) 是由数字、运算符、数字分组符号(括号)、常量、变量等以能求得结果的有意义排列的组合。
用运算符号连接的变量/常量可称为表达式。那么也就是说表达式是由常量、变量、运算符、括号组成能求得值的有意义结果的语句。
如:
a + b
3.14 + a
(x + y) * z + 100
表达式中操作数进行运算得到的最终结果就是表达式的结果。
表达式的运算顺序(大多和数学一样,参照后面的运算符操作优先级):
进制
什么是进制
进制也就是进位制,是人们规定的一种进位方法。
对于任何一种进制(x进制),就表示某一位置上的数运算时是逢x个值进一位。
十进制是逢十进一,
十六进制是逢十六进一,
二进制就是逢二进一,
以此类推,x进制就是逢x进位。
二进制/八进制/十进制/十六进制
-
二进制
由两个基本数字0,1组成,运算规律是逢二进一。计算机都使用二进制表示数据. -
八进制
由0、1、2、3、4、5、6、7组成,运算规律是逢八进一. -
十进制
由0,1,2、3、4、5、6、7、8、9组成. -
十六进制
由0~9以及A,B,C,D,E,F组成
二进制数系统中,位简记为b,也称为比特,每个二进制数字0或1就是一个位(bit)。
位是数据存储的最小单位,其中8 bit 就称为一个字节(Byte)
数据类型
什么是数据类型
数据类型:Java是一种强类型的语言,针对每一种数据都定义了明确的数据类型分类。
注意:
- 整数默认是int类型
- 浮点数默认是double类型。
- 长整型后缀用L或者l标记。建议使用L。
- 单精度浮点数用F或者f标记。建议使用F。
基本数据类型
boolean类型
- boolean类型:通常用于逻辑运算和程序流程控制(条件选择/循环)。
- 该类型的值只能是true 或 false,表示真或假。
- 不可以使用0或非0的整数来代替false和true,区分于C语言。
- (其实在JVM中对boolean的处理也是用0表示false,非0表示true的。)
- false和true是boolean的常量。
整数类型
byte、short、int、long类型:
整型常量的四种表示形式:
① 二进制整数:0B或0b开头(Java7的新特性),如:int a = 0B110;
② 八进制整数:要求以0开头,如 int a = 012;
③ 十进制整数:如:int a = 17;
④ 十六进制整数:要求0X或0x开头,如int a = 0x12;
Java语言的整型常量默认是int型,声明long型变量后加上‘l’或‘L,因小写的l容易和数字1相混淆,建议使用大写L。
默认情况下,一个整型的字面量默认是int类型.
小数类型
float、double类型:
表示小数类型又称为浮点类型
其中float表示单精度类型,double表示双精度类型,但是二者都不能表示精确的小数。
J
ava的浮点类型常量有两种表现形式:
十进制形式: 例如:3.14 ,168.0, .618
科学计数法形式: 例如:3.14e2, 3.14E2, 1000E-2
科学计数法表达式返回的结果是double类型。
默认情况下,一个浮点类型的字面量默认是double类型。若要声明一个常量为float型,则需在常量后加上f 或 F,double常量后面的D或d可省略。
注意:Java里只有浮点型的变量才可以接受科学计算式结果。
字符类型
16位无符号小数(ASCII表)
使用一个数字去表示一个特定的字符
引用数据类型
除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。引用数据类型默认初始值都是null。
String是一个类,表示字符串,所谓字符串,就是一串字符,也就是N个字符连接在一起(N可以表示0或多个)
字符串都得使用 "" 括起来的,连接字符串使用 “+”符号。
字符串拼接:字符串和任意数据类型相连接,结果都是字符串类型。
类型转换
不能直接把大的数据类型复制给小的数据类型。
自动类型转换
当一个算术表达式中包含多个基本数据类型(boolean除外)的值时,整个算术表达式的数据类型将在数据运算时出现类型自动提升
其规则是:所有的byte、short、char类型被自动提升到int类型;
强制类型转换
运算两端数据类型必须得要一致
强制转换:从大的数据类型到小的数据类型。
格式: 目标数据类型 变量 = (目标数据类型) (被转换的数据);
注意: 不要随意的去使用强制转换,因为它隐含了精度损失问题。
总结
运算符
算术运行符
(+、-、*、/、%、++、--)
用来处理四则运算的符号。
加号:在操作数值、字符、字符串时其结果是不同的。
- 当两个数值相加得到的是数值相加的结果。
- 当两个字符相加得到的是ASCII码表值。
- 当两个字符串相加时表示将两个字符串连接在一起,从而组成新的字符串。
减号:在操作数值、字符时其结果是不同的。
- 当两个数值相减得到的是数值相减的结果。
- 当两个字符相减得到的是ASCII码表值。
除号
- 整数在使用除号操作时,得到的结果仍为整数(小数部分忽略)
- 当整数除以0的时候,会引发算术异常。
- 当一个正浮点类型数除以0时,或者正整数除以0.0时,会得到 正无穷大(Infinity)
- 当一个负浮点类型数除以0时,或者负整数除以0.0时,会得到 负无穷大(-Infinity)
- 当0.0除以0.0时, 会得到 NaN(Not a Number)
取模(求余数):模数的符号忽略不计,结果的正负取决于被模数。
注意:无穷大和NaN都属于double浮点类型,但是所有正无穷大都是相等的,所有负无穷大也是相等的,NaN永远不相等,也不等于自己。
++和--详解:
- 都只能操作变量,不能操作常量。
- ++: 表示当前操作变量自己累加1。
- -- : 表示当前操作变量自己减去1。
自增:++,递增操作符,使变量值增加1,有前置和后置之分,只能操作变量。
自减: -- ,递减操作符,使变量值减去1,有前置和后置之分,只能操作变量。
自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,现在单讲++:
代码 result++ 和 ++result,都将使result变量的值加1。
唯一的区别是:
前置(++result): 表示对result加1之后的结果进行运算,
后置(result++): 表示对result变量加1之前的值(原始值)进行运算。
如果仅仅执行简单的递增操作(只写result++或++result),那么选用任意一个都可以。
赋值运行符
(=、+=、-=、*=、/=、%=)
专门为变量指定值或重新指定值。
注意Java支持同时给多个变量赋值,好比支持同时声明多个变量一样,但因影响代码可读性,故也不推荐。
加等于:x += 5; 相当于 x = x + 5,但还包括隐式类型转换。
比较运行符
(==、!=、>、<、>=、<=)
用于比较两个变量或常量之间的关系,比较运算符的结果是boolean类型。其操作格式为:
boolean result = 表达式A 比较运算符 表达式B;
==:等于
- 若比较的是两个操作数都是数值类型,即使他们的类型不同,只要值相同就返回true。
- 基本数据类型比较的是值,引用数据类型比较的是地址值。
三元运行符
三元运算符,表示有三个元素参与的表达式,所以又称为三目运算符,其语义表示 if-else。
语法格式:X ? Y :Z, 其中x为boolean类型表达式,先计算X的值,若X结果为true则整个三目运算表达式的结果是Y,否则就是Z。三目运算符结果的类型由Y和Z决定。
逻辑运算符
与(&)、或(|)、非(!)、异或(^)、短路与(&&)、短路或(||)
语法格式为:boolean result = 表达式A 逻辑运算符 表达式B;
逻辑运算符 | 说明 |
---|---|
& | 表示并且,当操作数A和B都为true结果才为true,否则结果是false。 |
&& | 和&结果相同,具有短路效果,如果左边操作数A是false,结果一定为false,且不运行B的运算。 |
| | 表示或者,A和B都为false结果为false,只要有A或B是true,结果就是true。 |
|| | 和|结果相同,具有短路效果,如果左边操作数A是true,结果一定为true,且不运行B的运算。 |
^ | 判断A和B是否不同,不同则为true,相同则为false。 |
! | 取反,!true结果是false,!fasle结果是true。 |