3.2关键字都是小写,TRUE FALSE NULL都不是Java关键字
3.3数据类型
变量相当于一个有名称的容器,该容器用于装各种不同类型的数据
Java类型分为2种
基本类型:
引用类型:
基本数据类型包括boolean类型和数值类型 数值类型有整数类型和浮点类型 。
整数包括byte short long char int 5个 浮点:double float。
char代表字符型 也是一种整数类型 相当于无符号整数类型。
char类型使用单引号括起来,而字符串使用双引号括起来。
引用类型:包括类,接口和数组类型,还有特殊的null类型
float和double的负无穷可以相等 正无穷大也可以相等
两个非树之间不相等 a=0.0 a/a==Float.NaN
3.5 基本数据类型转换
自动类型转换 左边float= 右边int double左边= int右边 右到左
强制类型转换 int tol=(int)dVlaue 原来是double double=int 右到左。
byte 类型不能自动转换为char
强制类型转换 由大转向小 。自己推测
float a=5.6 是错误的
必须要强转 float a=(float)5.6
3.5.2*** 字符串不能直接转换为基本类型 但可以通过基本类型对应的包装类则可以实现把字符串转换成基本类型
String a="45";
//使用Integer的方法将一个字符串转换为int类型(基本数据类型)
int b=Integer.parInt(a);
Java为8种基本类型都提供了对应的包装类 boolean→Boolean byte→Byte short→Short int→Integer long→Long char→Character
float→Float double→Double 。
3.7 运算符
算术运算符号
赋值运算符
比较运算符
逻辑运算符
位运算符
类型相关运算符
算术运算符7个 +,-,*,/,%
除法注意有 ①除数不能为0 2个数都是整数 ②19/4=4 结果截断取整 2个数都是整数 可以是负数
③2个都是浮点数 计算结果也是浮点数 如果除数是0 或者0.0结果是正无穷大或负无穷大
求余数%时候 一个或者2个操作数是浮点数 则允许第二个操作数为0或者0.0 只是求余数结果是非数NaN。
0或者0.0对零以外的任何数求余数都是0或者0.0.
a++ 右边和++a左边区别
a++ 右边是先放入表达式运算 然后才把操作数+1
++a 是先把操作数+1 再放入表达式运算。
赋值运算符
赋值运算是从右到左执行计算的。
String str="Java"
String str2=str;
int a ,b ,c,d; a=b=c=d;
3.7 位运算符
7个 &与 ,|或,~非, ^异或 当两位同时返回0,不同时返回1 试用后面的运算符,<<左移运算符, >>右移运算符 ,>>>无符号右移运算符
拓展后的赋值运算符
a=a+5 a+=5 运行结果一样但是底层运行机制存在差异
3.7.5比较运算符
比较运算符用于判断两个变量或者常量的大小。比较运算的结果是布尔值true或者false
>,>=,<,<=,==,!=
Computer c1=new Computer();
Computer c2=new Computer();
System.out.println((c1==c2)); false
Computer c3=c1;
System.out.println((c1==c3)); true
3.7.6 逻辑运算符
&&与 两个操作数必须要true 才为true
&
|| 有一个为true 就为true
| 不短路会继续执行 就算条件 已经符号
!非 操作数为true 返回false 反之
^ 异或 当两个操作数不同时才返回true 相同false
3.7.7 三目运算符 可以嵌套
(expression)? if-true-statement : if-false-statement;
String str=5>3? "5大于3" :"5不大于3";
System.out.println(str);//输出"5大于3"
方法二
String str2=null;
if(5>3){
str2="5大于3"
}else{
str2="5不大于3"}
嵌套
System.out.println(a>b? "a大于b":(a<b? "a小于b":"a大于b"))
单目运算符 赋值运算符 多目运算符都是从右到左运算