讲义(三) Java基本数据类型和运算符
(回顾上回讲的,练习完成情况,哪些不了解,有哪些疑惑?提出来)
三、数据类型和运算符
1. 注释
快捷键;
怎么注释,单多行;
重要性,记录,调试;
文档注释(了解);
2. 标识符、关键字
; { } [ ] . ( );
字符、数字、下划线、美元符号、数字不开头;
不能关键字、保留字,可包含;
空格
只能包含美元符号,不能包含@,#之流;
3. 8大数据类型
常量:
变量:
声明:
定义:
基本类型:
引用类型:
数值类型,boolean类型;
Int short byte long char;字节,计算机存储问题,ASCII码,二进制,计算机表示;
4个字节,字节问题,
Float double,浮点问题,长度,64位,位(概念);
补码、反码、源码问题,例子讲下;
字符型:Unicode编码,支持世界上所有字符,十六进制,\uXXXX,单个字符,转移字符,当整数用;utf-8、。。。。
Boolean ,TRUE FALSE,小写
String
4. 基本类型转换(结合例子讲解)
例子引出,(为何需要转换?);金融,运算,
自动类型转换,高到低;
强制转换,(targetType)value,编程例子;
5. 运算符(结合例子讲解)
用以表示数据的运算、赋值和比较等等;
分类:
a) 算术运算符
b) 赋值运算符
c) 比较运算符
d) 逻辑运算符
e) 位运算符
f) 类型相关运算符
需细讲运算符;结合例子;(为什么要掌握这些?)
- 7种基本算术运算符(结合例子讲解):
+、-、*、/、%(取余数)、++、--、—(作为求负运算符,不是减号);
+、另外可作为字符串的连接运算符号,需要两个操作数都为字符串;
-、减法;
*、不能乘数字,不像是其他语言的用法,可以作多倍字符运算;
/、操作数都是整数类型,结果也是整数类型,向下取余(引申,向下取余floor、向上取余ceil、四舍五入round);除数不能为0,不然发生异常(故,事先都要进行判断,以防止出现除数为0的情况);若操作数至少有一个浮点数,结果也是浮点数,此时为自然除法,除数也可以为0,或者0.0,但结果为舞无穷大;
%、结果不必一定总是整数;第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数;第二个操作数不能为0;若是至少有一个操作数为浮点数,可以为0,或者0.0,但结果为NaN;
++、自加算法符号;a++,先用到a,后将a加1;++a,先将a加1,后用到a;(分别举例子说明)a++++,不建议这么用;
--、同++类似;自加自减只能用于操作变量,不能操作直接量或常量;
-、求相反数;
Math类:import java.lang.Math Math.pow(a,b);Math.sqrt(a);Math.sin(1.37);乘方、开方、sin()等等函数,可通过导入Math包,然后通过类名调用方法;打包到Math类里面了;
- 赋值运算符(例子):
=、将常量赋给变量;将变量赋给变量;支持连续赋值(不建议这么写,程序可读性降低),但声明变量先;
- 位运算(虽然有意思,不必太深入,举例子解释理解):
二进制位的概念:
集合的一些概念:
逻辑与布尔:p和q,真真假假,假假真真,假真假真,逻辑真假图。
&:按位与;
|:按位或;
~:按位非;
^:按位异或,同则0,异则1。
<<:左移位运算;低位补0,高位截去;正数、负数,浮点数等分别移位
>>:右移位运算;高位补0;
>>>:无符号右移位运算符;
- l 扩展后的赋值运算符(例子)
+=:对于x+=y,即对应于x=x+y;
-=、*=、…………….其他同理;推荐使用;
- l 比较运算符(例子)
>、<、>=、<=、==;运算的结果为布尔值;
基本类型的变量、值不能喝引用类型的变量、值使用(有专门的方法/函数)==进行比较;boolean类型的变量、值不能与其他任意类型的变量、值使用==进行比较;引用类型之间没有父子继承关系,那么它们的变量也不能用==进行比较;
- l 逻辑运算符(例子)
&&:与,短路运算符;
&:不短路,与上面一样;
||:或,短路运算符;
|:不短路,与上面一样;
!:非,一个操作数;
^:异或;
多用短路运算符:计算左边的,成立则直接过;
- l 三目运算符(例子)
?::只有一个,a?b:c,a正确,则选b;a错误,则选c;更简便,if else有些长;
- l 运算符的结合性和优先级
基本数学运算,从左向右运算;
单目、赋值、三目运算从右向左结合;
优先级:分隔符>单目>强制转换>乘除取余>移位>关系运算符>位运算(与>异或>或)>条件运算>三目>赋值运算符;无需强记,用到的时候再翻翻;
练习: