基本数据类型(byte、short、int、long)和引用数据类型(class)

数据类型的分类

 java中的 变量 按照数据类型来分类:

  • Java语言是 强 类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也是不一样的。
  • 基本数据类型(4类8种)(primitive type):
    • 整型:byte、short、int、long、
    • 浮点型:float、double
    • 字符型:char
    • 布尔型:boolean
  • 引用数据类型 (reference type):
    • 类(class)(String
    • 数组(array) [  ]
    • 接口(interface)
    • 枚举(enum)
    • 注解(annotation)
    • 记录(record)

整型变量的使用说明

  •  java的整型常量默认为int型,声明long型常量需后加  ‘L’   或    ‘l’
  •  java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
类型占用存储空间(内存占用)表数范围
Byte1字节=8bit位(2^{0}) ( 1*8=8 位)(-2^{7} ~ 2^{7}-1)    (-128 ~ 127)   (2^{8}=256)(128+127=255,255加上中间一个0一共有256个数据)
short2字节(2^{1}) ( 2*8=16 位)-2^{15}~2^{15}-1(2*8-1)(-32768~32767)(3万2左右多
int4个字节(2^{2})( 4*8=32 位 )-2^{31}~2^{31}-1(4*8-1)(约21亿)(10位数
long8字节(2^{3})( 8*8=64 位 )-2^{63}~2^{63}-1(8*8-1)(19位数
  • 计算机中的最小存储单位:bit(每个0或1就是一个位)
  • 计算机中基本存储单元:Byte(B)(是计算机用于计算存储容量的基本单位)
  • 转换关系:

         8 bit = 1 Byte

        1024 Byte = 1KB

        1024 KB = 1MB

        1024 MB =1GB

        1024 GB = 1TB

浮点型变量的使用说明

  • float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求
  • double:双精度,精度是float的两倍。通常采用此类型。
  • 明摆着写上一个3.14,什么都没有, 只写上1个3.14 ,就会分不清楚到底是float还是double  ,为了区分,浮点数当中默认类型是double 。如果 一定要使用float类型,需要加上一个后缀 ‘F’ 或  ‘f’  。
  • 浮点型可能只是一个近似值,并非精确的值。
  • 随便写一个小数字面量默认是double类型。
类型占用存储空间表数范围
单精度float4字节(2^{2}1.401298E-45 ~ 3.403E + 38
双精度double8个字节(2^{3}4.9000000E-324 ~ 1.797693E + 308(乘以10的308次方)
        说明:E + 38表示是乘以10的38次方,同样,E - 45表示乘以10的负45次方

关于浮点型精度的说明

  • 并不是所有的小数都能可以精确的用二进制浮点数表示。二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。
  • 浮点类型float、double的数据不适合在不容许舍入误差的金融计算领域。如果需要精确数字计算或保留指定位数的精度,需要使用BigDecimal类。

为什么0.1 + 0.2不等于0.3 ?
System.out.println(0.1 + 0.2);//0.30000000000000004
float ff1 = 123123123f;
float ff2 = ff1 + 1;
System.out.println(ff1);//1.2312312E8
System.out.println(ff2);//1.2312312E8
System.out.println(ff1 == ff2);//true
//      定义圆周率并赋值为3.14,现在3个圆的半径分别为 1.2,2.5,6,求它们的面积
        double PI = 3.14;
        double radius1 = 1.2;
        double radius2 = 2.5;
        int radius3 = 6;

        double area1 = PI * radius1 * radius1;
        double area2 = PI * radius2 * radius2;
        double area3 = PI * radius3 * radius3;

        System.out.println(area1);
        System.out.println(area2);
        System.out.println(area3);

//      小明要到美国旅游,可是那里的温度以华氏度为单位记录的,
//      它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。
        double fahrenheit = 80;
        double centigrade = (fahrenheit - 32) / 1.8;
        System.out.println("华氏度" + fahrenheit);//华氏度80.0
        System.out.println("摄氏度" + centigrade);//摄氏度26.666666666666664

字符类型 

  • char型数据用来表示通常意义上  “字符”  (2字节)(2^{1})(1个字符 = 2个字节)(16位)
  • Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语一个字符
  • 0~65535   占用6万多个字符
  • 转义字符说明   Unicode表示方式

    \b(backspace) 

    退格符\u000a
    \n(line)换行符\u0009
    \r(return)回车符\u0022
    \t(table)制表符\u0027
    \ ''双引号\u005c
    \ '单引号\u0008
    \\

    反斜 线

    \u000d

        

  • 字符变量的三种表现形式:
  1.                 字符常量是用单引号(‘ ’)括起来的单个字符。
  2.                 Java中还允许使用  转义字符 ‘\’  来将其后的字符转变为特殊字符常量。
  3.                 直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a表示 \n
  4.                 直接赋值数值,对应ASCII 
  •         char c = 97;
            System.out.println(c);//a
  • char类型是可以进行运算的。因为它都对应有 Unicode 码。

 布尔类型(boolean)变量的使用

  • 只能取两个值之一:true、false
  • 常常在条件判断、循环结构中使用
  • 了解:我们不谈boolean类型占用的空间大小。但是,真正在内存中分配的话,使用的是4个字节(2^{2}

注意事项: 

  • 数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4个字节,long是8个字节。
  • 整数和小数取值范围大小关系:double > float > long > int > short > Byte
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值