java数据类型

Java支持两种数据类型:基本数据类型 和 引用数据类型

         基本数据类型

基本数据类型可以分为四大类:整数类型(byte、short,int 和 long)、浮点类型( float 和 double)、布尔类型(boolean)和字符类型(char)  1字=2字节 , 1字节=8位

类型名称关键字位数默认值取值范围包装类
字节型byte80-128 和 127之间,包含 127Byte
短整型short160-32768和32767之间Short
整型int320-2^31 和 2^31-1Integer
长整型long640-2^63 和 2^63-1Long
单精度浮点类型float320.0F或0.0f1.4E-45~3.4028235E38Float
双精度浮点类型double640.04.9E-324~1.7976931348623157E308Double
布尔型boolean8false       true 和 falseBoolean
字符型char16\u0000 ‘\u0000’(0)和 ‘\uffff’(65,535)Character

Java 默认的浮点型为 double,例如,11.11 和 1.111 都是 double 型数值。定义一个float类型必须末尾加f或F 。如:11.11f  和 1.111F(浮点类型不适用于精确小数,如金融货币,建议使用BigDecimal)

数据类型转换

1.自动转换(隐式类型转换 , 数据类型由"小"到"大"排序:(byte、short、char)< int < long < float < double )

        整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。注意:转换前的数据类型的位数要低于转换后的数据类型 且不能对boolean进行类型转换。

2.强制转换    自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:(),但可能造成精度降低或溢出。

注意:字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。 不能对boolean进行类型转换。

        short a =1;
        int b =20;
        long c =100L;
        b=a; //b=1 类型由小到大,隐式转换
        b=(int)c; //b=100 类型由大到小 ,强转

//在使用运算符进行赋值时如:+=,-=,*=,强制类型转换会自动完成,程序不需要做任何显示声明。
        short a =1;
        int b =20;
        long c =100L;
        a+=b+c; //a=121,类型:short

装箱和拆箱

java从jdk1.5之后引入了自动装箱与拆箱

装箱:把基本数据类型转换为包装类。

拆箱:把包装类转换为基本数据类型。


基本数据类型放入集合类中的时候,会进行自动装箱。
三目运算符的使用过程中。当第二,第三位操作数分别为基本类型和对象时,其中的对象就会拆箱为基本类型进行操作。

        Integer a = 100;//装箱
        int b = a;//拆箱
//-----------------------------------------------------------------------------------------
        Integer a = 100;
        int b = 100;
        System.out.println(a==b);
//结果为true,==比较的是内存地址即new Integer的内存地址-128到127 之间的进行比较时,不会new 对象,而是直接到常量池中获取

      

包装类与基本数据类型进行比较运算,是先将包装类进行拆箱成基本数据类型,然后进行比较的。
两个包装类型之间的运算,会被自动拆箱成基本类型进行计算。

相关面试题:

short s1 = 1; 
s1 = s1 + 1;
short s1 = 1; 
s1 += 1;
对于 short s1 = 1; s1 = s1 + 1;由于 1 是 int 类型,因此 s1+1 运算结果也是 int型,需要强制转换类型才能赋值给 short 型。

而 short s1 = 1; s1 += 1;可以正确编译,因为 s1+= 1;相当于 s1 = (short(s1 + 1);其中有隐含的强制类型转换。

引用数据类型

包括:字符串型(String)、类、 数组类型、 枚举类型、 包装类型,注解类型和接口类型

位置:存放在堆中的,栈中存放其具体内容所在内存的地址(调用方法时作为参数是按引用传递的,传递的是引用的副本)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值