• Java数据类型和运算符


    一,数据类型分类(2种)

    1. 基本数据类型(3种)

    • 数值型:

      • 整数类型(4种):

        1. byte(1字节):范围(-128~127);
        2. short(2字节):范围(-32768~32767);
        3. int(4字节);
        4. long(8字节):若数据定义为long类型超过int范围后面 需加“L”(推荐)或“l”(默认为int,超过int范围编译将会报错,未超过则不会);
      • 浮点类型(2种):

        1. float(4字节):第1位为符号位,接下来8位表示指数,再接下来23位表示尾数;若指定浮点类型为float需加“F”或“f”(默认为double,否则编译提示可能损失精度);
        2. double(8字节):第1位为符号位,接下来11位表示指数,再接下来52位表示尾数;
        3. 浮点数的形式: 
          • a.十进制数形式:必须包含一个小数点(1.68、168.0和 .168),否则当成int类型;
          • b.科学计数法形式:只有浮点类型数值才可以使用,如1.68e2(168.0)、1.68E2和168e2(16800.0);
        4. 特殊浮点数: 
          • a.正无穷大:正数除于0.0,用Double或Float的POSITIVE_INFINITY表示,所有的正无穷大都相等;
          • b.负无穷大:负数除于0.0,用Double或Float的NEGATIVE_INFINITY表示,所有的负无穷大都相等;
          • c.非数:0.0/0.0,用Double或Float的NaN表示,所有的非数均不相等;
    • 字符型:char(2字节)

    • 布尔型:boolean(1字节)

    • 注意: switch语句中只能接受byte、short、int和char 类型变量(JDK1.6以前的版本),JDK1.7时,又增加了String。

    2. 引用数据类型

    • 类(class)
    • 接口(interface)
    • 数组([ ])

     

     

    Java中的六种运算符:
    • 算术运算符
    • 赋值运算符
    • 关系运算符
    • 逻辑运算符
    • 位运算符
    • 三元运算符
     
    算术运算符:
    +:加法运算,求操作数的和
    -:减法运算,求操作数的差
    *:乘法运算,求操作数的乘积
    /:除法运算,求操作数的商
    %:求余运算,求操作数相除的余数
    ++:自增,操作数自加1
    --:自减,操作数自减1
     
    赋值运算符:
    =:将右边的值赋给左边,例:int a = 1;
    +=:左右两边的和相加赋给左边,例:int a = 1; a+=2;结果a的值为3
    -=:左边减去右边的差赋给左边,例:int a =5;a-=2;结果a的值为3
    *=:两边数值相乘的值赋给左边,例:int a = 2;a*=2;结果a的值为4
    /=:左边除以右边的值赋给左边,例:int a = 6;a/=2;结果a的值为3
    %=:左边除以右边的余数赋给左边,例:int a =7;a%=2;结果a的值为1
     
    关系运算符
    >:大于,例:int a = 1;int b = 2;System.out.print(a > b);其结果为false
    <:小于,例:int a = 1;int b = 2;System.out.print(a < b);其结果为true
    >=:大于等于,例:int a = 1;int b = 2;System.out.print(a >= b);其结果为false
    <=:小于等于,例:int a = 1;int b = 2;System.out.print(a <= b);其结果为true
    ==:等于,例:int a = 1;int b = 2;System.out.print(a == b);其结果为false
    !=:不等于,例:int a = 1;int b = 2;System.out.print(a != b);其结果为true
      其结果都是boolean类型,即要么是true要么是false
     
     
    逻辑运算符
    &&:与、并且(短路),   两个条件同时为真时,结果为真
    ||:或、或者(短路),   两个条件有一个为真时,结果即为真
    !:非,(!+条件)  条件为真时,结果为假
     
     
     
    Java中的数据类型转换
    1:自动数据类型转换(放大转换)
    满足自动数据类型转换条件:
    1)两种类型要兼容:如数值类型(整型和浮点型)
    2)目标类型大于源类型:例如int型数据可以自动转换为double类型
     
    2:强制数据类型转换(缩小转换)
    在变量前加上括号,在括号中指定要强制转换的类型
    例:double a = 40.9;
        int b = (int)a;
    注:强制转换会损失数值精度,例如double类型变量a,经强制转换为int类型后值变为40

     

     

    运算符的优先级:

    1,算数运算符() ++ -- > * / % + -

    2,比较运算符(> < >= <=) > (== !=)
    3,逻辑运算符! > & > ^ > |
    4,赋值运算符=

    算数运算符> 比较运算符(关系运算符) > 条件运算符 >赋值运算符

     

    优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
    相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
    基本的优先级需要记住:
    指针最优,单目运算优于双目运算。如正负号。
    先乘除(模),后加减。
    先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
    逻辑运算最后计算。

     

     

    优先级
    运算符
    名称或含义
    使用形式
    结合方向
    说明
    1
    后置++
    后置自增运算符
    变量名++
    左到右
     
    后置-- 后置自减运算符 变量名--  
    [ ]
    数组下标
    数组名[整型表达式]
     
    ( )
    圆括号
    (表达式)/函数名(形参表)
     
    .
    成员选择(对象)
    对象.成员名
     
    ->
    成员选择(指针)
    对象指针->成员名
     
    2
    -
    负号运算符
    -表达式
    右到左
    单目运算符
    (类型)
    强制类型转换
    (数据类型)表达式
     
    前置++
    前置自增运算符
    ++变量名
    单目运算符
    前置--
    前置自减运算符
    --变量名
    单目运算符
    *
    取值运算符
    *指针表达式
    单目运算符
    &
    取地址运算符
    &左值表达式
    单目运算符
    !
    逻辑非运算符
    !表达式
    单目运算符
    ~
    按位取反运算符
    ~表达式
    单目运算符
    sizeof
    长度运算符
    sizeof 表达式/sizeof(类型)
     
    3
    /
    表达式/表达式
    左到右
    双目运算符
    *
    表达式*表达式
    双目运算符
    %
    余数(取模)
    整型表达式%整型表达式
    双目运算符
    4
    +
    表达式+表达式
    左到右
    双目运算符
    -
    表达式-表达式
    双目运算符
    5
    <<
    左移
    表达式<<表达式
    左到右
    双目运算符
    >>
    右移
    表达式>>表达式
    双目运算符
    6
    >
    大于
    表达式>表达式
    左到右
    双目运算符
    >=
    大于等于
    表达式>=表达式
    双目运算符
    <
    小于
    表达式<表达式
    双目运算符
    <=
    小于等于
    表达式<=表达式
    双目运算符
    7
    ==
    等于
    表达式==表达式
    左到右
    双目运算符
    !=
    不等于
    表达式!= 表达式
    双目运算符
    8
    &
    按位与
    整型表达式&整型表达式
    左到右
    双目运算符
    9
    ^
    按位异或
    整型表达式^整型表达式
    左到右
    双目运算符
    10
    |
    按位或
    整型表达式|整型表达式
    左到右
    双目运算符
    11
    &&
    逻辑与
    表达式&&表达式
    左到右
    双目运算符
    12
    ||
    逻辑或
    表达式||表达式
    左到右
    双目运算符
    13
    ?:
    条件运算符
    表达式1? 表达式2: 表达式3
    右到左
    三目运算符
    14
    =
    赋值运算符
    变量=表达式
    右到左
     
    /=
    除后赋值
    变量/=表达式
     
    *=
    乘后赋值
    变量*=表达式
     
    %=
    取模后赋值
    变量%=表达式
     
    +=
    加后赋值
    变量+=表达式
     
    -=
    减后赋值
    变量-=表达式
     
    <<=
    左移后赋值
    变量<<=表达式
     
    >>=
    右移后赋值
    变量>>=表达式
     
    &=
    按位与后赋值
    变量&=表达式
     
    ^=
    按位异或后赋值
    变量^=表达式
     
    |=
    按位或后赋值
    变量|=表达式
     
    15
    ,
    逗号运算符
    表达式,表达式,…
    左到右
    从左向右顺序运算

     



    结合性
    ( ) [ ] -> . ++(后缀自增) --(后缀自减)
    left to right
    ! ~ ++(前缀自增) --(前缀自减) + - * sizeof(type)
    right to left
    * / %
     

      

      

      
    left
    to
    right
    + -
    << >>
    < <= > >=
    == !=
    &
    ^
    |
    &&
    ||
    ? : (条件运算)
    right to left
    = += -= *= /= %= &= ^= |= <<= >>=

     

    结合性
    ( ) [ ] -> . ++(后缀自增) --(后缀自减)
    left to right
    ! ~ ++(前缀自增) --(前缀自减) + - * sizeof(type)
    right to left
    * / %
     

      

      

      
    left
    to
    right
    + -
    << >>
    < <= > >=
    == !=
    &
    ^
    |
    &&
    ||
    ? : (条件运算)
    right to left
    = += -= *= /= %= &= ^= |= <<= >>=
  • 相关阅读:
    聊聊什么是慢查、如何监控?如何排查?
    navicat连接sqlserver数据库提示:未发现数据源名并且未指定默认驱动程序
    定位元素的父(parent::)、兄弟(following-sibling::、preceding-sibling::)节点
    java方法返回值前面的泛型是什么?
    java8Lambda的环绕执行模式
    try语法糖
    php-fpm优化内存占用大
    Gitlab安装
    第2章 python入门
    LAMP源码安装
  • 原文地址:https://www.cnblogs.com/guanghe/p/6053359.html
Copyright © 2020-2023  润新知