ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据类型(剩下)

2021-10-06 15:32:39  阅读:129  来源: 互联网

标签:类库 字节 double float 数据类型 剩下 类型


/*
关于浮点型数据类型:
float 单精度【4个字节】
double 双精度【8个字节,精度较高】

double的精度太低【相对来说】,不适合做财务软件
财务涉及到钱的问题,要求精度较高,所以sun在基础SE类库当中
为程序员准备了精确度更高的类型,只不过这种类型是一种引用数
据类型,不属于基本数据类型,他是:java.math.bigdecimal

其实java程序当中sun提供了一套庞大的类库,java程序员是基于
这套基础的类库来进行开发的.所以要知道Java的SE类库的字节码在哪里
要知道Java的SE类库的源码在哪儿?
* SE类库字节码:C:\Program Files\Java\jdk1.8.0_301\jre\lib\rt.jar
* SE类库源码:C:\Program Files\Java\jdk1.8.0_301\src.zip

例如:String.java和String.class
我们的(String[] args)中的String使用的就是String.class字节码文件

在Java语言当中,所有的浮点型字面值【3.0】,默认被当作double类型来处理
要想该字面值当作float类型来处理,需要在字面值后面添加F/f
double和float在计算机内部二进制存储的时候储存的都是近似值
在现实世界当中有一些数字是无线循环的,例如:3.33333333333333333333...
计算机的资源是有限的,用有限的资源储存无限的数字,只能储存近似值。
*/
//3.0是double类型的字面值
//d是double类型的变量
//不存在类型转换
double d = 3.0;
System.out.println(d);

//5.1是double类型的字面值
//f是float类型的变量
//大容量转换小容量是不行的,需要加强制转换符
//float f = 5.1;

//解决方案
//第一种:加强制转换符
//float f = (float)5.1;

//第二种:没有转换类型
float f = 5.1F;
System.out.println(f);
/*
关于布尔型的数据类型:
在Java语言当中boolean只有两个值:true和false,没有其他值
不想c语言当中0和1可以表示假和真

在底层存储的时候boolean类型占用一个字节,因为实际存储的时候false的底层是0
true的底层是1

布尔类型在实际开发当中非常重要,经常使用在逻辑运算和条件控制语句当中

*/
//编译错误:不兼容类型
//boolean flag = 1;

//boolean loginSuccess = false;
boolean loginSuccess = true;

//if语句以后讲【条件控制语句】

if (loginSuccess){
System.out.println("恭喜你,登陆成功!");
}else{
System.out.println("对不起,用户名不存在或者密码错误!");
}
/*
关于基本数据类型之间的互相转换:转换规则
1.八种基本数据类型当中除了布尔类型剩下的七种类型都可以互相转换

2.小容量向大容量转换,称为自动类型转换,容量有小排到大:
byte < short < int < long < float < boolean
char <
注:任何浮点型不管占用几个字节,都要比整数型容量大
char和short可表示的种类数量都相同,但是char可以取更大的正整数(因为取不了负数)

3.大容量转换为小容量,需要加强制转换符,但可能会损失精度

4.当整数字面值没有超过byte short char的取值范围,可以直接赋值给byte short char
类型的变量

5.byte short char 混合运算的时候,各自先转换int类型再做运算

6.多种数据类型混合运算,先转换成容量最大的那种类型在做运算

编译器只检查语法,并不会去运算
*/
}
}

标签:类库,字节,double,float,数据类型,剩下,类型
来源: https://www.cnblogs.com/Wangzhuo3411/p/15371384.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有