• 入门(六)---基本数据类型


    数据类型
      基本数据类型    8个
         整型    4个

          byte    字节型---->1个字节8个bit 敏感单元位

              1byte==8bit  00000000 256种组合
              用第一个bit位置来记录符号  0整数  1负数
              数值的范围 -2的7次方 ~ 2的7次方-1(即-128~127)
              以上的其他整数类型 一次乘以2      

          shot 2字节==16bit   65526种(-32768~32767)

          int 4字节==32bit (-2147483648~2147483647)
          long 8字节==64bit
     
        浮点型 2个    float (4字节==32个bit)单精度,double (8字节64个bit)双精度
        字符型  1个    char 键盘上能输出的 2字节==16bit    Unicode编码(0-65535个)
        布尔型 1个    boolean 1bit true1 false0
     
      引用数据类型
        数组[],
        类class(抽象类abstractclass),
        接口interface,
        枚举enum,
        注解@interface
     
     实例1:
    public class Test3{
        public static void main(String[] args){
            byte a = 1;
            short b = 2;
            int c = 3;
            long d = 2;
            float e =3.4;
            double f = 5.2;
            char g = 'y';
            boolean h = true;
        }

    E:JavaTestday3>javac Test3.java
    Test3.java:7: 错误: 不兼容的类型: 从double转换到float可能会有损失
    float e =3.4;
    ^
    1 个错误

     
    实例2:
    public class Test3{
        public static void main(String[] args){
            byte a = 1;
            short b = 2;
            int c = 3;
            long d = 2147483648;
            float e =3.4F;
            double f = 5.2;
            char g = 'y';
            boolean h = true;
        }
    }

    E:JavaTestday3>javac Test3.java
    Test3.java:6: 错误: 过大的整数: 2147483648
    long d = 2147483648;
    ^
    1 个错误

     
     
    编译报错,思考问题:
    1 为什么float放3.4会报错?
      整数常量是用32bit位存储的,相当于int
      小数常量是用的64bit位,相当于双精度的double
      3.4这个常量的值默认的内存空间是64bit,但是float存的是32bit位的大小,因此存不下
      所以需要人为降低精度,所以必须加F否则编译报错
    2 为什么byte能放的下1不报错(byte==8bit,而整数常量1占32bit)?
      常量1==32bit位 
      它在计算机中存储的形式是00000000 00000000 00000000 00000001
      =号在赋值的时候检测到前面有一串没用的0,于是自动转换将00000000 00000000 00000000去掉了(但是前面必须都是0)
      这个时候就变成了00000001-->8bit,因此用byte可以存的下
        
    3 为什么long放2147483648报过大的整数?
      -2147483648~2147483647是int类型的取值范围,long要比int大的多
      如果创建的常量超过以上范围,程序编译检测的时候会认为数字太大认为你是不是笔误写错了,提醒你注意
      如果我们真的需要这么大的数字必须在后面加L人为告知( L不是必须加的)
     
            
     
     
       
     字符和字符串的区别?
    字符                                字符串
    char                                String
    基本数据类型                  引用数据类型
    'a'                                    "a"  "abc"  "" null
    只能且必须是一个字符    可以是一个多个 或者空 ornull
    单引号                            双引号
                                    
     
     
            
  • 相关阅读:
    @Value和@ConfigurationProperties
    mongodb为集合新增字段、删除字段、修改字段(转)
    mongoTemplate CURD 和模糊查询(转)
    在项目中使用Swagger接口说明
    mongodb 批量添加、修改和删除
    @SpringQueryMap注解 feign的get传参方式(转)
    Spring下的@Order和@Primary与javax.annotation-api下@Priority【Spring4.1后】等方法控制多实现的依赖注入(转)
    @RequestBody和@RequestParam区别
    Juit4 SpringBoot注解
    Spring Boot干货系列:(十二)Spring Boot使用单元测试(转)
  • 原文地址:https://www.cnblogs.com/wenm1128/p/12525838.html
Copyright © 2020-2023  润新知