字节跳动Kotlin专项面经:协程CPS变换、Flow选型、sealed class穷举,面试官要的不是会用
Java基础那篇发出去之后评论区都在喊"赶紧出Kotlin"。Kotlin面试比Java更难准备——特性太多太灵活,面试官经常从语法糖追到编译原理。6道题是字节中级Android岗Kotlin专项高频题,每道考深度理解,不是"会写"就行。Q1:suspend函数底层怎么实现的?CPS变换是什么?大部分人说"suspend就是挂起函数"就完了,字节面试官要的是底层原理。Kotlin编译器对每个suspend函数做CPS(Continuation-Passing Style)变换——给函数加一个隐藏参数Continuation,函数不再直接返回值,而是通过Continuation回调传递结果。每个挂起点被编译器转成状态机的一个状态,协程挂起时保存当前状态到Continuation里,恢复时从保存的状态继续。// 你写的 suspend fun fetchUser(): User { delay(1000) return User("Tom") } // 编译器变换后(简化) fun fetchUser(continuation: ContinuationUser): Any { when (label) { 0 - { label = 1; delay(1000, this) /* 挂起 */ } 1 - { /* 恢复执行,返回User */ } } }这就是协程"看起来顺序代码,实际能挂起恢复"的底层魔法——状态机+Continuation。追问:为什么suspend函数只能在协

相关新闻

零基础极速上手:10分钟用AI建站工具做出你的第一个企业官网

零基础极速上手:10分钟用AI建站工具做出你的第一个企业官网

谁说建官网一定要懂代码?很多小企业主或初创者,一想到“建网站”,脑海里浮现的还是复杂的代码、高昂的费用和漫长的等待。其实,随着AI建站工具的普及,建一个专业的企业官网,已经变成了一件像“做PPT”一样简…

2026/7/26 8:37:13 阅读更多 →
OpenClaw跨平台开发工具链Windows部署指南

OpenClaw跨平台开发工具链Windows部署指南

1. 项目概述OpenClaw作为2026年最新发布的跨平台开发工具链,正在迅速成为开发者社区的新宠。这个看似"养虾"的梗实际上源于其命令行工具oclaw的谐音,在开发者圈子里已经形成了一种独特的文化符号。本文将带你从零开始,在Windows平台…

2026/7/26 8:37:13 阅读更多 →
WSL2图形化界面配置:VcXsrv实现Linux GUI应用

WSL2图形化界面配置:VcXsrv实现Linux GUI应用

1. 项目概述:WSL2图形化界面解决方案第一次在WSL2里跑起带图形界面的Ubuntu应用时,那种感觉就像给命令行终端插上了翅膀。作为Windows Subsystem for Linux的第二代产品,WSL2虽然提供了近乎原生的Linux内核体验,但默认情况下仍然是…

2026/7/26 8:37:13 阅读更多 →

最新新闻

1.3-假设空间

1.3-假设空间

机器学习:假设空间与版本空间本教程用尽量直白的方式,讲清楚机器学习里一个很关键、却常被跳过的概念:假设空间与版本空间。读完你会明白:学习算法其实是在一个装满「所有可能规律」的大仓库里翻找,挑出能解释训练数据…

2026/7/26 8:56:22 阅读更多 →
3大核心优势:联想拯救者工具箱开源替代方案深度解析

3大核心优势:联想拯救者工具箱开源替代方案深度解析

3大核心优势:联想拯救者工具箱开源替代方案深度解析 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 联想拯救者工…

2026/7/26 8:56:22 阅读更多 →
【板子】拓扑排序(少量先后约束,进行合法排列/执行)

【板子】拓扑排序(少量先后约束,进行合法排列/执行)

一、核心原理1. 它是干什么的?解决 “先做 A 才能做 B”​ 的问题。把 有向无环图 (DAG)​ 拉直成一个序列。保证:如果 A -> B(A 依赖 B),序列中 B 一定在 A 前面(注:取决于建图逻辑&#xf…

2026/7/26 8:56:22 阅读更多 →
AI意识模型构建:从理论到工程实践

AI意识模型构建:从理论到工程实践

1. 意识与AI模型的边界探索当我们在深夜与聊天机器人对话时,偶尔会产生一种错觉——屏幕另一端似乎存在着某种具有自我认知的实体。这种体验引发了一个根本性问题:我们如何定义意识?又该如何在AI系统中模拟这种神秘现象?作为一名长…

2026/7/26 8:56:22 阅读更多 →
英雄联盟智能助手Seraphine:3分钟上手的数据驱动游戏体验

英雄联盟智能助手Seraphine:3分钟上手的数据驱动游戏体验

英雄联盟智能助手Seraphine:3分钟上手的数据驱动游戏体验 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine Seraphine是一款基于英雄联盟官方LCU API开发的免费开源智能助手,专为英雄联盟…

2026/7/26 8:56:21 阅读更多 →
Claude 4.8代码生成实测:边界条件处理与并发安全分析

Claude 4.8代码生成实测:边界条件处理与并发安全分析

边界条件和并发是代码质量的底线 过去大半年我一直在研究多模型集成方案,从自研搭建到开源 UI 部署,再到第三方平台,踩了不少坑。最近在 (titiai.cn) 上找到了一个比较省心的方案,顺手用 Claude 4.8 做了一次代码生成的完整实测。…

2026/7/26 8:55:21 阅读更多 →

日新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