你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

java数据类型和运算符

2021-11-22 21:29:27

整型数据类型

▪整型常量

–十进制整数,如:99, -500, 0
–八进制整数,要求以 0 开头,如:015
–十六进制数,要求 0x 或 0X 开头,如:0x15

▪整型变量

▪整型常量默认为int型,声明long型常量可以后加‘ l ’或‘ L ‘ (建议使用大写,
小写容易误认为数字1) ,如:
▪long a = 55555555; //不出错,在Int表示的范围内(21亿内)。
▪long b = 55555555 555;//不加l出错,已经超过int表示的范围。

 

浮点型数据类型

▪ 浮点类型常量

十进制数形式,例如:
       ▪3.14
        314.0
        0.314
科学记数法形式,如
   ▪314e2
    314E2
    314E-2
    ▪double f = 314e2; //314*10^2-->31400.0   
    ▪double f2 = 314e-2; //314*10^(-2)-->3.14

▪浮点型变量

    –float类型:单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难         满足需求。
   –double类型:双精度类型 精度是float类型的两倍,绝大部分应用程序都采用double类型。

▪注意

    –浮点常量默认为double。要变为float,需在后面增加F/f. 如: 3.14F
    –浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计          算,需要使用BigDecimal类。

字符数据类型(2个字节)

   ▪ 单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,
      “A”表示含有一个字符的字符串。
   ▪ char 类型用来表示在Unicode编码表中的字符。
   ▪ Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,
         可允许有65536个字符;ASCII码占1个字节,可允许有128个字符
      (最高位是0),是Unicode编码表中前128个字符。
   ▪ Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的
     含义,
         char c2 = '\n'; //代表换行符
  ▪ char类型在内存中存储的是该字符的Unicode编码值,所以char类
   型可以当做int类型来处理

 

布尔数据类型(一位,不是一个字节)

▪ boolean类型有两个值,true和false

▪ boolean 类型用来判断逻辑条件,一般用于程序流程控制

▪ 实践: 

    – 请不要这样写:if ( is == true && done == false ) ,只有新手才那么写。
           对于任何程序员 if ( whether && !done ) 都不难理解吧。所以去掉所有的
           ==fasle 和 ==true。

final 常量

▪ 使用final修饰的变量,只能被初始化一次,变成了常量。

▪ final常量是有名称的

    public class Constants {
         public static void main(StringO args) {
               final double PI= 3.14;
               I PI= 3.15;
               //error
              double r= 4;
              double area = P|* r* r;
              double circle= 2* P|* r;
              System.out.printIn("area= " + area);
              System.out.printIn("circle= " + circle); 
          }

}

命名规则(规范)

    ▪ 所有变量、方法、类名:见名知意

    ▪ 变量、方法名:

          – 首字母小写和驼峰原则
          – run(), runRun(), age    ageNew monthSalary

    ▪ 常量:

   – 大写字母和下划线:MAX_VALUE

   ▪ 类名:

   – 首字母大写和驼峰原则: Man, GoodMan

运算符

▪ Java 语言支持如下运算符:

      – 算术运算符: +,-,*,/,%,++,--
      – 赋值运算符 =
     – 扩展赋值运算符:+=,-=,*=,/=
     – 关系运算符: >,<,>=,<=,==,!=
     – 逻辑运算符: &&,||,!
     – 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
     – 条件运算符 ?:

▪ 相关概念辨析

   – + 运算符 操作符 Operator
   – 5+6 表达式 expression
   – 5 6 操作数 Operand
   – int m =5+6; 语句 Sentence

算术运算符

▪注意:

    –1:/ 除 6/4=1 6/4.0=1.5
    –2: %取模(求余) 6%4=2
    –3:+ 6+‘a’=103 6+“a“=6ª
    –4:++
    ▪a=2;b=++a+9;
    ▪a=2;b=a+++9;
    –+:字符串相加,只要有一个
    操作数是字符串,自动变为字
    符串相连

 

算术运算符

