Java基础-数据结构

Java基础

1、八种基本数据类型

1.1、整数类型

  • byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。

  • short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。

  • int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1

  • long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

1.2、浮点数类型

  • float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。

  • double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

1.3、字符类型

  • char:16位,存储Unicode码,用单引号赋值。

1.4、布尔类型

  • boolean:只有true和false两个取值。

2、Java不同数据类型之间的运算

2.1自动类型转换(低-高)

数据类型转换必须满足如下规则:

1、不能对boolean类型进行类型转换。

2、不能把对象类型转换成不相关类的对象。

3、在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

数据类型容量大小关系

  • byte short char > int > long > float > double

  • byte short char之间不能互相转换

分析:byte类型参与运算,首先会转换为int类型;当int 、 long 、 float 、 double三种数据类型混合运算时,得到的返回值类型将根据容量取最大值

2.2强制类型转换(高-低)

  • 强制类型转换需注意内存溢出问题,例如下面代码:

        int i = 200;
        byte b = (byte) i;
        System.out.println(b);//运行结果为-56
  • 此时int类型的i将内存中的值存入b,由于b类型为byte无法储存如此“庞大”的数值则会出现内存溢出的情况

  • 强制类型转换还需注意精度丢失问题,例如下面代码:

        double pi =3.1415926535;
        float i = (float)pi;
        System.out.println(i);//运行结果为3.1415927
  • 此时double类型的pi将内存中的值存入i,由于i类型为float是单精度,比double类型精度要小,所以会造成精度丢失的情况

3、Java运算符

  • java中位运算符主要有:按位与&、按位或|、按位非~、按位异或^。

  • 在使用时,需要将运算数都转换为二进制再进行运算,若为负数则使用补码表示。

非位运算值表

A~A
10
01

与位运算值表

ABA&B
111
100
010
000

或位运算值表

ABA | B
111
101
011
000

异或位运算值表

ABA&B
110
101
011
000

移位运算符

移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。

运算符含义例子
<<左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)x<<3
>>"有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.x>>3
>>>"无符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.x>>>3

例如:

        System.out.println(16>>3);//2
        System.out.println(16/2/2/2);//2
        System.out.println(50<<5);//1600
        System.out.println(50*2*2*2*2*2);//1600
        System.out.println(16>>>3);//2

结论:

1、左移运算符相当于做乘法,左移几位则乘几个2

2、右移运算符相当于做除法,右移几位则除以几个2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值