-
size()是集合方法,length是数组属性,length()是字符串方法;集合用size(),数组用length,字符串用length(),三者不可互换。
-
成员内部类可访问外部类所有成员,适用于逻辑相关类的封装,如链表节点;静态内部类不依赖外部实例,常用于Builder模式;匿名类用于事件处理和回调,如Swing监听器;局部内部类用于方法内复杂逻辑封装。
-
必须根据操作系统和CPU架构选择匹配的JDK版本,正确设置JAVA_HOME与PATH,验证javac可用性,并在IDE中手动指定JDK路径,确保编译器、运行时与构建工具版本一致。
-
ConcurrentMap是Java中支持高并发的线程安全Map接口,其常用实现ConcurrentHashMap通过CAS和synchronized机制提供高效并发访问,具备putIfAbsent、remove、replace、computeIfAbsent、merge等原子操作方法,适用于缓存、计数器等多线程读写场景,迭代器为弱一致性,推荐在高并发环境下使用以替代同步包装的Map。
-
computeIfAbsent用于键不存在时计算并放入值,支持单层、嵌套及多级Map构建,避免null判断,提升代码简洁性与线程安全,适用于ConcurrentHashMap,常用于分组、缓存等场景。
-
首先安装JDK并配置JAVA_HOME及Path,验证java-version;接着配置Maven环境变量并运行mvn-v确认;然后通过SpringInitializr生成项目,选择构建工具、语言和依赖;最后导入IDE运行主类,访问localhost:8080验证服务。
-
使用enum关键字定义枚举类型,如publicenumDay{MONDAY,TUESDAY,...,SUNDAY};枚举可包含字段、构造方法和方法,如Color枚举关联描述信息;可在switch语句中使用,并通过values()遍历所有值,提升代码可读性与安全性。
-
Java统一参数校验核心是注解驱动+框架机制,基于JSR-303/349规范,用@Validated/@Valid触发校验,配合BindingResult或全局异常处理器统一处理;支持自定义注解、分组校验及标准化错误响应。
-
答案:Java中可通过Timer和TimerTask实现计时器,示例代码展示每秒累加并输出时间,5秒后停止;也可实现倒计时功能,注意事项包括Timer为单线程、建议用ScheduledExecutorService替代及及时调用cancel防止泄漏。
-
synchronized是Java线程同步核心机制,通过修饰方法或代码块实现互斥访问,其底层依赖对象的Monitor锁,支持可重入、自动释放,但不可中断;实际使用中应缩小同步范围、优先使用私有锁对象,并根据场景考虑并发包工具替代方案。
-
Callable能返回结果而Runnable不能:前者call()返回泛型V并支持受检异常,后者run()返回void;Callable需通过ExecutorService.submit()配合Future获取结果,不可直接用于Thread。
-
Java接口与类本质不同:接口是行为契约,只声明“能做什么”,无状态无实现;类是实体蓝图,定义“有什么”和“怎么做”,可实例化。
-
在Java中处理HttpException,关键在于理解它通常出现在使用HTTP客户端进行网络请求时发生的协议级别错误,比如404、500等状态码。这类异常多见于使用HttpURLConnection、ApacheHttpClient或OkHttp等库的场景。正确地捕获、解析和响应这些异常,有助于提升程序的健壮性和用户体验。理解HttpException的来源HttpException并不是Java标准库中的类,而是某些HTTP客户端库(如ApacheHttpClient)自定义的异常类
-
面试考察的是真实场景经验而非背诵,核心能力包括:线程安全三要素(原子性、可见性、有序性)的落地与修复;阻塞队列相比wait/notify的优势及JUC实践;线程池显式构造的必要性与参数调优;ThreadLocal在线程池中未清理导致的数据错乱风险及规避方案。
-
Avro1.10.0+默认按字段名字母序生成Schema,导致与Java源码声明顺序不一致,可能引发反序列化失败;本文详解原因、影响及兼容性解决方案。