-
答案是掌握JavaIO流需区分字节流和字符流:字节流以byte为单位,适用于图片、音频等二进制文件,使用FileInputStream和FileOutputStream进行读写;字符流以char为单位,专用于文本处理,通过FileReader和FileWriter自动处理编码,避免乱码;为提升性能,应使用BufferedInputStream、BufferedOutputStream及BufferedReader、BufferedWriter等缓冲流,其中BufferedReader的readLine()
-
Java中List、Set、Map均为接口,需用ArrayList、HashSet、HashMap等实现类实例化;add()、put()语义不同:List追加/插入、Set去重返回boolean、Map覆盖返回旧值;遍历时修改须用Iterator.remove();自定义Mapkey须重写hashCode()和equals()。
-
Java17引入密封类,Java21扩展支持密封接口,通过sealed关键字与permits明确限定实现者,并要求每个实现者用final、sealed或non-sealed修饰,配合switch模式匹配实现编译期穷尽性检查。
-
正确方式是仅添加junit-jupiter依赖,版本推荐5.10.2,配合Surefire3.2.5+插件;需避免JUnit4混用,测试类须public非final,方法publicvoid且加@Test;推荐搭配AssertJ提升断言可读性。
-
线上压测需用CountDownLatch实现齐发式并发、CyclicBarrier支持多轮脉冲爆发、Semaphore控制瞬时并发上限,并须绕开直连生产库、未标识流量、监控缺失及无熔断等风险。
-
一个类可实现多个接口以扩展功能,如Drone实现Flyable和Camera接口,需重写所有抽象方法;若存在同名default方法,则必须显式覆盖解决冲突,从而实现灵活解耦的设计。
-
JavaWeb项目配置模板引擎核心是选型、引入依赖、注册处理器、配置路径和渲染逻辑;推荐Thymeleaf,SpringBoot通过spring-boot-starter-thymeleaf自动配置,默认路径src/main/resources/templates/,返回字符串视图名即映射HTML文件,支持Model传参与URL重写。
-
✅推荐写法是<TextendsComparable<?superT>>,表示T实现了Comparable<?superT>,能与自身或父类实例比较,确保compareTo类型安全;如Collections.sort()所用。
-
弱变量缓存通过WeakReference包装值并配合ReferenceQueue实现自动清理,适用于依附短命对象的场景,避免内存泄漏。
-
最常用方式是使用UUID.randomUUID()生成128位唯一标识,该方法线程安全且基于随机数生成版本4的UUID,适用于大多数业务场景。
-
BitSet.previousSetBit()从指定位置向左查找最近true位,返回最大索引i(i≤fromIndex)使bitSet.get(i)为true;fromIndex<0或无匹配时返回-1,典型用法是配合length()倒序遍历所有set位。
-
ArrayList适合随机访问但插入删除慢,底层为动态数组,get/set为O(1),add/remove中间位置需整体拷贝;LinkedList适合头尾增删但随机访问为O(n);Vector和Stack已过时;CopyOnWriteArrayList适用于读多写少场景,ArrayDeque性能优于LinkedList。
-
本文详解如何将Flux收集为完整数据(如List),再无缝衔接Mono操作,避免doOnComplete副作用陷阱和then().zipWhen()逻辑失效问题,提供可复用、响应式友好的最佳实践。
-
本文详解如何在Java中高效判断任意长度的正整数字符串(可能远超long范围,如21位以上)是否为2的幂,避免数值溢出,不依赖BigInteger或外部库,通过字符串模拟乘法或位运算思想实现。
-
MySQLroot密码不生效因volume残留导致初始化跳过;Java应连服务名而非localhost;需等待MySQL就绪再启动Java;buildcontext路径错误致镜像构建失败。