-
Java注解是一种为代码提供额外元数据的特殊“标签”,不影响程序逻辑,但能被编译器、JVM或其他工具读取和处理。1.注解用于声明式编程,提升代码表达力、可维护性和自动化程度;2.作用包括编译时检查、替代XML配置、生成代码或文档;3.自定义注解开发涉及定义注解类型、添加元注解(如@Target、@Retention)、定义成员属性、应用注解、运行时解析;4.解析方式主要有反射机制和编译时注解处理器;5.常见问题包括@Retention策略错误、@Target范围不明确、@Inherited误解、注解成员类
-
ThreadLocal跨线程失效是设计使然,并非bug;InheritableThreadLocal仅在newThread时有限继承;生产环境应使用TransmittableThreadLocal(TTL)配合任务包装与线程池适配实现可靠透传。
-
Java集合框架提供统一高效的数据结构,核心接口包括Collection、List、Set、Queue和Map;常用实现有ArrayList、LinkedList、HashSet、TreeSet、HashMap、LinkedHashMap、TreeMap;选择依据是主要操作需求;线程安全需用Collections工具类或concurrent包;注意初始化容量、null限制及迭代器失效问题。
-
Java文件上传核心是处理multipart/form-data请求,SpringBoot用MultipartFile快速实现,原生Servlet需ApacheCommonsFileUpload;须重命名文件、校验类型、限大小、隔离上传目录。
-
Hashtable一放null就抛NullPointerException,因其所有public修改方法均在执行时立即调用Objects.requireNonNull(key/value),将键值非空作为设计契约;containsKey(null)和containsValue(null)则始终返回false。
-
静态方法适用于无状态、纯函数型工具逻辑,如日期格式化;应避免隐含依赖、副作用及测试障碍,优先采用依赖注入与接口设计。
-
StringRedisTemplate.opsForValue()存不进数据最常见原因是未调用set()或连接/配置错误;set()是同步的,需检查Redis连通性、序列化器(应使用StringRedisSerializer)、键过期设置及是否误用RedisTemplate。
-
“Java成品项目”指已开发完成、可直接运行且具备完整功能的Java项目,含建表SQL、配置文件、真实接口及示例页面,区别于空骨架脚手架;其核心是高完成度但强技术栈绑定,使用时需重点核查pom.xml硬编码、TODO数量及配置安全性。
-
Java的char是无符号16位整数(0–65535),不等价于Unicode字符;增补字符(U+10000+)需用代理对表示,应使用codePointAt、codePoints等API处理码点而非charAt。
-
在Flink滚动处理时间窗口(如5分钟)中,SinkWriter.Context.timestamp()无法获取窗口起始/结束时间;必须使用ProcessWindowFunction才能准确访问窗口边界。
-
运算符结合性指相同优先级运算符的计算方向,Java中多数运算符左结合(如算术运算),赋值、一元及三元运算符右结合,正确理解可避免表达式误读。
-
先编译Pattern再用Matcher匹配,可高效处理字符串。例如匹配邮箱:使用Pattern.compile()定义规则,matcher.find()遍历结果,输出所有邮箱地址。处理多行文本时添加Pattern.DOTALL标志,使.匹配换行符,结合非贪婪模式.*?提取日志中的错误信息和用户。复杂结构推荐分组捕获并注释group编号含义,提升可维护性。启用UNICODE_CHARACTER_CLASS支持中文字符识别。性能优化方面,避免嵌套量词防止回溯灾难,优先使用非贪婪模式,固定前缀可用indexOf
-
类字段初始化在super()后、constructor体执行前,this已存在但仅能访问已初始化字段;constructor内赋值在super()返回后,this完全就绪;字段初始化不触发getter/setter,复杂逻辑应放constructor中。
-
不能直接替换,必须在构造ThreadPoolExecutor时显式传入PriorityBlockingQueue,且需注意其不支持null、无公平性保证;队列初始化后不可变,须用newThreadPoolExecutor(...,newPriorityBlockingQueue())创建。
-
本文详解如何正确编写一个static修饰的twoSum方法,解决输入为字符串数组、目标值为整数的场景,并修复语法错误、类型不匹配及输出异常等问题。