zoukankan      html  css  js  c++  java
  • 13、java中8中基本类型

    一、基本类型介绍

    关键字 数据类型 占用字节数 取值范围 默认值
    byte 字节型 1个字节 -128~127 0
    char 字符型 2个字节 Unicode0~Unicode215-1 u0000
    short 短整型 2个字节 -215~215-1 0
    int 整型 4个字节 -231~231-1 0
    long 长整型 8个字节 -263~263-1 0
    float 单精度浮点数 4个字节 -2128~2128 0.0
    double 双精度浮点数 8个字节 -21024~21024 0.0
    boolean 布尔型 1个字节 true|false false

    float与double的范围和精度

      范围

      float:      1bit(符号位)  8bit(指数位)  23bit(尾数为)

      double:   1bit(符号位)  11bit(指数位)  52bit(尾数为)

          float的指数范围 -127~128,而double的指数范围-1023~1024

      float的范围为-2128~2128,也即-3.40E+38 ~ +3.40E+38;double的范围为-21024~21024,也即-1.79E+308 ~ +1.79E+308

      精度

      float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。

      float:223 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
        double:252 = 4503599627370496,一共16位,同理,double的精度为15~16位。

    基本类型赋值

      byte:

    byte b=1;
    byte a=1+2;

      short

    short s=1;

      char

    char a='A';                   //直接用字符赋值
    char b=65;                    //用10进制数字赋值
    char c='u0041';             //使用unicode码赋值
    char d=0x0041;         //使用16进制赋值
    char e=0101;                 //使用8进制赋值
    System.out.println(a);
    System.out.println(b);
    System.out.println(c);
    System.out.println(d);
    System.out.println(e);            

     上面输出的都是是字符'A'

       int

    int a=3;

      long

    long a=1;
    long b=10000000000l;
    //如果赋值范围超过了int,就必须在后面加上字母l或者L

      float

    float a=1.2f;

      double

    double a=1.2;

    二、基本类型运算

    1、java中byte、short和char类型运算操作首先会把这些值转换成int类型,然后对这些int值进行运算,返回int类型。

    byte a=1;
    byte b=2;
    byte c=a+b;  这里先将a和b转换成int类型在进行计算,结果返回int类型,所以这里结果不正确
    可以改为:
    int c=a+b;
    或者
    byte c=(byte)(a+b);   当然这里不能操作byte范围
    byte a=1;
    char b='B';
    int c=a+b;
    System.out.println(c);

       输出为67  现将a=1和b='B'转换成int型 a=1、b=66 所以结果为67

    2、在做除法运算时,如果两边除数和被除数都是整数,其结果也为整数(只保留整数部分)例如:

    int a=10;
    int b=3;
    System.out.println(a/b);

    结果为:3

    3、在做除服运算时,两个操作数其中有一个是浮点数,计算结果也是浮点数。而且允许除数是0或者0.0,得到结果正无穷或负无穷

    double a=5;
    int b=5;
    System.out.println(a/0);   //结果为正无穷:Infinity
    System.out.println(-a/0);  //结果为负无穷:-Infinity
    System.out.println(b/0);   //抛出异常:java.lang.ArithmeticException: / by zero
    System.out.println(0/0.0); //结果为:NaN
    System.out.println(0.0/0); //结果为NaN

    基本类型常见面试题

  • 相关阅读:
    RT-thread内核之事件
    RT-thread内核之互斥量
    RT-thread内核之信号量
    RT-thread内核之进程间通信
    RT-thread内核之异常与中断
    RT-thread内核之IO设备管理系统
    RT-thread内核之小内存管理算法
    RT-thread内核之系统时钟
    RT-thread内核之定时器管理
    s19文件格式详解
  • 原文地址:https://www.cnblogs.com/caoyc/p/4367915.html
Copyright © 2011-2022 走看看