Java学习——数据类型
2026/4/6 5:43:41 网站建设 项目流程
目录一、概述二、基本数据类型1、数值型2、字符型3、布尔型三、引用数据类后期补充1、类2、接口3、数组4、枚举5、注解四、数据类型转换1、概述2、隐式转换自动类型转换3、显式转换强制类型转换4、特殊类型转换场景五、获取用户端输入1、final关键字2、Scanner类一、概述Java 的数据类型分为两大类基本类型primitive type和引用类型reference type。基本类型包括 byte、short、int、long、float、double、char、boolean 共 8 种它们直接存储数值或布尔值效率高且内存占用固定引用类型包括类、接口、数组以及 null 字面量它们存储的是对象的引用内存地址可以动态创建并通过 new 关键字实例化。理解这两种类型的区别值传递 vs. 引用传递是掌握 Java 内存管理和编程基础的关键。二、基本数据类型1、数值型整数型变量Java 中整数型数据变量用于存储整数值共有 4 种不同的整数类型byte、short、int、long。它们的主要区别在于内存大小1字节8位和取值范围。类型占用空间取值范围用途byte1 字节-128 127节省内存处理小范围整数short2 字节-32768 32767较少使用适用于特定场景的整数存储int4 字节-2³¹ ~ 2³¹-1最常用的整数类型默认的整数字面量类型long8 字节-2⁶³ ~ 2⁶³-1存储大范围整数*在实际应用过程中应考虑内存占用选取合适的数据类型*程序中整数类型的数据一般默认为int型long型数据在表示时需要后缀加上 L 或 llong num1 12345678987L;浮点型变量在 Java 中浮点型变量用于存储小数或科学计算数值主要分为float单精度4 字节和double双精度8 字节两种。类型占用空间取值范围精度范围用途float4 字节1.4e-45 ~ 3.4028235e386 - 7 位小数节省内存的浮点数double8 字节4.9e-324 ~ 1.7976931348623157e30815 位小数适用于高精度计算float型数据在表示时需要后缀加上F 或 ffloat结构1 位符号位 8 位指数位 23 位尾数位float num01 3.14F;double型数据在表示时需要后缀加上D 或 d (选加可省略)double结构1 位符号位 11 位指数位 52 位尾数位注意事项浮点型支持常规数学运算加减乘除但不准确有误差浮点型数据之间也不宜直接进行比较补充浮点数中的 E 和 e 表示科学计数法的十进制指数负数范围与正数对称浮点类型还包含正无穷、负无穷、NaN非数值等特殊值实际存储遵循 IEEE 754 标准2、字符型在 Java 中字符型使用char关键字表示用于存储单个字符采用Unicode编码。链接Unicode编码表基本参数大小16 位2 字节取值范围\u00000到\uffff65535即 Unicode 字符集的 0~65535 编码默认值\u0000空字符赋值方式char ch1 A; // 直接赋值字符 char ch2 65; // 十进制ASCII值等价于A char ch3 \u0041; // Unicode编码等价于A字符与整型的转换字符型可隐式转换为整型如int反之需要显式类型转换int code A; // 结果为65 char ch (char) 66; // 结果为B注意事项不能为负数char是无符号类型赋值负数会编译错误不能表示单个字节如果需要 8 位字节使用byte类型与int兼容char可以自动提升为int如参与算术运算但int赋值给char需要强制类型转换除非是常量且范围合适转义字符Java支持常见转义字符如转义符含义Unicode值\n换行符LF\u000A\t水平制表符Tab\u0009\r回车符CR\u000D\b退格符\u0008\f换页符\u000C\\反斜杠自身\u005C\单引号\u0027\双引号\u0022\0空字符NULL\u0000字符串与字符字符可通过String类的方法处理String str Java; char firstChar str.charAt(0); // 获取第一个字符J字符的Unicode处理Java支持Unicode补充字符如emoji需注意某些方法可能不兼容char highSurrogate \uD83D; // 高代理项 char lowSurrogate \uDE00; // 低代理项 String emoji highSurrogate lowSurrogate; // 组合成注意事项字符型默认值\u0000空字符比较字符时直接使用关系运算符如处理多语言时需确保编码一致性如UTF-8字符串与字符的区别A是String类型引用类型A是char类型基本类型3、布尔型Java 中的布尔型使用boolean关键字表示用于逻辑运算和条件判断。基本参数取值仅两个字面量true真或false假存储大小Java 规范未明确定义通常虚拟机实现中boolean至少占 1 个字节或 1 位但数组时可能用 byte 模拟默认值false注意事项不能与整数互转Java 中boolean不参与任何数值类型转换不像 C 语言中用 0/1 代表 false/true包装类Boolean可自动装箱拆箱内存占用参考单个boolean变量在 HotSpot VM 中通常占用 1 字节boolean[]中每个元素占用 1 字节可通过-XX:UseCompressedOops等影响适用场景标志位、条件开关、逻辑运算结果三、引用数据类后期补充1、类2、接口3、数组4、枚举5、注解四、数据类型转换1、概述Java数据类型转换分为隐式转换自动类型转换和显式转换强制类型转换。隐式转换由编译器自动完成通常发生在小范围数据类型向大范围数据类型转换时显式转换需要手动指定可能伴随精度损失或数据溢出。2、隐式转换自动类型转换当满足以下条件时Java会自动进行类型转换数据类型兼容如整型与浮点型之间。目标类型范围更大例如int转longfloat转double。常见隐式转换顺序byte → short → int → long → float → doublechar → int字符可隐式转为整型示例代码int numInt 100; long numLong numInt; // 自动转换 double numDouble numLong; // 自动转换3、显式转换强制类型转换当需要将大范围数据类型转为小范围类型时需使用强制类型转换语法为(目标类型)值。注意事项精度损失如double转int会丢弃小数部分。数据溢出如long转int可能超出int范围。示例代码double numDouble 100.56; int numInt (int) numDouble; // 结果为100丢失小数部分 long bigNum 2147483648L; int smallNum (int) bigNum; // 可能溢出结果为-21474836484、特殊类型转换场景字符串与其他类型的转换字符串转数值String str 123; int num Integer.parseInt(str); double d Double.parseDouble(str);数值转字符串int num 456; String str String.valueOf(num); String str2 Integer.toString(num);字符与整型的转换char ch A; int ascii (int) ch; // 获取ASCII值65 int num 97; char ch2 (char) num; // 转为字符a注意事项布尔类型不参与转换boolean不能与数值类型互相转换。包装类与基本类型通过自动装箱/拆箱实现转换如Integer与int。精度控制浮点数转整型时建议结合Math.round()处理四舍五入。示例double pi 3.14159; int rounded (int) Math.round(pi); // 结果为3五、获取用户端输入1、final关键字修饰变量使其变为常量值不可修改、修饰方法不可被重写、修饰类不可被继承。double pi 3.1415926; //pi可以被修改此时为变量 final double PI 3.1415926 //PI不可被修改由变量改为常量注意事项final修饰后的变量最好改为大写字母以示区分final修饰后的变量不能读取键盘输入2、Scanner类Java 标准库中用于解析基本类型和字符串的简单文本扫描器最常用于从键盘读取输入。基本用法导入 Scanner 类创建 Scanner 对象绑定到标准输入流键盘读取不同类型的数据import java.util.Scanner; //导入Scanner类 public class Main { public static void main(String[] args) { Scanner scanner new Scanner(System.in); // 创建 Scanner 对象 System.out.print(请输入内容); String input scanner.nextLine(); // 用用户键盘输入的内容进行赋值 System.out.println(您输入的是 input); scanner.close(); // 关闭 Scanner } }常用的其他用法方法说明nextInt()读取一个int值nextDouble()读取一个double值nextBoolean()读取一个boolean值next()读取下一个以空白符分隔的字符串nextLine()读取整行包含空格直到换行符hasNextInt()判断是否还有对应类型的输入常用于循环注意事项混用nextXXX()与nextLine()时nextLine()可能会读取到遗留的换行符需要额外调用一次scanner.nextLine()来“吃掉”它。关闭Scanner后不能再使用且会关闭底层的System.in

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询