zoukankan      html  css  js  c++  java
  • 入门(六)---基本数据类型

    数据类型
      基本数据类型    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
    单引号                            双引号
                                    
     
     
            
  • 相关阅读:
    XML 加密、解密
    word 转 pdf
    PowerDesigner(PowerDesigner15.1.0.2850)下载、安装以及破解
    SQL 2005 18456
    SQL 2005端口的修改
    SQL——统计查询
    由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例 解决办法
    ASP.NET MVC中Model View Controller的开发顺序
    使用Windows身份验证的Intranet网站安全管理 Windows Authentication
    ASP.NET web.config中数据库连接字符串connectionStrings节的配置
  • 原文地址:https://www.cnblogs.com/wenm1128/p/12525838.html
Copyright © 2011-2022 走看看