• java基本数据类型及运算的注意事项


    java基本数据类型及运算的注意事项

    一、基本数据类型

     

    序号

    类型

    位数

    范围

    说明

    整数类型

    (最高位为符号位)

    byte

    8位

    -128(-27)~127(27-1)

    默认类型为int

    二进制0b开头

    八进制0开头

    十六进制0x开头

    short

    16位

    -32 768(-215)~32 767(215-1)

    int

    32位

    -2 147 483 648(-231)~2 147 483 647(231-1)

    long

    64位

    -9 223 372 036 854 775 808(-263)~9 223 372 036 854 775 807(263-1)

    字符类型

    char

    16位

    单字符、转义字符、Unicode

    例:'A',' ','u9999'

    浮点类型(最高位为符号位)

    float

    32位

    1位为符号8位为指数23位为尾数

    默认类型为double

    double

    64位

    1位为符号11位为指数52位为尾数

    布尔类型

    boolean

    1位

    true或false

    不能用0或非0代表

     

    常量后加l或L表示该常量为long类型,占64为,否则默认为int类型占32位;

    常量后加f或F表示该常量为float类型,占32位,否则默认为64位占64位。浮点数可以采用十进制形式(例:5.12、.512),也可以采用科学计数法形式(例:5.12e2或5.12E2)。

    特殊的直接量null,可以赋给任何引用类型的变量,表示该引用类型指向的地址为空。

    特殊的浮点数值:正无穷大、负无穷大、非数,表示溢出和出错。使用Double类和Float类的POSITIVE_INFINITYNEGATIVE_INFINITYNaN表示。所有正无穷大的数值都是相等的,所有负无穷大的数值都是相等的,NaN不与任何数值相等,NaN与NaN也不相等。只有浮点数除以0才能得到正无穷大或负无穷大,整数除以0会抛出异常。0.0除以0.0或对一个负数开方得到非数即NaN。

    整数型数值或浮点型数值可以使用下划线作为分隔,java7以上支持,例如:4_524_012_578,0B1000_1111_0101_1011。

    二、类型转换

    类型的自动提升:当一个表达式中包含多个基本类型的值时,整个表达式将发生自动提升。自动提升的规则如下:

    1. 所有byte类型、short类型和char类型将自动提升为int类型
    2. 整个算数表达式的数据类型自动提升到与表达式中最坐高等级操作数同样的类型。

    强制类型类型转换,语法格式:(type)value。字符串转为基本类型时,需要使用对应的包装类:Byte、Short、Integer、Long、Character、Float、Double,它们提供了静态方法parseXxx(String str)用于转换。

    三、运算

    运算符优先级

    左移运算<<,将操作数的二进制码整体左移指定位数,右边空出的位用0填充,注意:负数的符号位也参与移动。

    右移运算>>,将操作数的二进制码整体右移指定位数,空出来的位置使用符号位填充,注意:符号位始终保持不变。

    无符号右移运算>>>,将操作数的二进制码整体右移指定位数,空出来的位置使用0填充,注意:符号位变为0。

    移位运算遵循的规则

    1. 对于低于int类型(byte、short、char)的操作数总是先自动转换为int类型,然后再移位;
    2. 对于int型的移位操作a>>b,当b>32时,系统先用b对32求余,余数为真正的移位数,例如:a>>33和a>>1的结果一样;
    3. 对于long型的移位操作a>>b,当b>64时,系统先用b对64求余,余数为真正的移位数。

    逻辑运算符&&和&的区别:对于&&,如果左边的表达式为false,则右边的表达式将不再就算;而&,两边的表达式总会计算,不论左边的表达式是否为false。

    逻辑运算符||和|的区别:对于||,如果左边的表达式为true,则右边的表达式将不再就算;而|,两边的表达式总会计算,不论左边的表达式是否为true。

  • 相关阅读:
    性能测试的一些大实话:会linux命令以及其它工具,到底能不能做性能分析调优?
    使用Docker方式部署Gitlab,Gitlab-Runner并使用Gitlab提供的CI/CD功能自动化构建SpringBoot项目
    Docker安装Gitlab
    Docker部署ELK
    Dockerfile中ADD命令详细解读
    使用Gitlab CI/CD功能在本地部署 Spring Boot 项目
    SSH 克隆跟HTTP 克隆地址的区别
    Docker安装Gitlab-runner
    Docker方式安装Jenkins并且插件更改国内源
    使用docker-compose部署SonarQube
  • 原文地址:https://www.cnblogs.com/ITnoteforlsy/p/12238471.html
Copyright © 2020-2023  润新知