zoukankan      html  css  js  c++  java
  • 基本类型的使用、包装类查看精度范围、包装类、包装类的转换(隐式、显式、parse)

    byte

    byte a=10;

    sout(“byte的精度范围是”+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);

    默认整型都是int型,所以long型的数据赋值时要加l

    int

    int a=10;

    sout(“int的精度范围是”+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);

    short

    short a=10000;

    sout(“short的精度范围是”+Short.MIN_VALUE+"~"+Short.MAX_VALUE);

    long

    long a=1000000l;

    sout(“long的精度范围是”+Long.MIN_VALUE+"~"+Long.MAX_VALUE);

    浮点型的数据默认都是double型,单精度浮点型数值时要加f

    float 

    float a=10.4f

    double 

    double a=10.4f

    单字符类型

    char ch='中'(用单引号引起来)

    char允许写入数值,将通过ASCII表换成相应的单字符

    ch=65;写数值时不用单引号,写上单引号表示的是该数值ASCII对应的字母或者符号

    布尔类型

    boolean flag=true;

    包装类

    每个基本类型都有一个对应的包装类,两者之间可相互转换,基本类型只能存储数值,包装类用于扩展其功能

    基本类型的值与包装类的值可以相互赋值

    Integer num1;

    int num2=10;

    num1=num2;

    num2=num1;

    int 例子

    装箱:将基本类型转换成包装类

    num1=new Integer(num2);

    拆箱:将包装类转换成基本类型

    int num3;

    num3=num1.intValue();

    double例子

    double a=11.0;

    Double b=new Double(a);

    a=b.doubleValue();

    类型转换(隐式转换、显示转换)

    显示转换(强制类型转换、包装类的parse转换)

    1.隐式转换:同一类型的数据,将精度小的值赋给精度高的数据时,JVM会对类型进行自动转换

    int a=100;

    double b=a;

    (包装类赋给基本类型高精度也可以)

    Integer c=100;

    b=c;

    隐式转换的轨迹

     2.默认情况下,不允许将高精度赋给低精度,会出现数据精度丢失,可使用强制类型转换,但是不能解决精度丢失问题

    2.1正常强制转换

    double c=200.5;

    int a=(int )c;(此时a为200)

    2.2 int a;  double  c ;  要使a=(short)c;则进行了两次转换

      一次是double到short的强制转换

      一次是short到int的隐式转换

      int  a ; double c ; 要使a=(int)((float)c)进行了两次转化

      一次是double  c 转换成 float c的隐式转换

      一次是将float c转换成int 的强绘制墙柱转换

    Parse转换

    将String类型通过包装类转换成对应的基本类型

    String s1="400";

    int a=s1;(此处会报错因为类型不同不能直接赋值)

    int a=(int) s1(此处会报错,s1是字符串,不能强制转换成int)

    此时只能使用parse转换:

    将String转换成int型:int a=Integer.parseInt(s1)

    将String转换成double型:double b=Double.parseDouble(s1)

    但是不能转换成Boolean型,因为Boolean只有true和false两个值

  • 相关阅读:
    C++ 临时对象
    【转】C++ static关键字
    python读写文件
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
    Debian下的crontab保存
    Innodb后台线程
    查看当前数据库支持哪些存储引擎
    ERROR: No query specified
    WARNING: The host 'r6' could not be looked up with /usr/local/mysql/bin/resolveip.
    mysql_install_db 运行结果
  • 原文地址:https://www.cnblogs.com/gfl-1112/p/12571291.html
Copyright © 2011-2022 走看看