news 2026/8/18 18:20:53

【初学者必看】Java的8种基础数据类型(附运算符优先级表)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【初学者必看】Java的8种基础数据类型(附运算符优先级表)

Java基础数据类型与运算符

    • 引言
    • 第一部分:8种基础数据类型
    • 第二部分:类型转换
    • 第三部分:运算符
    • 第四部分:运算符优先级(建议背下来)
    • 第五部分:易犯的3个错误
    • 第六部分:总结

引言

大家好,我是菜程序。昨天我们搞定了Java环境搭建,成功跑出了第一个Hello World。今天正式进入Java语法世界的第一关——基础数据类型和运算符。

这大概是新手最先接触的内容,但也是最容易埋坑的地方。我见过太多人学完基础后,面试时被问“byte的取值范围是多少”一脸懵,或者在写循环时因为运算符优先级搞错而debug一下午。

这篇文章不讲废话,直接上干货。读完你将掌握:8种基础数据类型的取值范围和默认值;类型转换的规则;运算符的优先级以及新手易犯的错误和解方式。

第一部分:8种基础数据类型

1.1 Java是强类型语言,每个变量都必须声明类型。基础数据类型Primitive Type)是Java的基石,分为4类8种:

类别数据类型字节数取值范围默认值
整数byte1-128 ~ 1270
整数short2-32768 ~ 327670
整数int4-2^31 ~ 2^31-1 (约±21亿)0
整数long8-2^63 ~ 2^63-10L
浮点float4约 ±3.4E380.0f
浮点double8约 ±1.8E3080.0d
字符char20 ~ 65535 (Unicode)‘\u0000’
布尔boolean1 (官方未精确定义)true / falsefalse

1.2 重点提醒

(1)byte的坑:很多人以为byte范围是0-255,其实是-128-127。因为Java的byte是有符号的。

(2)long类型赋值必须加L:

longmoney=10000000000L;// 不加L会报错,因为整数默认是int

(3)float必须加f:

floatprice=19.9f;// 不加f会报错,小数默认是double

(4)char可以赋整数(对应ASCII/Unicode):

charc=65;// 对应字符'A'System.out.println(c);// 输出A

第二部分:类型转换

2.1 自动类型转换(隐式转换)

规则:小范围 → 大范围,自动发生,无信息丢失。
顺序:byte → short → int → long → float → double
(注意:int转float可能丢失精度,但语法允许)

inti=100;longl=i;// 自动转换floatf=l;// 自动转换(可能丢失精度)doubled=f;// 自动转换

2.2 强制类型转换(显式转换)

规则:大范围 → 小范围,需要强制,可能丢失数据。

doubled=100.5;inti=(int)d;// 强制转换,结果为100(小数部分被截断)

⚠️ 经典陷阱:byte b = (byte) 130; // 130超出byte范围,结果是多少?
答案:-126(因为溢出后循环计算)

2.3 表达式中的类型提升

规则:表达式运算时,所有byte/short/char都会被自动提升为int
bytea=10;byteb=20;bytec=a+b;// ❌ 编译错误!a+b结果是int,需要强制转换bytec=(byte)(a+b);// ✅ 正确

第三部分:运算符

3.1 算术运算符

运算符含义示例
+a + b
-a - b
*a * b
/除(整数除法取整)5 / 2 = 2
%取模(余数)5 % 2 = 1

⚠️ 除法陷阱:

inta=5;intb=2;System.out.println(a/b);// 输出2,不是2.5// 想得到小数:至少有一个操作数是浮点数System.out.println(5.0/2);// 输出2.5

3.2 关系运算符

运算符含义结果类型
==等于boolean
!=不等于boolean
>大于boolean
>=大于等于boolean
<小于boolean
<=小于等于boolean

⚠️ 两个常见坑点:
1.== 与 = 的区别:==是比较运算符,=是赋值运算符。新手经常写错:

if(a=5){}// ❌ 编译错误,a=5是赋值语句,结果是int类型if(a==5){}// ✅ 正确,比较a是否等于5

