Javaweb微专业第三弹-----从数据类型说起

1.数据类型

数据类型分类

Java是强数据类型语言,变量必须先声明其类型

整型数的三种形式 二进制、八进制、十六进制

类型占用空间表示的范围
byte1 字节-128-127
short2 字节-32768-32767
int4 字节-2147483648-2147483647
long8 字节-263-263-1
float4 字节
double8 字节
char2 字节0-65535

boolean:The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its “size” isn’t something that’s precisely defined.

1)boolean a=true;//这个a在JVM中占4个字节即:32位。
2)boolean[] b = new boolean[10];//数组时,每一个boolean在JVM中占一个字节。

默认值

类型默认值
byte0
short0
int0
long0L
float0.0f
double0.0d
char‘\u0000’
booleanfalse

2.关于数据精度的几个问题

1.浮点数计算的误差问题
浮点数的误差问题

原因:
1.有些十进制浮点数转成二进制数时不能精确表示,有些浮点计算会得到准确的结果,因为某些计算的二进制与 十进制之间能够准确转换。
2.根据IEEE 754标准,浮点数在计算机内部存储时主要分为符号位(sign)、指数(exponent)部分、尾数(fraction)部分:
那么,这个数就是:(−1)sign×2exponent×fraction2
3.例如十进制的0.5可以表示成(−1)0×2−1×1.0 。
以32位的单精度浮点数(float)为例,它的符号位占一位(bit),指数部分占8位,尾数部分占23位。
以存储十进制的0.1为例,首先把0.1转换成二进制数。然而我们会发现十进制的0.1转换成二进制是一个无限循环小数:0.0001100110011001100…
可是,尾数只有23位,只能截取二进制小数的前23位存储。这时,误差就产生了。
当再次把这个浮点数转换成十进制数时,由于损失了一些二进制位,转换回来的十进制数自然也就与原来的不同了。

3.Java的跨平台特性

第一问:java为什么可以跨平台?
1.java通过实现JVM(java Java Virtual Machine)来实现跨平台,不同平台用相同的JVM原理来实现,所以java编译的字节码可以运行在不同平台的。

第二问: 64位与32位java虚拟机上同种数据类型所占内存大小是否一致?
1.因为JVM不同的平台用的是相同的原理,所以java同种数据类型所占内存大小在不同的平台上相同

数据类型转换

1.自动转换

表数范围小的可以向表数范围大的进行自动类型转换
自动类型转换

2.强制转换

(数据类型)变量或表达式

:
a.高精度向低精度类型转换的时候,有可能出现精度丢失
b.只能在继承层次内进行类型转换
c.在将超类转换成子类之前,应该使用instanceof进行检查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小嘉丶学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值