码迷,mamicode.com
首页 > 其他好文 > 详细

数据类型进阶

时间:2017-03-10 22:18:57      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:语法   ring   mic   match   1.0   main   编译错误   microsoft   png   

----------siwuxie095

   

   

   

   

   

1、整数类型

   

技术分享

   

技术分享

   

   

技术分享

   

技术分享

   

   

如果去掉注释,报错:Type mismatch: cannot convert from into byte

即 不能把 int 类型转换成 byte 类型

   

技术分享

   

技术分享

   

   

如果选择 Add cast to ‘byte‘

b1+3 的结果(默认为 int 类型)强制转换成 byte 类型

   

技术分享

   

   

如果选择 Change type of ‘b2‘ to ‘int‘

b2 改成 int 类型(语法错误消失,也佐证了 b1+3 的结果是 int 类型)

   

技术分享

   

   

如果稍作修改:

同样没有报错,这是因为Java语言对于明显的能确定结果的计算,在编译期

就把值计算完毕保存在 b2 中,在解释运行时就不在计算 124+3b2 中直接

存储的就是 127(编译时将 .java 文件编译成 .class 文件)

   

技术分享

   

   

如果再作修改:

报错,这是因为 125+3 的结果 128 超过了 byte 类型最大值 127

所以出现了编译错误,选择把 b2 改成 int 类型即可

   

技术分享

   

技术分享

   

   

   

   

   

2、浮点类型

   

1)概述

   

技术分享

   

技术分享

   

   

2)浮点类型的科学计数法

   

技术分享

   

   

3)float类型

   

技术分享

   

   

4)double类型

   

技术分享

   

   

5)浮点运算特点

   

技术分享

   

技术分享

   

测试:

   

技术分享

   

   

运行一览:

最后的 1 就是运算的误差,表明 2.6 是以约数的形式保存在内存中,

有一定的误差

   

技术分享

   

   

所以在做数值运算中尽量用整型进行运算,不仅精确度高,运算速度也远远快于浮点运算

   

注意:浮点运算中比较两个浮点值是否相等, 不要用等于比较,而要用范围值比较

   

   

   

   

   

3、字符类型

   

1)概述

   

技术分享

   

   

2)Unicode编码

   

技术分享

   

如:

   

技术分享

   

代码:

package com.siwuxie095.test;

   

public class Test06 {

   

/**

* 显示 0~127 的字符

*/

public static void main(String[] args) {

//(char)i 把数字 i 转换成 i 所对应的字符

for (int i = 0; i <= 127; i++) {

System.out.println((char)i+":"+i);

}

}

   

}

   

   

Eclipse中:

   

技术分享

   

   

运行一览:有些字符是不可见的

   

技术分享

   

   

   

   

【made by siwuxie095】

数据类型进阶

标签:语法   ring   mic   match   1.0   main   编译错误   microsoft   png   

原文地址:http://www.cnblogs.com/siwuxie095/p/6533209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!