赋值类运算符 基本类型和扩展类型
赋值运算符包括两种:
基本类型
扩展类型
数据类型:
基本数据类型
引用数据类型
赋值类型的优先级:先执行等号右边的表达式,再将执行结果赋值给 左边的变量 (从右到左)
=
+=
-=
/=
%=
byte b = 10;
//10没有过超出byte的取值类型,可以直接赋值
b = b+5;(字节+整型)就是数据类型不匹配
//编译错误,编译器只检查语法,不运行程序,编译器发现b+ 5时int类型,b变量的类型是 byte
//大容量小容量转换,需要假强制转换符
注意:
byte i = 5;
i += 5;// 10 等同于 i = (byte)i+5;存在类型转换
结论:
扩展类型的赋值运算符不改变运算结果类型,假设最初这个变量的类型是byte类型,无论怎么进行
+=或-=…,最终该变量的数据还是byte类型。
字符串连接运算符
关于Java中的 + 号运算符:
1.求和
2.字符串的连接运算
当Java中两边都是数字的话,那么是求和运算符
当Java中又一边是字符串,那么是字符串连接运算符
在一个表达式中可以出现多个 +号,在没有添加小括号的前提下,遵循从左向右的运算
string 引用数据类型
string username = "zhangsan";
// 定义一个string类型的变量,起名为username, 赋值张三
string是引用数据类型不能随便乱定义
string.class字节码文件
三目运算符
1.语法规则:
布尔表达式?表达式1:表达式2
执行原理:
当布尔表达式为true时,执行表达式1,作为整个表达式的执行结果
当布尔表达式为false时,执行表达式2,同理
如:
sex = true;
c = (true?'男':'女');//字符变量,是个字符 注意:
不是Java语句不能单独写
sex?’男‘:’女‘
system.out.println(c);
输出:
男
string s = sex?"男":"女";
system.out.println(s);
//这样是可以的,因为string是字符串连接类型且是引用型