线程池
搜索文档
字节跳动偏爱高校 TOP 榜
猿大侠· 2025-09-18 12:15
字节跳动招聘偏好分析 - 字节跳动对学历要求相对灵活,存在双非一本甚至二本背景毕业生成功入职的案例 [2] - 公司对高校毕业生有偏好名单,分为四档,第一档以985高校为主,但西电和北邮两所211高校也因行业高认可度位列其中 [4] - 名单中包含多所双非院校,如广东工业大学、杭州电子科技大学等,这些学校在计算机、电子领域实力强劲,属于行业内认可度高的强一本 [4] - 硕士院校为211及以上学历的候选人,即使本科背景普通,字节跳动大多愿意给面试机会,不会单纯因本科学历卡简历 [5] - 2024年秋招流程效率极高,从笔试到3轮技术面再到HR面,部分候选人不到3周即可完成并收到offer [6] 秋招技术面试趋势 - 当前秋招高峰期,考生普遍使用AI面试工具进行高强度模拟练习,单次练习时长在30分钟至80分钟不等 [8] - AI面试工具因考察方向完全对标大厂难度,能帮助考生查漏补缺并消除紧张感,受到广泛使用 [10][11] - 字节跳动秋招Java一面典型考察范围包括Java并发、Redis、MySQL事务三大模块,风格为重基础、挖原理 [11] Java并发编程核心技术 - 线程安全指多线程并发访问下程序仍能正确运行,主要通过加锁、原子类或并发安全数据结构来保证原子性、可见性和有序性 [12][16] - 保证线程安全的具体手段包括synchronized关键字、ReentrantLock显式锁、AtomicInteger等原子类以及ConcurrentHashMap等并发集合 [16][18][19][23] - 线程池核心目的是复用线程、降低开销、控制并发数,通过ThreadPoolExecutor的七大参数进行配置 [21][26][27] - 线程池拒绝策略包括CallerRunsPolicy、AbortPolicy、DiscardPolicy、DiscardOldestPolicy四种预置策略 [28][31] Redis高性能与数据结构 - Redis采用单线程模型,官方基准测试显示其吞吐量可达10万次/秒,高性能源于内存操作、高效数据结构、避免线程竞争及I/O多路复用机制 [29][36] - Zset类型底层由压缩列表或跳表实现,当元素个数小于128个且每个元素值小于64字节时使用压缩列表,否则使用跳表 [32][36] - 跳表通过构建多层有序链表实现快速定位,查找复杂度为O(logN),节点层数由随机数决定,每增加一层概率不超过25%,层高最大限制为64 [33][37][44][45] - 内存达到maxmemory上限后,Redis根据淘汰策略处理写请求,提供包括noeviction、allkeys-lru、volatile-ttl等8种策略 [46][48] 数据库与缓存一致性解决方案 - 保证Redis与MySQL数据一致性的常见策略是更新数据库后删除缓存,属于最终一致性方案 [52][54] - 针对删除缓存异常的情况,可通过消息队列重试机制或订阅MySQL binlog(如使用Canal中间件)两种方案来保证操作执行 [56][60][61][63] - 先写数据库再删缓存期间出现缓存击穿时,可采用分布式单飞方案确保同一key只有一个请求回源重建,或使用逻辑过期+后台刷新方案让并发请求短窗内返回旧值 [67][68][70][72] - 缓存需设置合理的过期时间,太短会使请求过多落库,太长则会导致脏数据长时间存在浪费内存 [54][55] MySQL事务特性与实现机制 - 事务ACID特性通过不同技术保证:原子性由undo log实现,隔离性由MVCC或锁机制实现,持久性由redo log实现,一致性则由前三者共同保证 [74] - MVCC在读提交和可重复读隔离级别下的区别在于Read View创建时机不同,读提交级别每次语句执行前重新生成,可重复读级别在事务启动时生成 [75]
被招银网络的薪资打动了
猿大侠· 2025-08-11 12:05
招银网络科技秋招信息 - 招银网络科技在8月启动秋招,主要面向IT技术类岗位,包括后端开发、前端开发、算法、测开、运维等 [2] - 银行和国企类公司通常在9月后开启秋招,招银网络科技提前至8月是为了与互联网公司竞争技术人才 [2] - 去年校招薪资:普通offer为15.5k×12+9w(津贴+绩效),年包27w;sp offer为17.5~18k×12+9w,年包30~31w [3] - 公积金按12%缴纳,年包30w情况下到手约24w现金+5w公积金 [4] 公司背景与工作环境 - 招银网络科技是招商银行的软件中心,大部分开发工作集中在此 [4] - 深圳工作时间为8:30-17:30,中午两小时午休,工作日偶有加班,周末通常双休,加班强度低于互联网公司 [4] - 面试流程为两轮技术面+一轮HR面,完成后需等待1-2个月发放offer,去年offer发放时间为10月底 [4] 校招薪资与学历要求 - sp offer示例:18k×12+9w=年包31w(硕士985,杭州);17.5k×12+9w=年包30w(硕士985,深圳) [5] - 普通offer示例:15.5k×12+9w=年包27w(硕士双一流,杭州) [5] - 校招学历背景以211、985为主,部分为双一流院校 [4] 面试技术考察内容 - Java后端面试重点考察集合、并发、JVM三大板块 [9] - ArrayList与LinkedList区别:底层数据结构、插入删除效率、随机访问效率、空间占用、使用场景 [12] - HashMap冲突解决:JDK1.7使用链表,JDK1.8引入红黑树优化(链表长度>8转红黑树,<6转回链表) [13][16] - HashMap扩容机制:负载因子0.75触发扩容,元素位置按原位置或原位置+oldCap重新分布 [19][20][21] - ConcurrentHashMap线程安全实现:JDK1.7采用分段锁,JDK1.8改用CAS+synchronized [24] JVM与多线程相关 - JVM内存区域分为虚拟机栈、堆、元空间、程序计数器、本地方法栈,直接内存属于操作系统本地内存 [30][32] - 垃圾回收算法包括标记-清除、复制、标记-整理、分代回收 [35][36] - Eden区与Survivor区区别:对象分配、GC触发条件、内存管理方式 [37][38] - 线程创建方式:继承Thread类、实现Runnable接口、实现Callable接口、使用线程池 [37][40][43][46] - 线程池参数:corePoolSize、maximumPoolSize、keepAliveTime、workQueue、threadFactory、handler [46][48][49] 其他校招信息 - 招银网络科技除秋招外也有春招,曾有同学在毕业前一个月(5月)获得offer [7] - 技术面经显示面试难度低于互联网大厂,但对Java技术掌握要求较高 [9][12][13]