Java

首页 标签 Java
# Java #
关注
267553内容
|
7天前
| |
第059篇 建造者模式:链式调用为何无处不用在哪些地方
建造者模式核心是**将复杂对象的创建过程外置、分步可控、集中校验**。它解决参数过多、互斥依赖、分步初始化问题,关键在于:私有构造、链式setter、build()统一校验、产物不可变(final+防御拷贝)、默认值内聚于Builder——非仅为语法糖,而是工程化构造控制。
|
7天前
| |
第071篇 顶层函数与属性:为什么不再需要 Utils 类
Kotlin顶层函数/属性是“语法糖”,编译后归入以文件名命名的静态文件类(如`StringsKt`)。`@file:JvmName`可自定义Java调用类名,`@JvmField`使属性变为真正静态字段,`const val`为编译期常量。核心原则:顶层只放无状态纯函数;可变状态须收敛至`object`,确保修改点可控。
|
7天前
| |
第047篇 垃圾回收基础:可达性分析与 GC Roots
本文深入剖析JVM垃圾回收核心——可达性分析机制,厘清GC Roots四类(栈变量、静态字段、JNI引用、活跃线程)作为泄漏排查入口;对比引用计数缺陷,详解强/软/弱/虚四级引用的本质差异在于“回收时机”;直击Android开发中静态缓存、Context泄漏等高频坑点,并给出支配树定位、显式限容、弱引用替代等工程化解决方案。
|
7天前
| |
第050篇 IO 流体系:字节流与字符流的分层设计
Java IO流是面试分水岭:字节流处理二进制,字符流处理文本(内部仍转字节);装饰器模式实现缓冲、数据/对象序列化等能力。核心考点:缓冲区优化原理、字符编码陷阱(必须显式指定UTF-8)、try-with-resources资源管理、批量读写避坑。真实项目中,用错流类型、忽略编码、未关闭流是高频故障源。
|
7天前
| |
第064篇 空安全入门:?、!! 与 ?. 的三分天下
Kotlin空安全是编译期类型契约:`T`与`T?`本质不同。`?.`链式短路不求值,`?:`右值懒执行,`?.let`中`it`为非空类型,`!!`仅限框架保证场景。核心原则——null是需显式处理的分支,可空性应在数据入口收敛。
|
7天前
| |
第076篇 集合三大类与只读可变两套体系
Kotlin集合分List/Set/Map三组,各含只读与可变类型(共6种)。关键在于:“只读”是类型约束(禁止调用修改方法),≠“不可变”(底层数据仍可能被改)。`listOf()`返回真不可变实现,安全共享;而`asList()`是活视图,需警惕副作用。工程中应坚持“内部可变、对外只读+`toList()`拷贝”。
|
7天前
| |
第053篇 Lambda 与函数式接口:Android 开发的日常语法
本文深入剖析Java Lambda与函数式接口的本质:从匿名内部类演进而来,依托`invokedynamic`与`LambdaMetafactory`实现运行时链接;详解四大核心接口(`Function`/`Consumer`/`Supplier`/`Predicate`)、捕获语义、泛型擦除及Android兼容坑点,强调“行为参数化”思想而非语法糖。
|
7天前
| |
第055篇 Optional 与空值处理:比判空更优雅的表达
`Optional<T>` 是 Java 8 引入的容器类,核心价值是**将“可能为空”显式表达在类型中**,提升空安全与可读性。仅限用作**方法返回值**,禁用于字段、参数及高频路径;需搭配 `ofNullable`、`map`/`flatMap`、`orElseGet` 等规范使用,避免序列化、性能与语义陷阱。
|
7天前
| |
第045篇 JVM 内存区域:堆、栈、方法区与程序计数器
JVM内存区域是面试分水岭:非死记硬背,而要理解线程私有(栈、PC计数器、本地方法栈)与共享(堆、元空间)的本质差异,能据OOM类型精准定位根因——栈溢出看调用链、堆OOM析对象引用、元空间OOM查类加载、直接内存OOM盯NIO缓冲。
|
7天前
| |
第060篇 Java 阶段面试通关地图:六十个考点串联复盘
“Java阶段面试”不是考知识点记忆,而是考察机制理解、场景落地与工程权衡。本文以五条主线(集合、并发、JVM、异常、新特性)为地图,强调“结论+机制+场景+代价”四层回答法,直击HashMap树化、线程池调优、Android-JVM差异等高频深水区,助你从背题党蜕变为真懂原理的工程师。
免费试用