zoukankan      html  css  js  c++  java
  • Java数据类型

    (一)基本数据类型

    1.整数型

     首位为符号位,后面是数字位,符号位为0表示正数,后面数字位直接二进制转化为10进制;符号位1为负,把后面所有的位数取反(即0,1互换),再转化为10进制后加1,就得到该负数的绝对值。

    整型

    字节

    最大存储数据

    存放的数据范围

    Byte

    18bit

    28-1

    -27~27-1

    Short

    216bit

    216-1

    -215~215-1

    Int

    432bit

    232-1

    -231~231-1

    long

    864bit

    264-1

    -263~263-1

    整型中默认类型是int型,有以下表达方式:

    十进制:   语法→0~9之间的数字,如int x=123;

    8进制 : 语法→加前缀0,如int x=0123;

    16进制:语法→加前缀0x或0X;如int x=0x123;

    注:长整型数字需加后缀L或者l,如long x=9876543210L;

    2.浮点型

    首位为符号位,中间是指数位e,表示2的阶乘,后面是尾数位m(0<=m<1),指数位的首位是指数符号位,

    数字表示:(1+m)*2e

    浮点型

    字节

    数据范围

    备注

    Float-单精度

    432bit

    3.4e-45 ~ 1.4e38

    (-2128~2128

    直接赋值需在最后加f或者F

    Double-双精度

    864bit

    4.9e-324 ~ 1.8e308

    (-21024 ~21024  

    直接赋值可以在最后加d或者D,也可不加

    符号位

    指数位e

    尾数位m 0<m<=1

    0/1

    符号位(首位)

     剩余位

    2-1

    2-2

    2-3

    ……

    Float

    1

    7

    23

    double

    1

    10

    52

    浮点型默认类型是double型。浮点型有2种写法:

    小数型:如1.2

    指数型:语法→数字A e(或E) 数字B,表示数字A乘以10的数字B次方,如2e3→2*103=2000;  -3e-2→-3*10-2=-0.03

    注:强制表示单精度浮点型,在数字后面加后缀f或者F,强制表示双精度浮点型,在数字后加后缀d或者D。

    3.字符型

    char →单引号引用的单个Unicode码字符或者16bit非负整数;占两个字节,表示一个字符,写法有两种:

    数字式:0~216-1之间的整数

    字母式:单引号引用的1个字符,可以是任何字符,包括标点符号、数字、大小写英文字母、日文、汉字等,是Unicode编号

    字母式写法中单引号引用的内容中,还有以下写法:

    字符:如'a'

    8进制: 语法→'ddd',如'123'

    16进制:语法:‘uhhhh', 如'u9646'

    部分特殊字符,'字母',如' '表示缩进符,' ' 表示换行符, ' '表示回车符

    4.布尔型(逻辑型)

    boolean,只有两个值,true/false,或者逻辑表达式,不能用0,1表示,也不是“true”字符串

    数据值域补充说明:

    1.一个bit是计算机存储的最小数据单位,即1位,只可能是0或者1;

    2.一个byte由8个bit组成,即8位,可以表示256个整数值,又由于byte在java中有符号之分(正负数),所以范围是-128~127;

    3.一个char在java中有两个byte组成,用来表示一个字符,即unicode编码,是无符号类型;

    4.int和float在java中由4个byte组成;

    5.每个long或者double型变量占用8个byte的存储空间;

    6.1T=1024G, 1G=1024M, 1M=1024K, 1K=1024B;

    (二)引用数据类型

    所有用class,interface,abstract 定义的类;

    String也是java定义的一个类,其数据存储方式与基本数据类型一样,但是String不是基本数据类型;基本数据类型也不是类;

    (三)数据类型的转换

    源类型与目标类型要兼容,比如数字和字符串类型之间就不能转换。数据转换分为自动转换和强制转换:

    自动转换:从小范围类型的字面量转为大范围类型,如byte,short→int→long,float→double;

    强制转换:语法→(类型) 表达式,可以进行大范围类型的字面量,转为小范围类型。整数的强制转换时通过截取保留最后长度的方式进行,所以容易出现正数强制转换后变成负数的可能。(浮点型强制转整型,实际是先转为int型)

    表达式类型提升规则:byte→short→int→long→float→double

    例:

    int x=10;
    short y=(short)x;   // 强制转换
    System.out.println(y)

    short a=10;
    int b=a;            //自动转换
    System.out.println(b);

    int c=400;
    byte d=(byte)c;    //强制转换后正数转换为了负数,此处输出结果d=-112
    System.out.println(d);

  • 相关阅读:
    [LeetCode] Rotate Image
    [LeetCode] Generate Parentheses
    pandas 使用总结
    ConfigParser 读写配置文件
    Cheat Sheet pyspark RDD(PySpark 速查表)
    python随机生成字符
    grep 命令
    hadoop 日常使用记录
    python 2 计算字符串 余弦相似度
    screen命令
  • 原文地址:https://www.cnblogs.com/Carolinee/p/5291919.html
Copyright © 2011-2022 走看看