Java中的八大数据类型详谈

JAVA中的八大数据类型

Java的基本数据类型在任何操作系统上都具有相同的大小

1.int 取值范围-231~231-1 类型长度:4个字节(32位) 默认值:0
2.short 取值范围 -215~215-1 类型长度:2个字节(16位)默认值:0
3.long 类型长度:8个字节(64位)默认值:0
4.byte 类型长度:取值范围:-128~127 1个字节(8位)默认值:0
5.float 类型长度:4个字节(32位)默认值:0.0
6.double 类型长度:8个字节(64位)默认值:0.0
7.boolean:1个字节(8位)默认值:false
8.char:1个字节(8位)默认值:\u0000
特殊的数据类型:引用数据类型:数组 类 接口
String是一个引用数据类型,用来表示字符串,用" "表示,在Java中可以使用+连接两个字符串,并且只要使用了+时,也出现了字符串,则所有的数据类型(包括引用数据类型)都会变为String.
在Java中,一个整数默认是int型,若要定义为long型,需要在整数后加L(推荐)或l
一个小数默认是若要定义double型,若要定义为float类型,需要在小数后追加F或f
在Java中没有用0表示false,用非0表示true的概念。

十六进制类型表示时要以 0x 或 0X 开头
“A” 与 'A’的区别:前者是字符串常量,后者是字符常量,前者比后者需占用更多字节。

类型转换

小类型提升为大类型会自动转化。
大类型转换为小类型需要强转,并且可能会造成数据精度丢失

1.隐式的类型转换(自动类型转换)

各个基本类型之间的转换关系:

1)在整数之间进行类型转换时,数值不会发生改变.但将int或long型转换成浮点型时,由于存储方式不同,int和long包含的位数比float所能表达的位数多,有可能存在数据精度的缺失.

2)char、byte、short 3种类型之间 的转换

byte b = 1;
char c=1;
short s = 1;

以上情况是一种特例:虽然我们知道1是一个int型的整数,但却可以直接向数据类型低的转化,是因为编译时整型的字面常量赋值给比int类型低的变量类型,而字面常量又没有超过该变量类型的取值范围,则可以转换成功,编译器可以做隐式类型转换.这种特例只适用于对变量进行赋值,不适用于方法调用语句.
但即使是在取值范围里的整型变量赋给byte也需要强制类型转化。
3)当byte与short或char (或是三者的混合)参与运算时,结果为int型
4)使用符合运算符"+="时,复合运算符在赋值时可以自动将运算结果转化为左侧的操作数类型.
5)byte到char的类型转换比较特殊:称为扩展收缩转换
在这里插入图片描述

2.复合运算符 的特征
小数据类型与大数据类型做数值运算时,小数据类型会自动提升为大数据类型,eg:10+1L—>int+long–>long+long
3.强制类型转换
当取值范围大的数据类型向取值范围小的数据类型转换时有可能会损失精度
eg:byte b=300;
输出b的值为44;
这是因为编译器会直接截取300的二进制数(‭000100101100‬)的低八位(一字节byte的存储位数)再转换成十进制数输出。
当浮点型强制转换为整型,采用的是"去1法",也就是无条件的舍去小数点的所有数字,不会进行四舍五入计算.

任何类型的数据都可以向String转换

典型例题

byte b = 3,c = 5;
byte d =b+c;
System.out.println("d"+d);

以上程序编译不通过,byte b = 3,c = 5;有错误,不能这样定义变量。当两个数值进行计算时,运算结果至少是int型,若参与运算的两个数值有一个数值类型比int高,则运算结果与高级别的数据类型相同

转义字符:
换行 \n
制表符\t
双引号"
单引号’
&& 和 || 都是短路运算符,即当只要有条件返回false,&&(短路与)就不再判断剩余条件,返回false;只要有条件返回true,||(短路或就不再判断剩余条件,返回true);&和|是非短路运算符
三目运算符:
数据类型 变量 = 布尔表达式?满足时赋值:不满足时赋值
eg:

      int a=3;
      int b=4;
      int c=5;
      int ret=a>b?a:(b>c)?b:c

典型例题:
1.存在使i+1<i的数吗?
答:MAX_VALUE,因为MAX_VALUE+1 == MIN_VALUE.(拓展:MIN_VALUE-1 ==MAX_VALUE)
2.System.out.println(“5”+2);的输出结果为:52
3.float f=3.5;是错误的,因为3.5是double类型比float类型大,需要强转。
改为:float f=3.5F;

特殊的浮点值
对于相除和求余运算,当除数为0时,整型运算会产生异常,而当除数为浮点数0时,浮点数运算不会产生异常。
移位运算的误区
因为int类型占4字节,32位,而long型占8字节,64位,如果将int移动超过31位或long型移动超过63位便失去了意义(全移走了),但是当右侧操作数大于31或63时,系统进行了相关处理:
当左侧操作数位int型时,右侧操作数只有低五位有效(取右侧操作数二进制补码的低五位),即右侧操作数与掩码0x1f做与运算。
当左侧操作数位float型时,右侧操作数只有第六位有效(取右侧操作数二进制补码的低六位),即右侧操作数与掩码0x3f做与运算.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着技术的不断发展,无人机在低空经济的应用越来越广泛。无人机的关键技术包括飞行控制系统、传感器技术、通信技术、能源技术等。 1. 飞行控制系统 飞行控制系统是无人机最核心的技术之一,主要包括姿态控制、导航控制、动力控制、任务控制等。姿态控制是指无人机的飞行姿态控制,如俯仰、横滚、偏航等。导航控制是指无人机的定位和导航控制,包括GPS、惯性导航等。动力控制是指无人机的动力系统控制,包括电机控制、电池管理等。任务控制是指无人机的任务执行控制,包括摄像机控制、传感器控制等。 2. 传感器技术 传感器技术是无人机的重要技术之一,主要包括视觉传感器、红外传感器、雷达传感器、激光传感器等。视觉传感器是无人机进行空拍摄和图像识别的重要传感器,包括相机、红外相机等。红外传感器可以进行夜间和低能见度环境下的目标探测和跟踪。雷达传感器可以进行远距离目标探测和跟踪。激光传感器可以进行精确测距和三维建模。 3. 通信技术 通信技术是无人机的关键技术之一,主要包括无线通信、卫星通信、地面控制等。无线通信是无人机与地面控制站之间的重要通信方式,需要保证通信稳定和可靠。卫星通信可以提供更广泛的通信覆盖范围和更高的通信带宽。地面控制是无人机的重要控制方式,需要实现对无人机的遥控和数据传输。 4. 能源技术 能源技术是无人机的关键技术之一,主要包括电池技术、太阳能技术、燃料电池技术等。电池技术是无人机的主要能源来源,需要具备高能量密度、长寿命、快速充电等特点。太阳能技术可以为无人机提供额外的能源支持,但需要考虑太阳能的时间和地点限制。燃料电池技术可以实现无人机长时间、长距离的飞行,但需要解决燃料电池的稳定性和安全性问题。 综上所述,无人机的关键技术主要包括飞行控制系统、传感器技术、通信技术、能源技术等。这些技术的不断发展和创新将进一步推动无人机在低空经济的应用和发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值