▪二元运算符类型提升:

   –整数运算:
       ▪如果两个操作数有一个为Long, 则结果也为long
       ▪没有long时,结果为int。即使操作数全为shot,byte,结果也是int.

   –浮点运算:

      ▪如果两个操作数有一个为double, 则结果为double.
      ▪只有两个操作数都是float, 则结果才为float.

  ▪一元运算符(++, --):

赋值运算符

▪ 基本赋值运算符 =
▪ 扩展赋值运算符
– 算术运算符和赋值运算符结合

 

 

关系运算符

    ▪ 关系运算符用来进行比较运算
    ▪ 关系运算的结果是布尔值:true/false、
    ▪ 注意
          – 区分==和=
         – 不等于是!=不是<>
运算符            含义                     示例
  ==                  等于                      a==b   
  !=                   不等于                  a!=b
  >                    大于                      a>b
  <                    小于                       a<b
  >=                 大于或等于            a>=b
  <=                 小于或等于            a<=b

  逻辑运算符

      ▪ 逻辑运算符与布尔操作数一起使用,组
         成逻辑表达式
      ▪ 逻辑表达式的结果是布尔值
      ▪ &和&&的区别
            – “&”:无论任何情况,“&”两边的表达式都会参
                  与计算。
           – “&&”: 当“&&”的左边为false,则将不会计算
               其右边的表达式。即左false则false
     ▪ “|”和“||”的区别与“&”和“&&”的区别类似。
    运算符                 含义                             示例
        &                     逻辑与                          A&B
        |                      逻辑或                          A | B
        ^                     逻辑异或                       A^B
        !                   逻辑反                            !A
        ||                     短路或                          A || B
        &&                  短路与                          A&&B

位运算符(了解)

       ▪ 位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。
       ▪ 如果操作的对象是char、byte、short,位移动作发生前其值会自动晋升为int,运算结
         果也为int。
         运算符                              含义                                          示例
                
              ~                            按位非( NOT /取反                  b = ~a    
              &                               按位与( AND)                       c = a & b
              |                                  按位或( OR                           c = a | b
              ^                         按位异或 ( 相同为 0 相异为1)             c = a ^ b            
              >>                  右移;左边空位补最高位即符号位       b = a >> 2          
            >>>                       无符号右移,左边空位补0              b = a >>> 2
              <<                            左移;右边空位以补0                 b = a << 1

条件运算符

                   
▪ 语法格式
    – x ? y : z                                           int a=3;                               int  a=3;
    – 唯一的三目运算符                          int b=5;                               int  b=5;        
                                                              String  str ="";                      String str =      
                                                               if(a<b){                                (a<b)?"a<b":"a>b";
                                                               str ="a<b";           
                                                               }else{
                                                               str ="a>b";
                                                               }
    
             
▪  执行过程
      – 其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运
         算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。
  ▪ 经常用来代替简单的if-else判断!

                    运算符的优先级

▪                不需要去刻意的记优先级关系
              ▪ 赋值<三目<逻辑<关系 <算术<单目
              ▪ 理解运算符的结合性

 

基本数据类型之间的转换

      ▪ 在 赋值运算 算术运算 时,要求数据类型相同,否则要进行类型转换
      ▪ 转换方式:
              – 自动转换
              – 强制转换
       ▪ 除boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时
          都要考虑这个问题
       ▪ 除boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型。

    ▪ 算术运算时的转换

     – 整型,浮点型,字符型数据可以混合运算。
     – 运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。
     – 3+'A'+45L
     – 5+3.6+ 'A'+ 3.14f
           操作数 1类型                                           操作数 2类型                                  转换后类型
         byte short char                                          int                                                    int
          byte short char int                                 long                                                  long
          byte short char int long                      float                                                  float
          byte short char int long 、                  double                                               double
          float                                                             double                                               double

▪赋值运算时的转换

 

 

▪ 总结

      – =右侧:所有变量先转换为字节数最多的数据类型,再计算
      – =两侧:左侧宽度>右侧宽度 自动转换
                      左侧宽度<右侧宽度 强制转换

▪ 特例

     – 可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强
        制类型转换,只要不超出其表数范围
    – short b = 12;      //合法
    – short b = 1234567;   //非法