2.浮点数不要用 == 直接比较:

floatf=0.1f;doubled=0.1;System.out.println(f==d);// false(精度不同)应使用差值阈值判断:Math.abs(f-d)<0.00001

3.3 逻辑运算符

⚠️ 短路现象:

inti=0;if(i!=0&&10/i>0){// 因为i!=0为false,右边10/i不会执行,避免了除零异常}

3.4 赋值运算符

=直接赋值+=a+=b → a=a+b-=a-=b → a=a-b*=a*=b → a=a*b/=a/=b → a=a/b%=a%=b → a=a%b

3.5 自增自减运算符

++i 先自增,再取值 i++先取值,再自增--i 先自减,再取值 i--先取值,再自减

经典面试题:

inti=0;intj=i+++++i;// i++:先取值0,i变为1// ++i:i先变为2,取值2// j = 0 + 2 = 2// i最终为2System.out.println("i="+i+", j="+j);// i=2, j=2

3.6 三元运算符

条件?表达式1:表达式2// 条件为true返回表达式1,否则返回表达式2intmax=(a>b)?a:b;

第四部分:运算符优先级(建议背下来)

从高到低:


⚠️ 不记得优先级怎么办?
加括号! 永远不要依赖记忆。写(a + b) * c比a + b * c更清晰,也更安全。

第五部分:易犯的3个错误

错误1:整型除法得到小数

javadoubleresult=5/2;// 结果是2.0,不是2.5

正确1:double result = 5.0 / 2; 或 (double)5 / 2

错误2:byte/short运算后不强制转换

byteb1=10;byteb2=20;byteb3=b1+b2;// 编译错误

正确5:byte b3 = (byte)(b1 + b2);

错误3:== 比较浮点数

floatf=0.1f;doubled=0.1;System.out.println(f==d);// false(精度不同)

正确3:比较浮点数应使用差值阈值,如Math.abs(f - d) < 0.00001

第六部分:总结

📌 本文是《Java后端从入门到进阶》系列的第2篇,免费开放。

数据类型和运算符是Java大厦的地基。但如果你只停留在“会用”层面,面试时会很吃亏。面试官最爱问:

switch支持哪些数据类型?(答案可不只是int)

&和&&除了短路,还有什么区别?

如何用位运算高效判断奇偶?

这些进阶内容,我会在后续付费专栏中深度讲解,每篇附带:

完整代码示例(可直接运行)

面试真题解析(大厂题库)

常见坑点复盘(帮你少走弯路)

💡 下期预告:《流程控制:if/else、循环、switch》,免费发布,记得关注。

如果今天的内容对你有帮助,欢迎点赞、收藏、评论。遇到问题评论区留言,我会一一回复。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/18 18:19:32

Sigrity仿真全流程实战(SOC + 4G + MCU)

&#x1f697; Sigrity仿真全流程实战&#xff08;SOC 4G MCU&#xff09; &#x1f449; 别再“拍脑袋放电容”&#xff0c;用仿真把PDN一次搞稳&#xff01;&#x1f3af; 一、先讲清楚&#xff1a;你为什么要做Sigrity&#xff1f; 很多人做PDN是这样的&#xff1a; &…

作者头像 李华
网站建设 2026/8/18 18:18:20

scrcpy 零基础投屏指南:10 分钟把安卓手机搬上电脑大屏

scrcpy 零基础投屏指南&#xff1a;10 分钟把安卓手机搬上电脑大屏 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 写给谁&#xff1a; 还没用过 scrcpy、对"投屏"的理解还停留在…

作者头像 李华
网站建设 2026/8/18 18:13:18

新员工如何快速接手项目?AI平台辅助上下文理解与文档重建

入职第一天&#xff0c;导师把新工程师拉进项目群&#xff0c;发来一个 Git 仓库地址&#xff0c;附言一句&#xff1a;"文档在 wiki 上&#xff0c;可能有旧的&#xff0c;你先看看代码。“三周后新人依然不敢动手改一个按钮的文案&#xff0c;因为没人说得清那个文案为什…

作者头像 李华