学习内容:
1、 掌握 Java 基本语法
2、 java数据类型、变量、运算符
学习时间:
2020.8.15 星期六 上午
学习产出:
3.3 基本数据类型
3.3.1 整型类型
整型的存储:
计算机当中用补码来表示一个数
正数的源码、反码、补码一致
负数的反码是源码的符号位不变,其他位按位取反
负数的补码是反码的基础上加1
补码:int byte short long
-2^(位数-1) -------------- 2^(位数-1)-1
长整型数值后有一个后缀L(如40000000L)。
十六进制数值有一个前缀0x(如0xCAFE)。
八进制有一个前缀0(如010表示8),八进制数值容易混淆,所以一般不使用八进制常数
从java7开始,加上前缀0b就可以表示二进制数(如0b1001代表9)
(另外从java7开始可以为数字字面量加下划线。(1_000_000表示一百万),这些下划线只是更便于人们阅读。java编译器会去除这些下划线)
(java没有任何无符号类型unsigned)
3.3.2 浮点类型
double表示这种类型的数值精度是float类型的两倍(有人称之为双精度数值)。绝大部分应用程序采用double类型。
阶位使用移码表示
造成精度丢失的原因:
1. 阶位不够
2. 尾数位不够
float类型的数值有一个后缀F,没有后缀的浮点数值默认为double
double类型的数值后边有一个后缀D
表示溢出和出错的三个特殊情况:
1.正无穷大(一个正整数除以0的结果为正无穷大)
2.负无穷大
3.NaN(不是一个数字,计算0/0或者负数的平方根结果为NaN)
浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数1/10。如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类。
3.3.3 char类型
char类型用于表示单个字符。
两个char类型的变量相加,默认的类型是int类型。
在java中,char类型用UTF-16编码描述一个代码单元。
我们清冽建议不要在程序中使用char类型,除非确实需要对UTF-16代码单元进行操作。我们最好将需要处理的字符串用抽象数据类型表示。
3.3.4 boolean类型
布尔类型有两个值:false和true,用来判定逻辑条件。整形值和布尔值之间不能进行相互转换
即,在java中布尔类型不会自动用0,1来表示true和false。
3.4 变量
在java中,每一个变量属于一种类型。在声明变量时,宾亮所属类型位于变量名之前。并且每一声明以分号结束。
变量名的命名规则:
变量名必须是一个以字母开头的由字母和数字构成的序列。子母包括:‘A’~‘Z’、‘a’~‘z'、’_‘、'$'或在某种语言中代表字母的任何Unicode字符。变量名中的所有字符都是有意义的,并且大小写敏感。变量名的长度没有限制。
不能将变量名命名为java保留字。
3.4.1 变量初始化
声明一个变量之后,必须用赋值语句对变量进行显示初始化。
本质就是拥有了自己内存空间。
3.4.2 常量
在java中,利用关键字final指示常量。关键字final表示这个变量只能被赋值一次,一旦被赋值之后,就不能再更改了。习惯上,常量名使用全大写。
类常量的定义位于main方法的外部。因此,在同一个类的其他方法中也可以使用这个变量。而且,如果常量声明为public,name其他类的方法也可以使用这个常量。
3.5 运算符
对于使用strictfp关键字标记的方法必须使用严格的浮点计算来产生理想的结果,例如我们可以把main方法标记为:
Public static strictfp void main(String args[])(一般不使用)
3.5.1 自增运算符与自减运算符
自增运算符和自减运算符只能操作变量
前缀的方式先进性加一运算;后缀的方式则使用变量原来的值