第二十一篇 Java 数据类型的定义 ,以及基础类型的自动转换和强制转换

    大家好,今天呢我吧我所学到的一些知识点共享给大家,希望大家看完之后,要是有什么不懂的,请随时联系我,要是觉得我写的不是很好的 ,还希望你们能够谅解一下,因为小弟我刚学会写博客也没多久,很多格式和方法都不是很完善,希望大家多多包涵,好了 废话就不多说了,来谈一下今天我所学到的一些知识点吧;

    今天我主要是学到了一些Java中的数据类型,其中,Java中的数据类型分为俩类------基础数据类和逻辑数据类,下面我所介绍的都是基本数据类的一些分类,至于逻辑类,由于使用次数过少,所以今天就不再这里多做介绍了。

    好了,基本数据类里面又包含了8种数据类型,从小到大排列就是,byte / shot / int / long / float / double/   和一些单字符型  char / boolear  总共八种;

    至于这八种常用的数据类型的用法,我相信懂一点Java基础的都知道该怎么使用吧,这这里我就不一一向大家介绍了。

    回归主题,基础类型的自动转换 和强制转换是什么??? 在一开始接触的时候 我也没弄懂是怎么一回事,但是按照字面上的意思 不就是 简单的 把不同类型 的数值 进行转换一下吗,我是一开始就这样想的,但是到后来我发现我错了,而且错的很离谱,因为这里包含着许多学问,也就是接下来我所说的 自动转换 和强制转换了;

     现在来想一下第二个问题,为什么要进行强制转换,可能有很多程序员认为i+=1只是i=i+1的简写方式,其实不然,它们一个使用简单赋值运算,一个使用复合赋值运算,而简单赋值运算和复合赋值运算的最大差别就在于:复合赋值运算符会自动地将运算结果转型为其左操作数的类型。看看以下的两种写法,你就知道它们的差别在哪儿了:
  (1) byte i=5;
      i+=1;
  (2) byte i=5;
      i=i+1;
    第一种写法编译没问题,而第二种写法却编译通不过。原因就在于,当使用复合赋值运算符进行操作时,即使右边算出的结果是int类型,系统也会将其值转化为左边的byte类型,而使用简单赋值运算时没有这样的优待,系统会认为将i+1的值赋给i是将int类型赋给byte,所以要求强制转换。理解了这一点后,我们再来看一个例子:
  byte b=120;
  b+=20;
  System.out.println("b="+b);
  说到这里你应该明白了,上例中输出b的值不是140,而是-116。因为120+20的值已经超出了一个byte表示的范围,而当我们使用复合赋值运算时系统会自动作类型的转化,将140强转成byte,所以得到是-116。由此可见,在使用复合赋值运算符时还得小心,因为这种类型转换是在不知不觉中进行的,所以得到的结果就有可能和你的预想不一样

好了,由于时间关系,今天的知识点到这里又要结束了,而每天的计划和目标又得重新提醒自己一遍了。

1、每天锻炼指法一小时;

2、每天坚持写一篇博客或者日志;

3、每天上课提前十五分钟进教室;

4、每天给自己一句鼓励的话语------学知识只是一块敲门砖,能够让你比别人领先一步进公司,但是当你进去之后就会发现,进来的每个人的知识量都是差不了多少的,所以说在以后的人生路上,还是得看你学会做人的态度。。。。。。。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值