1.自动类型转换
规则1:如果一个操作数为double型,则整个表达式可提升为double型
规则2:满足自动类型转换的条件 两种类型要兼容 数值类型(整型和浮点型)互相兼容 目标类型大于源类型:
例如:double 型大于 int 型
int a = 2
double b = 4.1
double sum = a+ b
自动转换类型空间大小关系:
char<int<long<float<double
byte<shot<int<long<float<double
注释:byte shot和char 不做自动相互转换
强制转换时,转为int
2.强制类型转换规则
大容量 类型转为小容量类型时:加()
列
int a = 200
byte b = (byte )a
3.运算符
赋值运算符:
int num1=8;
int num2=9;
如何交换数据?
利用第三方暂时存储数据 后赋于数据
算术运算符:
基本算术运算符:+ - * / %(取模运算符/取余运算符) ++(自增运算符) --(自减运算符 )
举例int num1 = 10;
+: int num2 = 3;
int result1 =num1+num2;
System.out.println("num1+num2="+result1);//num1+num2=13
-: int result2 =num1-num2;
System.out.println("num1-num2="+result2);//num1-num2=7
*: int result3 =num1*num2;
System.out.println("num1*num2="+result3);//num1*num2=30
/: int result4 =num1/num2;
System.out.println("num1/num2="+result4);//num1/num2=3
%: int result5 =num1%num2;
System.out.println("num1%num2="+result5);//num1%num2=1
// ++和--修饰的变量参与运算时,++和--在变量前和变量后有没有区别呢?
//++和--修饰的变量参与运算时,如果++和--在变量的前面,变量先进行++或者--操作,操作完毕后,再进行运算
//++和--修饰的变量参与运算时,如果++和--在变量的后面,变量先去进行运算,然后再进行++或者--操作
int c = 200;
int d =++c;
System.out.println("c="+c); //c=201
System.out.println("d="+d); //d=201
int e = 300;
int f =e++;
System.out.println("e="+e); //e=301
System.out.println("f="+f); //f=300
关系运算符
逻辑运算符
int x=8;
int y=9;
System.out.println((++x==y)&&(++x!=y));
System.out.println(x); true 10
int x=8;
int y=9;
System.out.println( (++x!=y)&&(++x==y));
System.out.println(x); flase 9du
优先级别高
单目运算符包括:++ --
优先级别最低的是赋值运算符
可以通过()控制表达式的运算顺序,()优先级最高
从右向左结合性的只有赋值运算符、三目运算符和单目运算符
算术运算符 > 关系运算符 > 逻辑运算符
逻辑运算符
||-------双与
package cn.bdqn.demo05;
public class Dem06 {
public static void main(String[] args) {
int x = 8;
int y = 9;
//因为||左边的表达式(++x == y)的运算结果为true,可以直接判断整个||运算结果为true,||右边表达式不再计算
System.out.println((++x == y) || (++x != y));//true
System.out.println(x);//9}
* 关系运算符(比较运算符):> >= < <= == !=
*
* =为赋值运算符,==为关系运算符里的等于运算符
* 关系运算符的结果为布尔值,要么为true要么为false
* >、<、>=、<= 运算符的优先级别高于==、!=
* >、<、>=、<=运算符只支持数值类型的数据比较
* 关系运算符经常使用在选择结构和循环结构中
*
*/
int num1 = 10;
int num2 = 20;
boolean result1 =num1>num2;
System.out.println("num1>num2:"+result1);//num1>num2:false
System.out.println(num1>=num2);
System.out.println(num1<num2);
System.out.println(num1<=num2);
System.out.println(num1==num2);
System.out.println(num1!=num2);
条件运算符
完整示例;