跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Java数据类型
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= Java数据类型 = '''Java数据类型'''是Java编程语言中用于声明变量或对象的类型系统,它定义了数据的存储方式、操作规则以及取值范围。Java是'''静态类型语言''',所有变量必须先声明类型后使用。数据类型分为两大类:'''基本数据类型(Primitive Data Types)'''和'''引用数据类型(Reference Data Types)'''。 == 基本数据类型 == Java的8种基本数据类型是语言内置的,直接存储值而非引用。它们按用途可分为四类: === 整数类型 === {| class="wikitable" |+ 整数类型对比 ! 类型 !! 大小(字节) !! 取值范围 !! 默认值 |- | <code>byte</code> || 1 || -128 到 127 || 0 |- | <code>short</code> || 2 || -32,768 到 32,767 || 0 |- | <code>int</code> || 4 || -2<sup>31</sup> 到 2<sup>31</sup>-1 || 0 |- | <code>long</code> || 8 || -2<sup>63</sup> 到 2<sup>63</sup>-1 || 0L |} '''示例代码:''' <syntaxhighlight lang="java"> public class IntegerExample { public static void main(String[] args) { byte smallNumber = 100; int mediumNumber = 100000; long bigNumber = 10000000000L; // 注意L后缀 System.out.println("byte值: " + smallNumber); System.out.println("int值: " + mediumNumber); System.out.println("long值: " + bigNumber); } } </syntaxhighlight> '''输出:''' <pre> byte值: 100 int值: 100000 long值: 10000000000 </pre> === 浮点类型 === {| class="wikitable" |+ 浮点类型对比 ! 类型 !! 大小(字节) !! 精度 !! 默认值 |- | <code>float</code> || 4 || 6-7位有效数字 || 0.0f |- | <code>double</code> || 8 || 15位有效数字 || 0.0d |} '''科学计算示例:''' <syntaxhighlight lang="java"> float piFloat = 3.1415927f; // 注意f后缀 double piDouble = 3.141592653589793; System.out.println("float圆周率: " + piFloat); System.out.println("double圆周率: " + piDouble); </syntaxhighlight> === 字符类型 === * <code>char</code>:2字节,存储Unicode字符,默认值<code>\u0000</code> * 表示方式: * 直接字符:<code>'A'</code> * Unicode值:<code>'\u0041'</code> * 转义字符:<code>'\n'</code> === 布尔类型 === * <code>boolean</code>:1位,只有<code>true</code>/<code>false</code>,默认值<code>false</code> * 不能与整数类型互换(不同于C语言) == 引用数据类型 == 引用类型存储对象的'''内存地址''',包括: * 类(如<code>String</code>) * 接口 * 数组 * 枚举 '''字符串示例:''' <syntaxhighlight lang="java"> String message = "Hello Java"; int[] numbers = {1, 2, 3}; // 数组也是引用类型 System.out.println(message.length()); // 输出:10 System.out.println(numbers[0]); // 输出:1 </syntaxhighlight> == 类型转换 == === 自动类型转换(隐式) === 小类型→大类型自动转换: <mermaid> graph LR byte --> short --> int --> long --> float --> double char --> int </mermaid> === 强制类型转换(显式) === 大类型→小类型需强制转换,可能丢失精度: <syntaxhighlight lang="java"> double price = 9.99; int intPrice = (int) price; // 结果为9,丢失小数部分 </syntaxhighlight> == 内存模型 == <mermaid> pie title 基本数据类型内存占用 "byte/short/char" : 1 "int/float" : 4 "long/double" : 8 "boolean" : 1 </mermaid> == 实际应用案例 == '''场景:电商系统商品库存管理''' <syntaxhighlight lang="java"> public class Product { private long id; // 商品ID(大范围) private String name; // 商品名称(引用类型) private float price; // 价格(带小数) private int stock; // 库存(整数) private boolean available;// 是否上架 // 构造方法和方法省略... } </syntaxhighlight> == 常见问题 == * '''Q:<code>float</code>和<code>double</code>如何选择?''' * A:金融计算优先用<code>BigDecimal</code>,普通计算优先用<code>double</code> * '''Q:<code>char</code>能存储中文吗?''' * A:可以,Java的<code>char</code>使用UTF-16编码,一个中文占1个<code>char</code> == 进阶知识 == * '''值传递 vs 引用传递''':基本类型按值传递,引用类型按引用传递 * '''自动装箱/拆箱''':基本类型与包装类(如<code>int</code>↔<code>Integer</code>)的自动转换 * 类型默认值规则: * 类成员变量:有默认值 * 局部变量:必须显式初始化 <math> \text{类型安全} = \frac{\text{编译时类型检查} + \text{运行时类型检查}}{\text{总操作次数}} </math> [[Category:编程语言]] [[Category:Java]] [[Category:Java基础]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)