java-数据类型

     一、java中的数据类型分类:基本数据类型和引用数据类型。

         1、基本数据类型:布尔型(boolean)1个字节、字符型(char)1个字节、字节型(byte)1个字节、短整型(short)2个字节、整型((int)4个字节、长整型(long)8个字节、单精度浮点型(float)4个字节、双精度浮点型(double)8个字节。  

 注:.>1、byte、short、int、long他们表示的都是整数且有符号。只是表示的范围不同。在给整数变量初始化时,一般给long                  类型数值后加l或L;不加也没问题只是为了现实声明一下。而且在给整数赋值时他们一般没区别,但是一旦超过某个类型                的表示范围就要类型强转;

      >2、boolean型的变量只能是true和false两个取值。虽然java虚拟机会用int或byte来处理表示它,但你给变量赋值整数和             null均是非法的。

       >3、在整数进行运算时,出现double类型,结果就是double。没有double,有float类型则结果就是float。

               若没有浮点数,则以出现的范围最大整形类型为准。比如出现long那么结果就是long类型。

               但只有byte、short、char参与运算,则结果是int(但对一元运算符例外。比如:++、+=.....)类型的。

       >4、浮点数单精度数赋值时,一定要加f或F,因为浮点数默认都是double型的。要声明一点的是浮点数是不精确,所以计算                 结果有时是不符合预期的。(java同样也提供BigDecimal类用于解决这个问题)

        >5、byte与short是没有直接数的。引用类型只有字符串有直接数。

        >6、方法参数也是存在参数自动转化的。比如:void method(long param);你可以传个int类型数据。

        >7、对于直接数的赋值,第1条没问题。但是对不同类型的变量之间就不同了。比如:可以 这么写 int a='a';或int b=10;

                b=b+'a';      但是把一个char类型的变量赋值给一个int类型的变量,就必须强转;

        >8、数据强转时会出现数据精度问题。

    

   2、引用数据类型: 类引用类型、接口引用类型、数组引用类型。

         >1、==操作符与equals的结果问题。

                 就object的equals方法实现来说。两者的结果应该是一样的,因为object的equals方法就是靠==实现的。

                  但是为什么有时候他们的值不一样呢?比如Integer、Double(等等包装类)、String、File、Date等类。

                   因为他们进行地址比较时往往是无意义的。我们通常只需要它的值是否想等。所以这些类equals方法是被重写

             了的。比如;只要两个Integer对象的值相等,那么他们的equals方法返回就是true。而不是==的比较地址。

        >2、==与instanceof操作符的多态。

              ==可以比较两个基本型的值是否相等,也可以比较引用类型(比较两个引用类型所指对象地址是否一样即是否为同一                个对象)。 但是用于比较引用类型变量时,两边的变量必须是被显示声明为同类型或有继承关系,否则编译出错                      (java 编译器根据变量被显示声明的类型去编译)。数组的类型也是如此。

               A instanceof  ClassName 或者A instanceof InterfaceName   可用于判断A所引用的对象是否是一个类的实例是则                返回true(java中一个类的实例包括自身的实例以及所有直接或间接子类的实例)。所以后面的类要么是A本类要么是父              类要么是间接父类;如果是接口要么是A实现的接口要么是所有父类是实现的接口。否则,则编译出错。(java 编译器                根据变量被显示声明的类型去编译)。             

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值