变量与运算符

变量
  • 数据类型
  • 变量名
  • 变量值

基本数据类型+引用数据类型

数值类型:byte 1字节,int 4字节,short 2字节,long 8字节,float 4字节,double 8字节

非数值类型:char 2字节,boolean 1/8字节(1bit)

数据转换类型
  • 自动转换

Java可以自动对某些数据类型进行自动转换

规则:只能由低字节向高字节进行转换,反之不行。

特殊:char->int,不可以转byte

  • 强制类型转换

一般来讲强制类型转换可能会造成精度损失

double num = 10.0;
int num2 = (int)num1;
运算符
  • 赋值运算符

数据类型 变量名 = 数值/变量;

//1.创建变量记录张三体重
double weight1 = 70.5;
//2.创建变量记录李四体重
double weight2 = 60.5;
System.out.println("交换之前:张三体重为:"+weight1+",李四体重为:"+weight2);
System.out.println("体重交换");
double temp = weight1;
weight1 = weight2;
weight2 = temp;
System.out.println("交换之后:张三体重为:"+weight1+",李四体重为:"+weight2)
  • 算术运算符

    +,-,*,/,%,++,–

  • 符复合算术运算符

​ +=,-=,*=,/=,%=

  • 关系运算符

    ==,!=,>,<,>=,<=

  • 逻辑运算符(对布尔型进行运算)

    逻辑运算符只能⽤于 boolean 类型的数据运算,判断 boolean 数据之间的逻辑关系,与、或、⾮。 &(与)、|(或)、!(⾮)、&&(短路与)、||(短路或)

    参与逻辑运算符的变量都是 boolean 的

    变量1 & 变量2:只有当变量 1 和变量 2 都为 true,结果为 true,否则为 false。

    变量1 | 变量2:变量 1 和变量 2 只要有⼀个为 true,结果为 true,否则为 false。

    !变量1:若变量 1 为 true,结果为 false,若变量 1 为 false,结果为 true。

    变量1 && 变量2:只有当变量 1 和变量 2 都为 true,结果为 true,否则为 false。

    变量1 || 变量2:变量 1 和变量 2 只要有⼀个为 true,结果为 true,否则为 false。

    特别的,短路与和短路非,当前者不满足条件时,直接返回值,不会进行接下来的判断

三目运算符
String str = 5>3?"5>3":"5!>3";
System.out.println(str);//输出5>3
位运算(对整数进行运算)
运算符含义实例结果
<<左移
>>右移
>>>无符号右移
&与运算3&40
|或运算3|47
^异或运算3^47
~取反~3-4

&按位与:两位同时为1才返1

|按位或:只要有一个1就返1

^按位异或:相同返0,不同返1

~按位非(取反):0变1,1变0

原码–>补码:取反,加1

补码–>原码:减1.取反

正数的补码与原码相同

负数在计算机里以补码形式存在

  • 左移

    操作数<<位数

将操作数左移指定位数

首先转为二进制,按位数左移,左边最高位丢弃,右边补齐0

左移一位即左边的数乘以2的1次方,以此类推

3<<2
3的二进制:
00000000 00000000 00000000 00000011
左移2位,左边最高位丢弃,右边补0
00000000 00000000 00000000 00001100
  • 右移

    操作数>>位数

将操作数右移指定位数

最高位是0,左边补齐0;最高位是1.左边补齐1

右移一位即左边操作数除以2的1次方,以此类推;负数转成补码右移,再转成原码

24>>2
24de二进制:
00000000 00000000 00000000 00011000
右移两位,最高时0,左边补0
00000000 00000000 00000000 00000110
  • 无符号右移

    操作数>>>位数

右移指定位数,统统补0

正数和右移操作一样;负数转成补码右移,移完变正数后直接进行二进制运算

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值