黑马程序员----java学习笔记之由int转换成byte

原创 2013年12月05日 10:59:45
------- android培训java培训、期待与您交流! ----------

          1、java程序中默认的整数数值的数据类型为int,默认的小数点数值的数据类型为double。

        

           

           

                1)和2)都是把一个int型的数值赋值给一个byte型,但1)并没有提示转换类型错误。这是因为在编译器遇到int型转换成byte型时,先对数值进行判断,如果该数值在byte型数据表示的范围之内则不报错,否则则报错!下面再看一个例子。

               

                为什么同样是int型的数据同样在byte数值范围内又同样需要由int转换成byte,第一行的程序没报错,第二行的程序却报了错呢?对比可知,第一行的等号右边是固定数值而第二行的等号右边含有变量,所以:

                综上所述,编译器在遇到需要由int转换成byte时,首先判断的应该是该int是固定数值,还是含有变量的代数式(不管是含+、-、*、/等等的代数式)。如果是前者就继续判断该固定数值是不是在byte的数值范围内,在就可变换,不在就报错;如果是后者,那就直接报错。

              可能你还会有疑问,为什么含有变量的代数式在遇到由int转变成byte时报错,固定数值就不报错?我个人认为,因为代数式里含有变量,所以它的运算结果就是不确定的。在含有该代数式的代码行前面的代码里,变量可能会有不同的数据。有的数据可以使该代数式的运算结果在byte的数值范围内,而其它的则不能。就想4)中b+2的结果是5在byte的数值范围内,但如果b的值不是3,是127(因为b是byte变量,所以你可以给它赋127的),那么b+2的运算结果就不在byte的数值范围内了!那么此时该含有代数式的代码行就不是正确的了,所以编译器不会通过,会报错!

       

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员JNI学习笔记

  • 2013-05-23 23:49
  • 37KB
  • 下载

求java编程 字节byte怎么转换成整形int?

1.byte的大小为8bits而int的大小为32bits 2.java的二进制采用的是补码形式 在这里先温习下计算机基础理论 byte是一个字节保存的,有8个位,即8个0、1。 8位的第...

黑马程序员J_ava学习笔记_Java中的基本数据类型转换详解

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------   Java中的基本数据类型...

黑马程序员_Java基础_我的Day10学习笔记

01. 带包的类编译和运行(掌握) A:如何编译运行带包的类 a:javac编译的时候带上-d即可 javac -d . HelloWorld.java b:通过java命令执行。 java 包...

黑马程序员ava学习笔记——java语法基础知识

这一天的写的有点多,从java语言的组成一直写到函数,但基本上都是一点一点从平时手写的笔记上挑出来打上去的,不想把这一部分的内容拆开放到单独的一篇博客中,所以里边的代码就比较少,但个人感觉数组还是比较...

黑马程序员java学习笔记——面向对象的特征封装、继承和多态

感觉面向对象是在java中比较难的内容,但也是核心内容,毕竟写代码思想是很重要的,面向对象就是一种思想,精通这种思想,编程就会变的简单。下面就是我学完面向对象这一部分做的笔记。     面向对象   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)