1.
整型中byte、short、int、long的取值范围
byte:-128~127
short:-32768~32767
int:-2147483648~2147483647 -21亿4千万~21亿4千万
long:-9223372036854775808~9223372036854775807 -922京3372兆~922京3372兆
什么是浮点型?
IEEE754标准中浮点数表示格式IEEE规定的浮点数表示法是一种科学计数法,用符号(正或负)、指数和尾数来表示,底数被确定为2。也就是说浮点数被表示为尾数乘以2的指数次方再带上符号。具体格式如下:
符号域 指数域 小数域 指数偏移量
单精度浮点数 1 位[31] 8位[30-23] 23位[22-00] 127
双精度浮点数 1 位[63] 11 位[62-52] 52 位[51-00] 1023
下面以单精度浮点数为例来介绍浮点数的三个区域:
符号域:符号域占1位,0表示正数,1表示负数。指数域:指数域共有8位,可表达的范围为:0~255。为能处理负指数,实际指数位存储在指数域中值减去一个偏移量(单精度为127,双精度为1023)。单精度浮点数的偏移量为127,故实际可表达的指数值的范围为-127~128。尾数域:尾数域共有23位。由于规范浮点数的小数点左侧必须为1,所以在保存尾数时,可以省略小数点前面这个1,从而腾出一个二进制位来保存更多的尾数。举例:比如对于单精度数而言,二进制的1001.101(对应于十进制的9.625)可以表达为1.001101 ×2^3,所以实际保存在尾数域中的
什么是单精度与双精度?
单精度:float 如果整数为不为0,只能精确记录前7位;整数为0,可以表示1.4E-45~3.4028235E38
双精度:double 如果整数为不为0,只能精确记录前16位;整数为0,可以表示4.9E-324~1.7976931348623157E308
为什么不能用浮点型表示金额?
float记录精度有限,如果交易金额数字过大会出现计数忽略
2.什么是自动拆装箱?
int <-> Integer
Integer的缓存机制
缓存-127~128 可通过vm中设置 -XX:AutoBoxCacheMax调整缓存上限
3.jdk6与jdk7中substring的原理及区别
replaceFirst、replaceAll、replace区别
String对“+”的重载、字符串拼接的几种方式与区别
String.valueOf和Integer.toString的区别
字符串池、常量池(运行时常量池、Class常量池)、intern
4.java关键字原理及用法
transient
instanceof
final
static
volatile
synchronized
const