博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Java】基本数据类型以及其转换
阅读量:4668 次
发布时间:2019-06-09

本文共 1634 字,大约阅读时间需要 5 分钟。

整理了一下Java基本数据类型和面试可能涉及的知识。

 

     字节数(byte)  位数(bit)  取值范围
整型  byte  1  8  -2^7 ~ 2^7 -1
short   2  16  -2^15 ~ 2^15-1
int*  4  32  -2^31 ~ 2^31-1 
long   8  64  -2^63 ~ 2^63-1 
 浮点型   float   4  32  
double*  8  64  
字符型 char   2  16 0~2^16-1
布尔型 boolean   1  

 

 

 

 

 

 

 

 

 

 

 

 

整型的取值范围:

最高位为符号,正负各2^(位-1)个数,0归为正数,故正数范围为0~2^(位-1)-1,负数为-2^(位-1)~-1

浮点型的取值范围:

float和double的范围是由指数的位数来决定的。没有搞清楚这个,迟点复习再看。

 这篇写得蛮好的

 

1. 基本数据类型之间的转换

参考:

 低精度  →→   自动转换   →→  高精度 
byte、char、short、int、long、float、double
←←   强制转换   ←←

 

 

 

 

由于Java中默认整型数据使用int,浮点型使用double,故书写规范:

byte a = 1;         //自动转换byte b = (byte)128;    //数值超出范围需作强制转换long c = 10000000000L;  //强制转换float d = 3.5f;      //强制转换double e = 3.5;

 

进行数学运算时,数据类型会转换为涉及数据的最大形式

int a = 2;byte b = 2;byte c = (byte)(a+b);double d = 5;char ch = (char)('a'+1);

 

char型运算时会自动提升为int类型

char a = 55;char b = 'a';char c = (char)(a+b);char d = 'a'+'a';System.out.println(a);//7System.out.println(b);//a

 

2. 基本数据类型的包装类及其转换

 基本数据类型   boolean  char byte short  int long float double
包装类  Boolean Character Byte  Short  Integer  Long  Float  Double 

 

 

 

装箱与拆箱

Integer i = 10;  //装箱	基本类型 → 包装器类型int n = i;     //拆箱	包装器类型 → 基本类型

 

 查看对应.class文件可发现,以上代码实际调用的方法:

Integer i = Integer.valueOf(10);int n = i.intValue();

 

Integer(指向缓存/常量池) 和 new Integer(指向堆)由于指向内存位置不一样,比较时两者不等。

② Integer(非new)互相比较时,数值位于int取值范围内,比较结果为true,超出范围则为false

③ int和Integer/new Integer比较时,由于Integer会首先作拆箱处理与int比对,所以比较结果一定为true

注:Double比较有所差别,所有Double的比较都为false

 

详细可参详: 

 

相关题目:

1. 

short s1 =1; s1 = 1+1; short s1 = 1; s1 +=1; 上述语句能否编译通过,为什么?

short s1 = 1;s1 = 1+1; //计算时会转换成int类型,由于左方是short类型的数据,右边运算完没有进行强制转换,所以编译不通过short s1=1;s1 += 1; //因为“+=”是赋值运算符,不牵涉与其它类型的数字计算,也不会转成 int 类型的,所以编译通过

转载于:https://www.cnblogs.com/tubybassoon/p/9511859.html

你可能感兴趣的文章
Spring3.0.5 获取表中自增的主键(mysql)
查看>>
delphi dxBarManager 的dxBarEdit 输入问题
查看>>
Hadoop入门介绍一
查看>>
面试经典-分金条
查看>>
利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 1...
查看>>
ZOJ-2972-Hurdles of 110m(记忆化搜索)
查看>>
一些新了解到技术
查看>>
vue.js click点击事件获取当前元素对象
查看>>
【单调栈,单调队列】总结
查看>>
LeetCode:Gas Station
查看>>
MyBatis初识(通过小实例清晰认识MyBatis)
查看>>
面对最菜TI战队,OpenAI在Dota2上输的毫无还手之力
查看>>
XCODE快捷键和功能汇总篇(不断更新)
查看>>
Servlet开发(一)
查看>>
linux下如何查看某个容器的详细信息?
查看>>
bzoj 2843: 极地旅行社
查看>>
车林通购车之家--购车计算器模块--算法js
查看>>
webpack使用教程
查看>>
MySQL学习8 - 数据的增删改
查看>>
Linux笔记(开机自动将kerne log保存到SD卡中)
查看>>