Java 常用语法极简通关(二):八种基本类型与 String——Java 类型世界的两大阵营
开篇一个物资采购结算的小程序第一章我们看到了 Java 程序的骨架这一章往里走看看装数据的容器——类型。还是老规矩先看一段活的代码煤矿物资采购的结算程序算出各种物料的金额并汇总。public class PurchaseApp { public static void main(String[] args) { // 物料1锚杆 String itemName1 锚杆; int quantity1 1200; // 数量根 double price1 18.5; // 单价元 // 物料2液压油 String itemName2 液压油; int quantity2 40; // 数量桶 double price2 320.0; // 单项金额 数量 × 单价 double amount1 quantity1 * price1; double amount2 quantity2 * price2; // 汇总 double total amount1 amount2; long totalInFen (long) (total * 100); // 折算成分转成整数 // 是否超过预算 double budget 40000.0; boolean overBudget total budget; // 采购员等级用单个字符表示 char buyerLevel A; System.out.println(itemName1 金额 amount1 元); System.out.println(itemName2 金额 amount2 元); System.out.println(合计 total 元 totalInFen 分); System.out.println(是否超预算 overBudget); System.out.println(采购员等级 buyerLevel); } }运行结果锚杆 金额22200.0 元 液压油 金额12800.0 元 合计35000.0 元3500000 分 是否超预算false 采购员等级A这段代码里Java 的八种基本类型出现了六种int、double、boolean、char、long外加转换剩下的byte、short、float我们马上讲到。先立一个总纲Java 的类型分两大阵营八种基本类型primitive是值本身其余一切——String、数组、你自己写的类——都是引用类型。这两个阵营的行为差异是新手无数 bug 的源头。本章讲透它们。第一部分八种基本类型——一张表就够了Java 有且只有八种基本类型分四类分类类型占用空间举例日常使用频率整数byte1 字节-128~127byte b 100;低整数short2 字节short s 5000;低整数int4 字节约 ±21 亿int age 30;极高整数默认用它整数long8 字节long fen 3500000L;中int 装不下时用小数float4 字节float f 3.14F;低小数double8 字节double price 18.5;极高小数默认用它字符char2 字节char level A;中布尔boolean—boolean ok true;极高按本系列只讲常用的原则给你三条极简结论整数就用int除非确定会超过 21 亿比如毫秒时间戳、以分为单位的大金额那就用long数值后面加Llong t 1723000000000L;小数就用double。float要加F后缀、精度还低业务代码里基本不用知道它存在即可。byte、short、float日常几乎不手写多在底层 IO、旧代码里出现见到了能看懂就行。两个细节写整数字面量时Java 默认当 int 处理写小数字面量默认当 double 处理。所以float f 3.14;会报错3.14 是 double不能直接塞进更小的 float必须写3.14F。char用单引号只能包一个字符A、中都合法。boolean只有true和false没有第三态也不能用 0 和 1 代替。第二部分类型转换——自动的和强制的案例里有两处转换正好把两种转换方式都演示了。自动转换小杯倒进大杯不用管double amount1 quantity1 * price1; // int × double → doublequantity1是 intprice1是 doubleint 乘之前会被自动提升为 double结果是 double。规则一句话范围小的类型放进范围大的类型自动转不丢数据。转换链是byte → short → int → long → float → double char ↗所以int i A;合法i 的值是 65字符的本质是 Unicode 编码数字double d 100;也合法。强制转换大杯倒进小杯自己负责long totalInFen (long) (total * 100);total * 100是 double要装进 long——范围大的进范围小的可能丢数据编译器要求你显式确认写法是在值前面加(目标类型)double d 9.99; int i (int) d; // i 是 9不是 10强转直接砍掉小数不做四舍五入新手必记(int)是截断不是四舍五入。想四舍五入用Math.round()第十章讲工具类时会细说。第三部分String——最常用的引用类型基本类型讲完了现在看另一大阵营的代表。String 是 Java 里使用频率最高的类型没有之一但它不是基本类型是一个类。这个事实引出三个必知点。必知点一字符串是不可变的immutableString s 锚杆; s s 12m;第二行并不是修改了原来的字符串而是新建了一个字符串对象让 s 指向新对象旧对象等待垃圾回收。日常用没问题但在循环里反复拼接会产生大量临时对象——性能坑第四章讲 StringBuilder 时解决它。必知点二字符串拼接用其他类型自动转字符串System.out.println(合计 total 元);任何类型和字符串用拼接都会先被转成字符串。注意一个顺序陷阱System.out.println(结果 1 2); // 输出结果12 System.out.println(结果 (1 2)); // 输出结果3从左往右算第一行里结果 1先拼成了字符串后面的 2 只能跟着拼加括号让加法先算就对了。必知点三重点比较字符串内容必须用 equals不能用 这是 Java 新手最经典的坑没有之一。看这段代码String a new String(锚杆); String b new String(锚杆); System.out.println(a b); // false ← 惊不惊喜 System.out.println(a.equals(b)); // true内容明明一样却返回 false。原因在于两大阵营的本质区别基本类型变量里存的就是值本身比较的就是值int x 5; int y 5;则x y为 true天经地义。引用类型变量里存的是对象的地址内存中的位置。a和b是两个不同的对象地址不同所以为 false。对引用类型回答的问题是是不是同一个对象而不是内容一不一样。想比较内容要用 String 类提供的equals方法String input 维修; if (input.equals(维修)) { // 正确姿势 System.out.println(生成维修工单); }实际开发中更稳妥的写法是把已知的字面量放前面避免 null 报错if (维修.equals(input)) { ... }这种写法即使input是 null 也不会抛空指针异常——空指针NullPointerException是 Java 程序最常见的事故第八章异常处理会专门讲。补一个容易混淆的点直接写双引号的字符串字面量会被 JVM 放进字符串常量池复用所以String x abc; String y abc; System.out.println(x y); // 居然是 true常量池里同一个对象正因为这种有时 true 有时 false的不确定性规矩只有一条比较字符串内容永远用 equals忘掉 在字符串上的存在。常踩的坑排雷清单字符串用 比较本章最大的坑见上。内容比较一律equals。整数相除丢掉小数int result 7 / 2;结果是 3不是 3.5——int 除 int 得 int。想要小数至少一边写成 double7.0 / 2或(double) 7 / 2。强转当四舍五入用(int) 9.99得 9。要四舍五入请用Math.round()。long 忘记加 Llong t 1723000000000;编译报错因为字面量默认 int超范围了。加L就好。boolean 写 0/1if (flag 1)在 boolean 上行不通Java 的 boolean 和数字完全不通婚。char 和 String 混用引号维修两个字符进单引号编译报错String s A;也报错——类型不匹配。单引号 char、双引号 String泾渭分明。本章小结Java 类型分两大阵营八种基本类型存值本身引用类型String、数组、类存地址。日常取舍整数int、大额long L、小数double、真假boolean、单字符char A其余三种认识即可。转换小进大自动转大进小加(类型)强转强转是截断不是四舍五入。String 是类、不可变拼接用注意从左到右的顺序陷阱。比较字符串内容用equals永远不用——引用类型的比的是地址。下一章运算符与流程控制——通过一个巡检成绩评级 批量统计的案例把 if、switch、三种循环讲透重点拆解 switch 的 break 穿透和增强 for 为什么成为遍历的主流。

相关新闻

Excel隐藏功能全解析:从数据清洗到自动化报表

Excel隐藏功能全解析:从数据清洗到自动化报表

1. Excel的隐藏实力:为什么它被严重低估?大多数人第一次接触Excel时,往往把它当作一个简单的表格工具——用来记录数据、制作清单或者计算简单的加减乘除。但作为一个用了15年Excel的老用户,我可以负责任地说,Excel的强…

2026/8/11 18:41:46 阅读更多 →
RIP 开发者指南:如何在 Rust 项目中集成 Python 包安装能力?

RIP 开发者指南:如何在 Rust 项目中集成 Python 包安装能力?

RIP 开发者指南:如何在 Rust 项目中集成 Python 包安装能力? 【免费下载链接】rip Solve and install Python packages quickly with rip (pip in Rust) 项目地址: https://gitcode.com/gh_mirrors/rip2/rip RIP(pip in Rust&#xff…

2026/8/11 18:41:46 阅读更多 →
数据库入门:核心概念、架构与SQL实战指南

数据库入门:核心概念、架构与SQL实战指南

1. 数据库入门:从零开始理解数据存储的核心概念 第一次接触"数据库"这个概念时,我脑海中浮现的是一排排金属柜子塞满文件夹的画面。直到真正开始使用数据库管理系统,才发现它远比物理文件柜强大百倍。数据库本质上是一个电子化的数…

2026/8/11 18:41:46 阅读更多 →

最新新闻

OpenClaw安全实践:从风险识别到防御部署

OpenClaw安全实践:从风险识别到防御部署

1. OpenClaw安全全景透视:从风险识别到安全实践在开源工具生态中,OpenClaw作为新兴的基础架构组件,其安全特性正受到越来越多开发团队的关注。最近三个月内,关于OpenClaw的安全讨论量激增237%,主要集中在部署配置、边界…

2026/8/11 20:11:19 阅读更多 →
《让本地LLM速度提升10倍:llama.cpp CUDA GPU加速实战》

《让本地LLM速度提升10倍:llama.cpp CUDA GPU加速实战》

LlamaAI本地部署实战专栏第4篇从CPU推理到GPU加速,掌握llama.cpp CUDA优化,让你的本地大模型真正发挥显卡性能。一、为什么本地大模型需要GPU加速?在上一篇文章中,我们已经成功运行了第一个本地模型。但是很多开发者会遇到一个问题…

2026/8/11 20:11:19 阅读更多 →
10分钟掌握Hanselman.Forms数据服务:DataService与MockDataService实现原理

10分钟掌握Hanselman.Forms数据服务:DataService与MockDataService实现原理

10分钟掌握Hanselman.Forms数据服务:DataService与MockDataService实现原理 【免费下载链接】Hanselman.Forms The most awesome Hanselman app 项目地址: https://gitcode.com/gh_mirrors/ha/Hanselman.Forms Hanselman.Forms是一个功能丰富的跨平台应用&am…

2026/8/11 20:11:19 阅读更多 →
video-to-pose3D实战指南:处理视频文件并生成精准3D人体姿态的详细步骤

video-to-pose3D实战指南:处理视频文件并生成精准3D人体姿态的详细步骤

video-to-pose3D实战指南:处理视频文件并生成精准3D人体姿态的详细步骤 【免费下载链接】video-to-pose3D Convert video to 3D pose in one-key. 项目地址: https://gitcode.com/gh_mirrors/vi/video-to-pose3D video-to-pose3D是一款强大的开源工具&#x…

2026/8/11 20:11:19 阅读更多 →
加入azooKey社区:Discord交流与贡献指南,一起打造更好的输入法

加入azooKey社区:Discord交流与贡献指南,一起打造更好的输入法

加入azooKey社区:Discord交流与贡献指南,一起打造更好的输入法 【免费下载链接】azooKey-Desktop azooKey-Desktop is an open-source Japanese input method for macOS, written in Swift and powered by the Zenzai neural kana-kanji converter. It p…

2026/8/11 20:11:19 阅读更多 →
PSO优化Kmeans在电力大数据分析中的应用与实践

PSO优化Kmeans在电力大数据分析中的应用与实践

1. 项目背景与核心价值 电力大数据分析正在成为智慧能源领域的重要研究方向。居民用电行为分析作为其中的关键环节,直接影响着电网调度、需求响应和电价策略制定。传统Kmeans聚类算法虽然被广泛用于用电模式分类,但其随机初始中心点的特性容易导致局部最…

2026/8/11 20:10:18 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →