-
LocalDate和LocalDateTime是Java8引入的不可变、线程安全的日期时间类,分别表示无时区的日期和日期时间,支持创建、解析、加减、格式化及与其他类型互转操作,结合DateTimeFormatter可处理自定义格式,推荐用于新项目。
-
SpringBoot2.6+必须使用springfox-boot-starter3.0.0+替代springfox-swagger2,因老版本未适配Spring5.3参数解析机制;@EnableSwagger2已废弃,需改用@EnableOpenApi,并确保包扫描、注解位置及泛型处理正确。
-
递归方法需定义基准情况和递归调用,如阶乘中n==0或1时返回1,否则调用factorial(n-1),通过类名直接调用,注意避免无限递归导致栈溢出。
-
通过private字段和公共方法实现封装,确保对象状态安全;2.私有化balance和accountNumber防止直接访问;3.提供带校验的withdraw等方法控制状态变更,维护数据一致性。
-
POJO是无框架依赖的普通Java对象,非角色而是设计状态;DTO用于跨层数据传输,VO专用于视图渲染;Entity绝不直接返回前端,需通过DTO/VO转换隔离。
-
Java项目应外置配置到application.properties或application.yml,SpringBoot用@Value/@ConfigurationProperties注入,非Spring项目用Properties+ClassLoader加载;多环境通过application-{profile}.properties和spring.profiles.active激活;敏感信息用jasypt等工具加密,密钥须通过环境变量管理。
-
Java格式化输出依靠System.out.printf()和String.format(),基于Formatter类,使用%开头的格式说明符控制类型、宽度、精度等;常用如%d(整数)、%f(浮点数)、%.2f(2位小数)、%s(字符串)、%c(字符)、%b(布尔值)、%tY(年份)。
-
ThreadDeath是Thread.stop()主动抛出的Error,非系统崩溃,但会破坏线程状态、跳过finally、导致资源泄漏和锁不一致;stop()已废弃,应改用interrupt()+响应式退出机制。
-
保。LinkedHashSet保证迭代顺序与插入顺序一致,底层用双向链表维护序列、HashMap实现O(1)查找;add()决定顺序,contains()/remove()不改变链表结构;适用于去重且需保序场景,非线程安全。
-
自定义ExceptionReporter专用于DEBUG=True时渲染HTML错误页,需继承django.views.debug.ExceptionReporter并重写get_traceback_html()或get_template_data()等方法,再通过settings.py中DEFAULT_EXCEPTION_REPORTER指定路径。
-
GuavaCache不使用软引用,其淘汰机制基于自定义LRU、权重和过期时间,与JVM引用队列无关;Caffeine仅在weakKeys()/weakValues()中可选使用弱引用,用于解决特定内存泄漏问题。
-
Java文档注释支持基础HTML标签如<p>、<br>、<ul>、<ol>、<li>、<code>、<pre>、<strong>、<em>、<table>等,JDK8+可正确渲染;<font>、<center>已废弃,<img>和<a>需谨慎使用;<script>、style属性、<iframe>等被过滤或不支持。
-
Java19虚拟线程虽极大提升了I/O密集型应用的并发吞吐,但其共享有限载体线程(carrierthreads)的机制,使得不当的CPU密集型操作会阻塞整个虚拟线程调度池;本文详解通过专用线程池隔离CPU工作负载的实践方案。
-
异常链通过将底层异常作为原因嵌入新异常,实现错误信息的封装与追溯。在Java中,使用Throwable类提供的带cause参数的构造函数或initCause()方法,可在抛出业务异常时保留原始异常。例如,在Service层捕获SQLException后,可封装为UserServiceException并传入原异常,形成链条。打印堆栈时会自动显示“Causedby”层级结构,便于定位根因。自定义异常应提供publicMyException(Stringmessage,Throwablecause)构造函数并
-
注解声明必须用@interface而非interface,自动继承Annotation接口;成员只能是无参方法,返回值限基本类型、String、Class、枚举、注解及对应数组;@Target和@Retention需配对使用,RUNTIME保留策略方可反射获取;成员默认值须用default关键字指定。