-
Go中chan不能直接做双向内存映射,它只是协程间通信的抽象管道,数据通过拷贝传递,不暴露内存地址,也不支持mmap或共享内存语义。218 收藏 -
线程池根据corePoolSize、workQueue和maximumPoolSize三者配合决定新建线程、排队或拒绝:先尝试用核心线程执行,满则入队,队满且线程数未达maximumPoolSize才新建线程,否则拒绝。218 收藏 -
ConcurrentHashMap的size()返回近似值,因采用baseCount与counterCells分片计数,遍历时不阻塞写操作,且存在扩容、CAS延迟及缓存伪共享等导致统计滞后;JDK8起推荐使用mappingCount()。218 收藏 -
因为Cipher是抽象类,必须通过Cipher.getInstance()指定算法、模式和填充方式才能获取实例,直接new会因未初始化关键字段而抛NullPointerException。218 收藏 -
flip()是写完转读的唯一安全切换动作:将limit设为当前position、position重置为0,不改变capacity和底层数组,使后续get()能从头读取已写入的全部数据。217 收藏 -
MyBatis嵌套查询(select)触发N+1问题,因其先查主表1次,再对每条主记录执行1次子查询;例如查100个订单关联用户,共执行101条SQL,导致连接池耗尽、慢查询增多。217 收藏 -
compactconstructor是入库前验证的唯一可靠入口,因其是record唯一可在对象创建时介入校验的合法位置,且必须在this()调用前完成检查;record无初始化块或post-constructor钩子,组件final初始化后不可修改或拦截。217 收藏 -
必须正确配置Maven或Gradle依赖及路径:Maven需在pom.xml添加junit-jupiter,Gradle需testImplementation和testRuntimeOnly;测试类放src/test/java、以Test结尾、public非final;@Test方法须publicvoid无参数;IDE需关闭自动构建并委托给构建工具。216 收藏 -
Java反射可通过getGenericType()等方法获取字段、方法参数、返回值及父类继承关系中声明的泛型实参,但局部变量和new表达式中的泛型信息因类型擦除无法获取。216 收藏 -
答案:安装JDK需下载适配Windows的.msi包(如Temurin),运行安装程序并配置JAVA_HOME环境变量及Path,最后通过java-version和javac-version验证成功。216 收藏 -
synchronized锁的是对象而非代码块或方法名,本质是给对象加监视器锁;实例方法锁this,静态方法锁类对象,同步代码块锁指定非null对象;锁自动获取释放,可重入但易因耗时操作拖长锁周期,JVM会按竞争动态升级锁。216 收藏 -
FileWriter追加需显式传true,否则覆盖;中文应使用OutputStreamWriter指定UTF-8;多线程需加锁或改用Files.write。216 收藏 -
在屏幕坐标系中,gridi对应坐标(x=j,y=i);初始化需防行列顺序颠倒、负/零尺寸异常及稀疏数据滥用密集数组。216 收藏 -
ServiceLoader.load()找不到实现类的根本原因是META-INF/services/下配置文件名非接口全限定名或未置于classpath根路径;需确保文件存在、内容为实现类全限定名、模块中声明uses/provides。216 收藏 -
STR模板处理器不适合拼装SQL,因其不防SQL注入、无参数绑定与类型检查、属不稳定的预览特性;仅限完全可控的静态内容组装,生产环境应使用PreparedStatement或ORM。216 收藏