JDK源码之Object
仁从冀匆?? 学习目标了解什么是变量并学会定义和更新变量掌握如何为变量选择合适的数据类型学会在代码中添加注释提升可读性什么是变量在编程中变量就像一个带标签的盒子用来存放某个数据值。标签变量名告诉我们盒子里装的是什么盒子里的值就是存放的数据举个例子盒子外写着 name表示名字盒子里放着 Alex表示名字的值当你想修改名字时只需替换盒子里的值而不必修改整个程序。为什么需要变量如果在代码中直接写死所有值程序只能应对特定情况。使用变量就像写信时使用模板只需替换不同内容即可应对多种情况尊敬的 { name }您好很高兴今天能在 { location } 与您会晤。希望 { date } 还能见到您。祝您天天好心情同样地在应用中你可以用变量来代替变化的数据?? 用户名name?? 地点location? 时间date这样应用就能根据不同用户或场景自动生成对应内容而不需要每次都重新编写逻辑。??Kotlin 常见数据类型在定义变量时需要指定变量能存储的数据类型。Kotlin 提供了丰富的基本类型类型分类 数据类型 示例值 说明整数类型 (整型) Byte 127 8位有符号整数范围-128 ~ 127Short 32767 16位有符号整数范围-32768 ~ 32767Int 2147483647 32位有符号整数范围-231 ~ 231-1Long 9223372036854775807L 64位有符号整数需以 L 结尾浮点类型 Float 3.14f 32位单精度浮点数需以 f 结尾Double 3.1415926 64位双精度浮点数默认浮点类型字符类型 Char A 单个字符使用单引号包裹布尔类型 Boolean true / false 逻辑真值类型字符串类型 String Hello 字符序列可用 创建多行字符串数组类型 Array arrayOf(1, 2, 3) 可存储任意类型的元素集合类型 List listOf(A, B) 不可变列表MutableList mutableListOf(1, 2, 3) 可变列表Set setOf(A, B) 不可变集合自动去重MutableSet mutableSetOf(A, B) 可变集合Map mapOf(key to value) 不可变键值对集合MutableMap mutableMapOf(k to v) 可变键值对集合空类型 Any 任意类型值 Kotlin 所有类的超类Unit Unit 表示无返回值相当于 Java 的 voidNothing - 表示不会返回如抛异常的函数可空类型 String?, Int? 等 null 允许存储 null 值的类型?? 变量类型实际使用示例地图应用?? 地点名称String? 星级评分Double?? 评论数量Int?? 是否收藏Boolean视频应用?? 视频标题String?? 频道名称String?? 播放次数Int?? 定义变量定义变量的语法如下val 变量名: 数据类型 初始值定义变量语法示例fun main() {val count: Int 2println(count)}输出结果2提示val 表示不可变变量定义后不能修改值var 表示可变变量定义后可重新赋值类型推断如果 Kotlin 能根据初始值判断类型则可以省略类型声明val count 2 // 自动推断为 Int若未赋初始值必须明确指定类型val count: Int //但直接这样写会报错要用后面讲解的其他只是修复使用变量与字符串模板要在字符串中插入变量值可使用 字符串模板fun main() {val count 10println(You have $count unread messages.)}输出You have 10 unread messages.${} 可在字符串中放入表达式例如println(Total: ${5 3})基本数学运算整数变量可以直接参与运算例如加减乘除fun main() {val unreadCount 5val readCount 100println(You have ${unreadCount readCount} total messages.)}输出You have 105 total messages.4. 更新变量在应用程序运行时可能需要更新变量的值。例如购物车总金额会随用户操作而变化。val 与 varval只读变量值不可更改。var可变变量值可更新。示例fun main() {var cartTotal 0 // 声明可变变量println(Total: $cartTotal)cartTotal 20 // 更新变量值println(Total: $cartTotal)}输出Total: 0Total: 20增量运算符和减量运算符可以使用表达式更新变量例如增加或减少值fun main() {var count 10println(You have $count unread messages.)count count 1 // 增加 1println(You have $count unread messages.)count // 使用增量运算符等同于 count count 1println(You have $count unread messages.)count-- // 使用减量运算符等同于 count count - 1println(You have $count unread messages.)}You have 10 unread messages.You have 11 unread messages.You have 12 unread messages.You have 11 unread messages.提示只有在变量值会发生变化时使用 var否则优先使用 val 以保证代码安全。其他数据类型Double用于存储小数精度比 Float 高。示例fun main() {val trip1 3.20val trip2 4.10val trip3 1.72val totalTripLength trip1 trip2 trip3println($totalTripLength miles left to destination)}输出9.02 miles left to destinationString用于存储文本用双引号包裹。可通过 进行字符串拼接。fun main() {val nextMeeting Next meeting: val date January 1val reminder nextMeeting date at workprintln(reminder)}输出Next meeting: January 1 at work字符串中使用引号需要转义fun main() {println(Say \hello\)}输出Say helloBoolean只有两个可能值true 或 false。常用于表示开关状态或条件判断。fun main() {val notificationsEnabled falseprintln(notificationsEnabled)println(Are notifications enabled? notificationsEnabled)}输出falseAre notifications enabled? false编码规范在 Kotlin 中建议遵循以下编码规范这是 Google 推荐使用并且其他专业开发者也在遵循的一种 Android 代码统一编写方式变量命名使用 驼峰命名法camelCase以小写字母开头。val discount: Double 0.20类型声明空格冒号后添加一个空格。val discount: Double 0.20运算符空格赋值运算符 加号 、减号 -、乘号 *、除号 / 前后都应有空格。var pet Dogval sum 1 2行长度每行代码建议不超过 100 个字符方便阅读和维护。在代码中添加注释编写代码时建议使用注释说明代码用途帮助读者理解。单行注释使用 //通常在符号后添加一个空格// 这是一个注释height 1 // 假设初始高度为 1多行注释使用 /* ... */适合超过 100 个字符的长注释/** 这是一个很长的注释* 可以占用多行只需要开始和结束中间的*是为了好看写的*/示例单行注释与多行注释结合/** 该程序显示用户收件箱中的消息数量*/fun main() {// 创建一个变量表示未读消息数量var count 10println(You have $count unread messages.)// 将消息数量减少 1count--println(You have $count unread messages.)}?? 提示在常见的编辑器中输入注释时IDE 会提供自动提示和快捷键支持帮助你快速书写注释。注释里面的*不需要手动写完编辑器会自动生成后面章节会详细讲解。现在主要是让大家了解注释的作用。总结做得很好您已经了解了 Kotlin 中的变量及其用途掌握了如何创建、更新和使用变量尝试了不同的基本数据类型Int、Double、String、Boolean并了解了 val 与 var 的区别。核心要点变量是存储单项数据的容器。必须先声明变量才能使用。val 用于定义只读变量一旦赋值不可更改。var 用于定义可变变量可以更新值。Kotlin 中建议尽可能使用 val。变量声明示例val count: Int 2类型推断提供初始值时可省略数据类型。常见基本类型Int、Double、String、Boolean、Float。更新变量使用赋值运算符 只有 var 声明的变量才能被更新。增量运算符 用于加 1减量运算符 -- 用于减 1。可用于字符串拼接也可将其他类型如 Int、Boolean拼接到字符串。

