zoukankan      html  css  js  c++  java
  • java基础知识-基本数据类型、数据类型转换

    一、基本数据类型

    基本的数据类型一共有四类八种

     1、整型

    byte:  1字节  取值范围  -128~127

    short: 2字节    取值范围  -32768~32767

    int:     4字节  取值范围  负2的31次方到正的2的31次方减1      

    long:   8字节  取值范围  负2的63次方到正的2的63次方减1   长整型必须要有后缀L  例 400000L

    取值范围计算方法

    问:1个字节占8位,为什么byte类型取值范围是2的7次方而不是2的8次方?

    答: 因为正负符号占了一位所以只剩下7位。(符号位占的是从左往右数第一位,也就是最高位)

    问:为什么正数范围要减去1

    答:因为第一位是从零开始算起的。

    2、浮点型  

    float   (单精度):   4字节  取值范围  爱多少多少    必须接后缀F才能表示它是float类型     例:3.14F

    double(双精度):   8字节    取值范围  爱多少多少    后缀D或者没后缀               

    3、逻辑型

    boolean: 只有个两个值 ture和false

    4、字符型

    char:     2字节 取值范围是0-65535 没有负数  存储Unicode码,用单引号赋值。

    (与C语言char的区别:C语言的char应用的是ASCII码 1个字节 范围0-127 )

     程序中尽量避免使用char类型(java核心技术 卷1)

    引申:这四类八种基本数据类型的数据都存放在栈内存空间,占一块内存。

    二、数据类型转换

     分为自动转换和强制转换

     自动转换(隐式转换)

    当把一个优先级低的类型赋值给优先级高的类型时就会进行自动转换

    低---------------------------------------------高

    byte,short,char<int <long < float < double

    int、long、float、double按照取值范围大小排序

    而前三个数据类型需要强制转换?????????????

    顺序记不住? 网上有人这么记: 办事处in理发店。

    强制转换(显示转换)

     把取值范围大的类型转成取值范围小的类型需要进行强制转换。

    用 ( )来进行数据的强制转换

    例:

    int a;
    
    double x=3.3short y=3;
    
    a=(int)x+(int)3.5;
    
    a=(int)x+y;// y优先级低于a所以不需要转换

    等号的右边完成强制后再赋值给左边。

    注意:等号右边每一项(由加号连接的数字或变量)的优先级都必须小于等于等号左边变量的优先级,否则编译期间会报错。

     
  • 相关阅读:
    记2008年7月25日午后 心情
    [多媒体]词典编码
    [多媒体]算术编码、游程编码
    [多媒体]数据压缩的类型
    [多媒体]理解PCM、DPCM、APCM、ADPCM
    C++异常处理
    [转]linux上SVN解决冲突的办法
    从海量数据查找有或者没有出现的数据
    八数码问题
    [转]linux中强大的screen命令
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/5569264.html
Copyright © 2011-2022 走看看