java教程技术文章
-
异常信息必须包含上下文,不能只抛newRuntimeException("出错");应拼入关键变量、状态或输入值,并用带cause的构造函数保留原始堆栈;日志级别需匹配异常性质,WARN用于业务校验失败,ERROR用于系统级故障。401 收藏 -
标记接口是无方法的类型标签,用于运行时识别并触发自定义序列化或克隆策略;它语义明确、零开销,优于注解和trait,但需配合手动类型检查使用。362 收藏 -
短路运算符仅在左操作数确定整体结果时跳过右表达式:&&左为false、||左为true时生效;需确保左操作数稳定快速且分布利于提前终止,避免异常、副作用或耗时操作置于左侧。298 收藏 -
确保安装JDK并配置JAVA_HOME;2.下载Gradle二进制包并解压;3.设置GRADLE_HOME和PATH环境变量;4.运行gradle-v验证安装成功。201 收藏 -
Map的replaceAll方法可高效批量更新值,通过BiFunction函数式接口对每个键值对的值进行替换,支持数值计算、字符串处理等场景,如涨薪10%或添加用户名前缀,该方法直接修改原Map,需注意避免null返回及并发修改问题。298 收藏 -
submit()返回Future可获取结果或取消任务,execute()无返回值且异常易静默;shutdown()等待任务自然完成,shutdownNow()尝试中断并清空队列;CachedThreadPool易因无限建线程导致OOM。346 收藏 -
应初始化计数器为0,循环条件设为retry_count<max_retries,成功时break,失败时计数器自增,避免末尾判断导致多试一次或初始化错误。324 收藏 -
Java9起支持接口中privatestatic方法,用于封装仅限接口内部静态方法复用的工具逻辑,避免重复代码、增强内聚性且不破坏封装。219 收藏 -
绝大多数“找不到类”问题源于类路径配置错误,需依次检查模块依赖(Scope为Compile)、源码/资源目录标记、输出路径设置,刷新Maven/Gradle依赖,核对运行配置的module选择及JDK版本匹配。163 收藏 -
ProtocolException:HTTP表明请求违反HTTP协议规范,常见于手动设置请求头/体、setDoOutput(true)未配setDoInput(false)、误设Content-Length或Transfer-Encoding、空body却启用输出、或Android端响应行不合规。475 收藏 -
G1通过将堆划分为2048个可动态角色的Region实现精细化回收,停顿时间目标为软约束并依赖历史数据预测,MixedGC基于各Region存活率而非老年代整体使用率触发,配置不当易引发FullGC或性能下降。337 收藏 -
JavaScript的%是求余而非取模,导致负数索引错误;应使用((i%n)+n)%n映射到[0,n)区间,注意防御n=0和浮点索引。407 收藏 -
单纯用System.currentTimeMillis()配合Random无法绝对保证唯一性,因毫秒级时间戳在快速调用或时钟回拨时易重复,需叠加随机数和进程/线程标识;推荐组合时间戳+6位随机数+PID,或直接使用Files.createTempFile、UUID等更可靠方案。303 收藏 -
Gradle项目需显式配置Java17:Gradle7.0+用java{version=JavaVersion.VERSION_17},旧版用sourceCompatibility='17'与targetCompatibility='17',并确认org.gradle.java.home指向正确JDK路径。338 收藏 -
<p>Java中生成[min,max]闭区间随机整数最推荐用Random.nextInt(max-min+1)+min或ThreadLocalRandom.current().nextInt(min,max+1),避免重复创建Random实例。</p>464 收藏