相关新闻

new出来的对象,不一定在堆上?聊聊Java虚拟机的优化技术:逃逸分析

new出来的对象,不一定在堆上?聊聊Java虚拟机的优化技术:逃逸分析

凑段耘辛1. 基础 1.1 图片加载优化 对于非文章类的大图片先进行一遍压缩,使用各种压缩网站就可以 然后对于各种图片最好都转换为为webp格式,相对于传统格式能降低大小大概四成左右 1.2 gzip压缩 gzip是针对文本类型进行压缩的,例如html、js、…

2026/7/4 20:37:33 阅读更多 →
飞算科技,让代码飞:欢迎体验 JavaAI 开发助手,参加炫技赛

飞算科技,让代码飞:欢迎体验 JavaAI 开发助手,参加炫技赛

谄挥毡汛程序员的节后困境 相信很多同行都有过这样的经历: 国庆7天假期,前4天出门旅游累成狗,后3天报复性熬夜刷剧打游戏。现在是10月7日,后天(10月9日)就要上班了,突然发现: 生物钟…

2026/7/4 15:31:02 阅读更多 →
Flutter 三方库 week_number 的鸿蒙化适配指南 - 掌控 ISO 标准周数计算、财务日历实战、鸿蒙级精密时序专家

Flutter 三方库 week_number 的鸿蒙化适配指南 - 掌控 ISO 标准周数计算、财务日历实战、鸿蒙级精密时序专家

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 week_number 的鸿蒙化适配指南 - 掌控 ISO 标准周数计算、财务日历实战、鸿蒙级精密时序专家 在鸿蒙跨平台应用处理复杂的周期性统计(如按周生成的财务报表、人…

2026/7/4 8:36:39 阅读更多 →

最新新闻

3步掌握高效数据迁移:开源格式转换工具的完整实战指南

3步掌握高效数据迁移:开源格式转换工具的完整实战指南

3步掌握高效数据迁移:开源格式转换工具的完整实战指南 【免费下载链接】onenote-md-exporter ConsoleApp to export OneNote notebooks to Markdown formats 项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter 你是否曾面对堆积如山的OneNot…

2026/7/6 5:40:40 阅读更多 →
利用Applera1n工具绕过iPhone激活锁:原理、实操与限制详解

利用Applera1n工具绕过iPhone激活锁:原理、实操与限制详解

1. 项目概述与核心需求解析最近在折腾旧iPhone的朋友,估计没少被“激活锁”这个拦路虎给卡住。手里拿着一台不知道Apple ID密码的二手设备,或者自己忘了密码的老机器,看着那个“激活锁”界面,感觉跟砖头没什么两样。我手头就有一台…

2026/7/6 5:40:40 阅读更多 →
ROFLPlayer:英雄联盟回放分析神器,三步解锁你的游戏复盘能力

ROFLPlayer:英雄联盟回放分析神器,三步解锁你的游戏复盘能力

ROFLPlayer:英雄联盟回放分析神器,三步解锁你的游戏复盘能力 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在…

2026/7/6 5:38:39 阅读更多 →
d2s-editor:暗黑破坏神2存档编辑器,轻松管理你的游戏角色数据

d2s-editor:暗黑破坏神2存档编辑器,轻松管理你的游戏角色数据

d2s-editor:暗黑破坏神2存档编辑器,轻松管理你的游戏角色数据 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾为暗黑破坏神2复杂的存档编辑而烦恼?想要调整角色属性却不知从何下手&am…

2026/7/6 5:36:39 阅读更多 →
如何用FanControl打造智能静音电脑:从零基础到专业调校的完整指南

如何用FanControl打造智能静音电脑:从零基础到专业调校的完整指南

如何用FanControl打造智能静音电脑:从零基础到专业调校的完整指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_…

2026/7/6 5:36:39 阅读更多 →
129、轻量化 Head 设计:用 Depthwise Conv 加 1×1 Conv 替代标准检测头卷积

129、轻量化 Head 设计:用 Depthwise Conv 加 1×1 Conv 替代标准检测头卷积

129、轻量化 Head 设计:用 Depthwise Conv 加 1乘1 Conv 替代标准检测头卷积 从一次显存爆炸说起 去年秋天调一个YOLOv11n的工业检测模型,输入分辨率压到640640,batch size设到32,结果RTX 3090直接OOM。排查半天,发现检测头三个分支的卷积层占了将近40%的参数量。当时项目…

2026/7/6 5:32:38 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