基本数据类型那点事

原创 2015年07月09日 14:26:23
     数据类型是什么?数据类型就是对于数据定义,每一种数据类型都会分配一定的内存空间,而它往往是和
 变量在一起使用的,变量又是某个范围内可发生改变的量,这里不多做介绍
 一、提出问题
     下面是一道公司的面试题
		
byte b1 = 3,b2 = 4,b;
b = b1 + b2;
b = 3 + 4;

      问题是程序执行到哪一步会出错,为什么?
      这段程序执行结果是这样的
	
	在代码的第三行会出现了不兼容的类型问题
 二、分析问题
       在java中数据类型byte,1个字节;int(默认类型),4个字节
       在声明变量时,b1,b2,b都为byte型,并且b1,b2都有初始值分别为3,4
      1.因为java中默认的数据类型为int,在执行b1+b2时会自动先把相加后的和转换为int型,即4个字节,
     然后在赋值到b中,又因为byte型只有一个字节长度,从int型转换到byte需要截取三个字节,所以会出
     现数据可能会有损失的错误;
      2.第三行按理来说也会出现这样的问题,但是没有报错,这是因为对于常量在做运算的时候是提前把结
     果运行出来的,原因如下
	每次写完代码之后我们需要先编译,然后再运行程序,常量的运算在编译的时候就会自动执行,并且
     结果已经计算出来那么在运行的时候就不会出现数据损失的错误,对于变量由于数据是不一定的,需要在
     执行时计算,我们在编译的时候就会发现前后数据类型不一致,然后就会提示我们
       解决这个问题也不难,只要把b1+b2强制转换为byte类型就行了
 三、小结
     java中的数据类型是自动向上兼容的,如果全部声明为long类型也就不会出现错误
		1.byte,short,char-int-long-float-double  从小到大转换
		2.byte,short,char之间不相互转换
     对于一些特别细节的东西以前没有那么在意,当真正用到的时候就会出现问题

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

相关文章推荐

(数据类型)byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句是编译失败的呢 ? 面试题

(数据类型)byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句是编译失败的呢 ? 面试题...

保存基本数据类型和对象

  • 2017年03月02日 12:12
  • 257KB
  • 下载

记JAVA的二三事(3)——基本数据类型

1.基本数据类型:四个整型(byte,short,int,long);二个浮点型(float,double);一个字符型(char);一个布尔型(boolean)   位数 有无符号位 ...

JavaScript基本数据类型注意点

1.在一个函数中定义一个变量我们通常是这样定义的 var message = ‘hi’,该变量使用var操作符定义会使得该变量的作用域属于局部变量,这个变量在函数退出后就会被销毁,例如:functio...
  • code_ja
  • code_ja
  • 2016年06月20日 23:19
  • 217

C语言中的基本数据类型

  • 2012年12月05日 13:12
  • 41.1MB
  • 下载

Oracle基本数据类型存储格式浅析

  • 2012年11月24日 23:38
  • 90KB
  • 下载

Swift学习笔记之基本数据类型-整形,浮点,布尔

1. 代码示例: //: Playground - noun: a place where people can play import Cocoa //无符号整型 let min = UInt...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基本数据类型那点事
举报原因:
原因补充:

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