-
流式按行提取应避免一次性加载全量字符串:Python用io.StringIO+for循环+及时清理引用;Java用String.lines()惰性流;PHP用php://memory+fgets模拟流式读取。
-
利用FutureTask状态机“一键提取异步业务运行期指纹”,即通过反射读取其volatile字段,实时捕获NEW→COMPLETING→NORMAL/EXCEPTIONAL等状态轨迹、耗时、异常根因等结构化快照,实现无侵入、轻量级、可追溯的运行期监控。
-
nextLine()“跳过”输入是因为nextInt()等方法不消费换行符,导致nextLine()立即读到残留的\n而返回空字符串;正确做法是统一用nextLine()配合parseXxx()解析,或在nextInt()后加sc.nextLine()清除缓冲区。
-
应优先使用组合而非继承,因继承仅适用于“是”关系(如Car是Vehicle),而“有”关系(如Car有Engine)须用组合;滥用继承导致ClassCastException、空实现、维护困难等问题,且易违反Liskov替换原则。
-
DISTINCT是SQL中用于返回唯一不同值的关键字,作用于SELECT子句中所有指定列的整行组合去重,而非单列独立去重;基本语法为SELECTDISTINCTcolumn1,column2FROMtable_name;支持与WHERE、COUNT等结合使用,但忽略NULL值且可能影响查询性能。
-
StringTable是哈希表,不自动去重,仅通过字面量加载或显式调用intern()才插入条目;intern()在JDK7+存引用而非复制对象,滥用会导致哈希冲突、内存泄漏及性能下降。
-
Collections.addAll()不能初始化空集合,只能向已创建的可变集合(如ArrayList)批量添加元素;正确做法是先创建集合实例,再调用该方法。
-
ZGC采用彩色指针而非“深色指针”,其核心目标是实现亚毫秒级暂停,回收对象堆内存而非“变量”,不追求“秒级回收”。
-
Java中不能靠抛异常实现优雅退出,因为异常机制非流程控制工具,会掩盖错误、破坏调用栈、干扰监控;应使用System.exit(int)明确退出意图,或采用分层返回与外部信号协调。
-
Java字节码增强不能直接为已有对象添加属性,只能在类级别新增字段,使新创建对象拥有该字段;因对象内存布局由Class结构在加载时固定,运行时无法扩展单个对象内存块。
-
Java8引入默认方法允许接口定义具体实现,使用default关键字声明,默认方法可被实现类继承或重写。例如:publicinterfaceMyInterface{voiddoSomething();defaultvoidprintInfo(){System.out.println("这是接口的默认实现");}}实现类MyClass可直接调用printInfo()而无需重写。当类实现多个含同名默认方法的接口时,必须显式重写以解决冲突,如Impl类需重写hello()并指定A.super.hello()或B
-
Linux文件权限八进制表示(如755)本质是三个3位二进制数拼接,每位对应r=4、w=2、x=1的开关状态,天然适配位运算;755即111101101,分别表示用户rwx、组r-x、其他r-x,位或(|)添加权限、位与加取反(&~)清除权限才是安全操作方式。
-
AtomicLongFieldUpdater可用于原子更新volatilelong字段,避免对象封装开销,适用于高并发场景下的计数器、状态标志等细粒度控制,需注意字段可见性、非静态及正确初始化。
-
子线程崩溃导致应用无响应,因其静默退出使依赖状态未更新、回调未发出、资源未释放;setUncaughtExceptionHandler仅对调用它的线程实例生效,须在start()前设置,且不可捕获主线程异常。
-
ArrayList的elementData声明为transient是为了跳过JVM默认序列化,仅序列化size及有效元素,避免冗余null占位导致体积膨胀、语义失真及兼容性风险,并为自定义writeObject/readObject提供前提。