javaSE知识点第二章

数据类型、变量、运算符
      1. 变量:数据类型 变量名;    
              数据类型  变量名 = 值;
         注意:java是强类型的语句,数据存储对应类型变量中
      2. 数据类型:
         (1) 基本数据类型(简单数据类型/原始数据类型)
             (B= Byte字节    KB=1024B   MB =1024KB   GB=1024MB   TB=1024GB)
             byte    1B    -128~127
             short   2B    -32768~32767
             int     4B
             long    8B
             float   4B
             double  8B
             char    2B    char c= 'A'   char c= '9'   char c= 9;(整数形式赋值:0~65535)
             boolean  true/false
         (2) 引用:对象数据(对象类型的变量)
             数组、类、集合、接口等都是对象/引用类型
             String str="hello"

             实际开发常用:整数 int
                  小数  double
                 布尔类型通常应用在判断:true代表关系成立;false代表关系不成立  
                 由于Java中的特点为:面向对象,后期会利用包装类将基本数据转换为对应对象类型

      3. 类型转换:【面试会涉及】
         (1) 自动类型提升
             a. 小数据类型给大数据类型赋值,直接赋值即可
             b. 自动类型提升规则:
                byte->short->int->long->float->double
                注意:float和double小数类型,可以采用科学技术法的存储方式
                     100 = 1*10^2 = 1e2
                char->int->long ->float->double   
         
         (2) 强制类型转换
             a. 大数据类型赋值给小数据类型的变量,需要强制类型转换
             b. 语法: 
                double d = 9.7;
                int a = (int)d;
             c. 结果:
                i. 大类型的变量中存储的数据恰巧在小类型的变量存储范围内,没有溢出
                ii. 大类型的变量中存储的数据不在小类型的变量存储范围内,则溢出
       4. 运算符
          +  -  *  % 
          >  <  >=   == ..
          +=  -= 
               int a = 1;
               a+=1 ; // a=a+1
          
          注意:Java中的+有两种用法:
               a. 第一种为:加法运算
               b. 第二种为:字符串的拼接
                          System.out.println(5+6+"hello"); // 11hello
                           System.out.println("hello"+5+6); // hello56


       5. 表达式结果类型:
          (1) 如果表达式中有一个类型为double,结果为double
          (2) 如果表达式中有一个类型为float,结果为float
          (3) 如果表达式中有一个类型为long,结果为long
          (4) 其余情况结果类型都为 int类型
              byte+byte    byte+short    short+short   
              int a = 8;
              double d = 8.9;
          
          
          面试题目:以下代码是否编译通过,通过,运行结果,不同解释原因
              (1) byte b = 1;
                  b = b+1;
                  System.out.println(b);
                  编译报错,错误原因:b+1结果类型自动提升为int,存储在byte类型的变量损失精度,编译报错
                  
               (2) byte b = 1;
                   b+=1;
                   System.out.println(b);
                   
                   编译通过,运行2,原因:+= 没有自动类型提升
                                 实际底层:b+=1 ; // b+1 ->int,自动强制转为 int->byte (byte)(b+1)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值