[JAVASE复习]02.数据类型与运算符


1.数据类型

在这里插入图片描述

数据类型分类

Java的数据类型分为两⼤类:

  1. 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔
  2. 引⽤数据类型:包括 类 、 数组 、 接⼝ 、枚举 、注解 。

整数运算的溢出

两个整数进⾏运算时,其结果可能会超过整数的范围⽽溢出,请看如下代码:

int a = 2147483647;
int b = -2147483648;
a = a + 1;
b = b - 1;
System.out.println("a=" + a);
System.out.println("b=" + b);

上述代码运⾏后的输出结果为:

a=-2147483648
b= 2147483647
  1. 变量 a 最初的值为2147483647,是int类型的最⼤值,加1以后出现了溢出现象,a的值变成了int类型的最⼩值。
  2. ⽽b变量最初赋的值为-2147483648,是int类型的最⼩值,减1以后出现了溢出现象,b的值变成了int类型的最⼤值。

2.运算符

算数运算符

算数运算符作用
1.加法运算,字符串拼接运算
2.减法运算
3.乘法运算
/除法运算,整除
%取模运算,两个数字相除取余数
++ 、 –⾃增⾃减运算

++a和a++的区别

++ 运算,变量⾃⼰增⻓1。

  1. 独⽴运算:
    变量在独⽴运算时, 前++ 和 后++ 没有区别 。
    变量 前++ :例如 ++i 。
    变量 后++ :例如 i++ 。

  2. 混合运算:
    和其他变量放在⼀起, 前++ 和 后++ 就产⽣了不同。
    变量 前++ :变量a⾃⼰加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结果都是2。

public static void main(String[] args) {
int a = 1;
int b = ++a;
System.out.println(a); // 计算结果是2
System.out.println(b); // 计算结果是2
}

变量 后++ :变量a先把⾃⼰的值1,赋值给变量b,此时变量b的值就是1,变量a⾃⼰再加1。a的结果是2,b 的结果是1。

public static void main(String[] args) {
int a = 1;
int b = a++;
System.out.println(a); // 计算结果是2
System.out.println(b); // 计算结果是1
}

逻辑运算符

逻辑运算符作用
&& 短路与两边都是true,结果是true ⼀边是false,结果是false 短路特点:符号左边是false,右边不再运算
II 短路或两边都是false,结果是false ⼀边是true,结果是true 短路特点: 符号左边是true,右边不再运算
! 取反. ! true 结果是false. ! false 结果是true

三元运算符

数据类型 变量名 = boolean ? v1 : v2 

布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量


位移运算符

左移操作符 ( <<):

  1. 按照操作符右侧指定的位数将左边的操作数向左边移动(高位移除,在低位补0);
  2. 当左移的操作数是int类型时,每移动一位它的第31位就要被移除(位数以第0位开始)
  3. 意义:在没有数字溢出的前提下,左移1位相当于乘以2的1次方,左移n位相当于乘以2的n次方.

右移操作符(>>):

  1. 按照操作符右侧指定的位数将操作符左边的操作数向右移动(采用符号扩展机制);
  2. 符号扩展进行移位,即:若符号为正,则在高位插入0,若符号为负,则在高位插入1(符号位保持不变);
  3. 当左边的操作数为byte、short类型时,它们会被转换为int类型,其结果要是int类型。
  4. 右移一位相当于除以2,右移n位相当于除以2的n次方

“无符号”右移操作符(>>>):

value >>> num value指定移动的值 num指定移动的位数

  1. 按照操作符右侧指定的位数将操作符左边的操作数向右移动(0扩展机制);
  2. 移位过程中,无论数值是正数还是负数,都在最高位补0
  3. 只对32位和64位值有意义
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值