java教程技术文章
-
Java中匹配反斜杠需双重转义:字符串字面量和正则各吃一层,如匹配"."写为"\\.";推荐用Pattern.quote()自动转义;split("\.")切IP时注意空字段处理。328 收藏 -
Java中“常量”实为publicstaticfinal字段,需同时满足public、static、final;final仅保证引用不可变,不保证对象内容不可变;多值常量优先用enum。469 收藏 -
本文详解macOS(尤其是Ventura及更新版本)中使用H2嵌入式数据库时出现“Operationnotpermitted”错误的根本原因与可靠修复方法,重点解决JDBC连接路径配置不当引发的FileSystemException。107 收藏 -
parallelStream仅在数据量大、单个元素处理耗时明显(如I/O或复杂计算)时才比stream快;小集合(如size<1000)、轻量操作(如String::toUpperCase)、非RandomAccess集合(如LinkedList)、共享可变状态等场景下反而更慢或出错。258 收藏 -
正确配置依赖可提升Java开发效率。应优先使用Maven/Gradle管理依赖,在pom.xml中添加依赖项后自动导入,或手动添加JAR包为库(不推荐),并通过统一工具、定期更新、分析无用依赖和启用自动导入优化管理。115 收藏 -
AtomicLong在高并发计数场景下比synchronized更稳,因其基于CAS无锁机制,避免阻塞与上下文切换,响应达微秒级;但须正确使用incrementAndGet(),且注意硬件极限与volatile内存语义。179 收藏 -
Javasubstring需确保起始索引≥0、结束索引≤字符串长度,单参数截取至末尾,双参数左闭右开;处理emoji等需用codePointCount避免代理对截断;Java7u6后无内存泄漏。163 收藏 -
Java中用Map实现简单缓存的核心是使用ConcurrentHashMap存储键值对,并添加过期控制(如TTL时间戳校验)和容量限制(如LinkedHashMap+LRU),适用于低并发、非关键业务场景。496 收藏 -
本文详解为何“多线程顺序执行”是反模式,阐明应使用单线程串行调度(如HandlerThread、ExecutorService单线程池)替代混乱的多线程嵌套,并提供安全更新RecyclerView的最佳实践。103 收藏 -
多数业务应优先用shutdown(),它拒绝新任务但等待已有任务完成;shutdownNow()强制中断运行中线程并返回未执行任务,仅适用于超时不可接受的场景。177 收藏 -
fail-fast的核心是检测集合结构被意外修改而非并发;ArrayList的modCount在结构性修改时自增,迭代器构造时复制为expectedModCount,next()/hasNext()前比对二者,不等则抛ConcurrentModificationException。476 收藏 -
静态方法不能直接访问非静态成员变量,因其属于类而非对象实例,且静态方法在类加载时即可调用,而实例变量需对象创建后才存在;静态方法无this引用,无法定位具体实例。477 收藏 -
ReentrantReadWriteLock通过读写锁分离提升高读低写性能:读锁共享可重入,写锁独占可重入,读写互斥但读读不互斥;支持写锁降级为读锁,禁止读锁升级;适用于缓存等场景。378 收藏 -
Stream.distinct()不保证顺序,仅在有序流中保留首次出现元素;并行流下顺序失控,需用LinkedHashSet手动去重或Collectors.toMap按字段去重。234 收藏 -
subList返回原List的实时视图而非副本,其add/remove会直接修改原列表结构并引发索引位移,遍历时修改易抛ConcurrentModificationException或IndexOutOfBoundsException。403 收藏