java学习笔记-----基本数据类型及转换
2021/7/22 22:35:49
本文主要是介绍java学习笔记-----基本数据类型及转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
刚开始学习Java,把老师上课讲的整理了一下~~
1.计算机存储单元
计算机存储设备的最小信息单元叫位(bit),又称之为比特位,通常用小写的字母b表示。
而计算机中最小的存储单元叫字节(byte),通常用大写字母B表示,字节是由连续的8个位组成。
除了字节外还有一些常用的存储单位:
1B = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
2.基本数据类型
Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也是不一样的。
数据类型内存占用和取值范围
说明:e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方
2.1 整数类型:byte、short、int、long
- Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。
- java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’
- java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
2.2 浮点类型:float、double
与表示整数的整型不同,浮点型代表的是实数,其实就是包含小数的部分。
一、浮点型常量
Java的实常数有两种表示形式:
1.十进制数形式,由数字和小数点组成,且必须有小数点,如0.123, .123, 123. ,123.0等等 。
2.科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。
3.浮点型常量的默认类型是double,当我们想要表示一个float类型的浮点数的时候 此时我们就需要在数值后边加上一个F或者f。
float f = 3.14F;
二、浮点型变量
浮点型变量的类型有float和double两种。
双精度类型double比单精度类型float具有更高的精度,和更大的表示范围,常常用于科学计算等高精度场合。
public static void main(String[] args){ float f = 3.14F; double d = 3.14D; float f1 = 0.1f; double d1 = 1.0/10; System.out.println(f1 == d1);//false float f2 = 42323442F; float f3 = f2 +1;// f2与f2+1 是否相等? System.out.println(f2==f3);//true }
以上代码 由于收到长度和精度的限制,无法精确地去表示一些浮点数 只是近似的等于 。所以,当我们在遇到需要精确表示小数的时候 特别是金融方面的时候,千万不要直接使用float和double去表示。
有关浮点数精度的博客,有兴趣了解一下!
2.3字符型 char
char表示字符 占用两个字节
java中的所有的字符都使用的是Unicode编码 一个字符可以存储一个字母 可以存储一个汉字 还可以存储其他的字符
字符的表示形式:
public static void main(String[] args){ //字符的第一种表示形式 使用单引号引起来的 char c1 ='1'; char c2 = '中'; char c3 = 'a'; char c4 = '&'; //转义字符 char c5= '\t';//制表符 char c6='\r';//回车 char c7 = '\n';//换行 //常量表示 直接使用unicoide值进行表示 }
2.4 布尔类型 boolean
表示的是逻辑值 只有true和false 两个值
Boolean适用于逻辑运算,一般用于程序流程控制
Boolean只允许取值true和false,无null。与c语言不同,不可以用0和非0的整数代替false和true。
3 基本数据类型之间的转换
3.1自动转换
非赋值运算的转换规则:
byte/char/short -> int -> long -> float -> double
布尔类型不参与转换
下面来看一个小例子
public static void main(String[] args) { byte a = 1; byte b = 2; byte c =a+b; }
上面代码在编译器中会报错,变量 a,b,c 都是 byte 型,编译器为什么会报错呢,那是因为在运算过程中出现了数据类型的自动转换,变量 a 和变量 b 都是先转换为 int 型,再参与运算,所以a+b的结果是一个 int 型的数据,不能赋给 byte 型的c。
-
byte、char、short 参与算数运算时都是先转换为 int 型,再参与运算。
-
在运算时,如果有大范围操作数也有小范围操作数,那么小范围操作数就要先转换为大范围操作数再参与运算。
- 如两数之一为double,则另一个操作数先被转化为double,再参与算术运算。
- 如两数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。
- 如两数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。
- 如两数均不为double、float或long,则两操作数先被转换为int,再参与运算。
赋值运算时,Java会自动扩宽类型,将小范围类型变量转换成大范围类型的变量。
3.2 强制转换
除了自动转换外,我们还可以进行强制转换,以便将大范围操作数赋值给小范围操作数。
public static void main(String[] args) { byte a = 1; byte b = 2; //a+b是int类型 byte c =(byte) (a+b);//这样就不会报错了 }
强制转换的格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型。
有的数据经过转型运算后,精度会丢失。
这篇关于java学习笔记-----基本数据类型及转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10百万架构师第十三课:源码分析:Spring 源码分析:Spring核心IOC容器及依赖注入原理|JavaGuide
- 2025-01-10便捷好用的电商API工具合集
- 2025-01-09必试!帮 J 人团队解决物流错发漏发的软件神器!
- 2025-01-09不容小觑!助力 J 人物流客服安抚情绪的软件!
- 2025-01-09为什么医疗团队协作离不开智能文档工具?
- 2025-01-09惊叹:J 人团队用啥软件让物流服务快又准?
- 2025-01-09如何利用数据分析工具优化项目资源分配?4种工具推荐
- 2025-01-09多学科协作难?这款文档工具可以帮你省心省力
- 2025-01-09团队中的技术项目经理TPM:工作内容与资源优化策略
- 2025-01-09JIT生产管理法:优化流程,提升竞争力的秘诀