JavaSE02-数据类型和类型转换
一、数据类型
Java属于强类型语言,要求变量的使用要严格符合规定,所以变量都必须先定义后才能使用。
Java的数据类型分为两大类:
- 基本类型 primitive type(8)
-
数值类型(7)
- 整数类型(4)
- byte 1个字节,范围:-128~127
- short 2个字节,范围:-32768~32767
- int 4个字节,最常用。
- long 8个字节,
long num=30L;
后缀要加L。 - 整数类型进行运算时,如果存在long类型的数据,结果将为long类型,否则结果都将为int类型。
- 浮点类型(2)
- float 4个字节,
float num=30.1F;
后缀要加F。 - double 8个字节,最常用。
- float 4个字节,
- 字符类型(1)所有的字符本质还是数值
- char 2个字节(String 不是关键字,是一个类)
- 整数类型(4)
-
布尔类型(1)
- boolean 1位,true or false
-
扩展
-
整数扩展:进制
// 整数拓展:进制表示 int i1 = 10; // 十进制 10 int i2 = 0b10; // 二进制 2 int i3 = 010; // 八进制 8 int i4 = 0x10; // 十六进制 16
-
浮点数扩展:尽量避免用浮点数进行比较
- 浮点数是有限的,离散的,存在舍入误差
- BigDecimal 数学工具类
-
-
代码实现
public class DataTypes { public static void main(String[] args) { // 八大基本数据类型 // 整数 byte num1 = 10; short num2 = 20; int num3 = 30; //最常用 long num4 = 40L; // Long类型要在数字后面加一个L // 浮点数 float num5 = 10.1F; // Float类型要在数字后面加一个F double num6 = 10.1; // 最常用,浮点数默认类型 // 字符类型 char c = '中'; // String str = "中国"; // String不是关键字,是一个类 // 布尔值 boolean flag1 = true; boolean flag2 = false; } }
- 引用类型 reference type
- 数组
- 类
- 接口
二、类型转换
运算时,不同类型的数据需要先转换为同一类型,然后进行计算。
-
自动类型转换(低 —> 高)
// 自动类型转换(低-->高) byte num1 = 123; int num2 = num1; System.out.println(num1); // 123 System.out.println(num2); // 123
-
强制类型转换(高 —> 低)
// 强制类型转换(高-->低) int num3 = 123; byte num4 = (byte) num3; System.out.println(num3); // 123 System.out.println(num4); // 123
注意:
-
不能对布尔值进行转换
-
不能把对象类型转换为不相关的类型
-
高容量转低容量,要强制类型转换
-
转换时可能存在内存溢出,或者精度问题
//内存溢出(操作数比较大时要特别注意) int num5 = 128; byte num6 = (byte)num5; System.out.println(num5); //128 System.out.println(num6); //-128 //精度问题 System.out.println((int)12.3); //12 System.out.println((int)-12.3f); //-12
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!