埋头代码,开口成长 在小组讨论时被问到 “你能解释这个代码逻辑吗” ——突然意识到程序员最难的Bug是“说不清楚”。以前一直认为程序员不是会技术就行了吗后来了解到程序员还需要良好的理解能力、沟通能力和语言组织、表达能力他们在工作中经常需要和同事交流协作理解产品经理和项目经理的需求描述向领导汇报工作情况等。对于一个嘴笨社恐人士来说这真的是一场考验。并且我听一位老师说 “互联网是‘e人’的主战场” 这句话说对了一半‘e人’ 可能在沟通和表达上有天然的优势‘i人’ 的表达能力也可以很优秀甚至优于天生的 ‘e人’我属于是埋头苦学的类型语言表达能力比较弱但幸运的是我才大一现在意识到问题还不晚剩下的交给行动。好说干就干从今天开始我会和我的好朋友发语音用自己的话讲一个知识点这样做既能锻炼表达能力也是对知识点的巩固。第一天我进程和线程的概念及区别44s35sCPU是计算机的大脑它负责执行使用者给出的各种指令和任务这些任务就叫做进程。一个进程可以包含一个或者多个线程。这里可以看出进程是一个比线程更大的单位所以创建和销毁进程的开销要比创建和销毁线程的开销要大得多。CPU执行这些进程的时候是需要消耗内存和文件这些资源的这些资源由操作系统来分配。进程是操作系统分配资源的一个基本单位吧每个进程都会被分配到一定的资源然后一个进程里面的若干个线程就共享这套资源。friend普通for循环和foreach循环的区别36s普通for循环和foreach循环它们都能完整地遍历集合或者数组但它们的本质底层不同。普通for循环是依靠索引下标访问然后可以自由地控制便利的范围以及修改元素。而for each是基于迭代器的他只能从头到尾遍历然后遍历的过程中它不能增删元素。找不足以下总结为自己、friend、豆包、deepseek的评价整合有些地方卡顿分两段也是因为卡太久了语句衔接不连贯还有点啰嗦讲了进程包含线程但把最重要的线程的核心定义 “线程是CPU调度的基本单位” 给漏了进程和线程的核心区别未提及——进程之间资源独立互不影响一个崩溃不影响另一个线程共享资源一个线程崩溃可能导致整个进程崩溃语句通俗但缺乏严谨性比如 “进程就是任务” 的表述不严谨正确表达是 “进程是承载任务的载体” 它是运行中的程序实例错误表述CPU不直接消耗资源是进程在消耗还有最致命的一点带有 “吧” 字显得不够自信对知识点掌握不扎实这要是面试会给面试官留下不好的印象。friend说不会读Iterator准确来说是读音不标准俺也一样所以没有指明是哪个迭代器语言简炼但有一处漏洞数组没有迭代器foreach编译直接转为下标普通for而集合实现Iterable接口foreach底层依赖迭代器Iterator改良版重新组织语言CPU是计算机的大脑它负责执行各种指令。进程是运行中的程序实例也是操作系统分配资源的基本单位线程是CPU调度的基本单位。一个进程可以包含多个线程进程间资源独立互不影响但是一个进程中的线程之间他们共享该进程中的资源一个线程崩溃可能导致整个进程都崩溃由于进程是比线程更大的单元所以创建和销毁进程的开销比较大创建和销毁线程的开销小。普通for循环和foreach循环都能完整地遍历数组和集合但它们的底层实现与使用限制存在本质区别。普通For循环依靠下标索引访问元素灵活性很强可以自定义便利范围实现倒序或间隔便利也能通过下标直接修改元素foreach属于Java的语法糖它的底层逻辑分两种情况遍历集合时会基于iterator迭代器进行遍历只能从头到尾顺序读取全部元素遍历图中执行增删操作会抛出并发修改异常。当数组本身没有原生迭代器使用foreach去遍历数组时编译器会自动将代码转化为下标循环。此外foreach是无法获取元素下标的它只适合仅需读取数据的场景代码书写起来会更加简洁而普通for循环是适配所有需要灵活控制遍历逻辑或者修改容器元素的场景。第一次试着把知识点讲出来感觉跟写博客分享知识有很大的区别博客我可以想好一句话再写写完还可以修改但在60s语音里需要的是 “即时表达” 的能力这对我平时与人沟通交流也有好处并且通过复盘整理我对知识点的掌握也深了不少降低了复习的成本