-
Arrays.binarySearch用于在已排序数组中高效查找元素,1.调用形式为intindex=Arrays.binarySearch(array,key),返回目标索引或负值;2.未找到时返回-(插入点)-1,表示应插入位置以维持有序;3.可指定搜索范围fromIndex到toIndex(左闭右开),如Arrays.binarySearch(arr,1,4,3)在子区间查找;4.支持基本类型和对象数组,对象比较需实现Comparable或使用Comparator,如String.CASE_INSE
-
插入排序通过将数组分为已排序区和未排序区实现,每次取未排序区首元素插入已排序区合适位置;Java中用循环与元素后移完成,适合基本有序数据。
-
Java格式化输出依靠System.out.printf()和String.format(),基于Formatter类,使用%开头的格式说明符控制类型、宽度、精度等;常用如%d(整数)、%f(浮点数)、%.2f(2位小数)、%s(字符串)、%c(字符)、%b(布尔值)、%tY(年份)。
-
Java学生成绩排序需实现Comparable或提供Comparator;List用sort()或Collections.sort(),数组用Arrays.sort();并列名次需手动计算rank=i+1;大数据量优先就地排序。
-
Math.log()返回自然对数(ln),非常用对数(log₁₀);需用Math.log(x)/Math.LN10或封装log10函数;Math.exp()是计算e^x的最优方式,比Math.pow(Math.E,x)更准更快;log与exp互为反函数但浮点下存在微小误差。
-
OOP是用类、对象、封装、继承、多态映射现实世界的结构和行为逻辑;Java通过抽象实体、边界权限、分类关系与行为差异,还原人类认知方式。
-
Java5引入的staticimport仅适合导入高频、无歧义、语义稳定的静态常量(如Math.PI、TimeUnit.SECONDS、StandardCharsets.UTF_8),禁止通配导入或用于第三方/自定义易变常量,因其仅是编译期语法糖,滥用会损害可读性与可维护性。
-
结论:应使用if-elseif阶梯结构实现业务准入与等级计算,关键在于条件顺序需按业务优先级从高到低、严格到宽松排列,确保互斥、全覆盖、有兜底;多个独立if会导致重复执行、逻辑冲突。
-
Java中用while+AtomicInteger实现无锁计数器需基于CAS自旋重试:先get当前值,计算新值,再compareAndSet;失败则重读重试。循环内须幂等、无副作用,条件判断必须在循环内紧邻get以保证原子性。
-
String.matches()不适合直接校验手机号,因其每次调用都重新编译正则且要求全字符串匹配,无法处理带空格、前缀等干扰的合法输入;应先用replaceAll("\D","")清理非数字字符,再校验长度和号段。
-
LocalDate.plusMonths()基于日历月逻辑自动处理跨年和月份天数差异:①自动进位跨年,如2023-12-15加3月得2024-03-15;②月末日期智能对齐,如2023-01-31加1月得2023-02-28;③需注意边界截断,推荐用with(TemporalAdjusters.lastDayOfMonth())确保月末语义。
-
要准确查看G1的Region类型实时分布,必须启用-XX:+PrintRegionStats,它在每次GC暂停结束时输出全堆Region物理计数快照,如“eden:256,survivors:16,old:240,humongous:16”,真实反映各类型Region数量;而GC日志中的[Eden:128M->0B(128M)]仅显示逻辑容量变化,无法体现Region物理类型的动态流转。
-
答案是通过JDBC连接MySQL数据库需引入驱动,建立连接,执行SQL并释放资源。具体步骤为:1.添加mysql-connector-java依赖;2.使用DriverManager获取Connection;3.通过Statement或PreparedStatement执行查询或插入;4.用try-with-resources自动关闭资源,确保安全高效。
-
Arrays.copyOfRange()是Java中高效提取数组子段并生成独立副本的核心工具,它不共享原数组内存,天然适合作为隔离的子业务处理单元基础;方法签名Arrays.copyOfRange(T[]original,intfrom,intto)中from包含、to不包含,越界或from>to抛ArrayIndexOutOfBoundsException,返回全新数组;可结合泛型与函数式接口封装通用切片执行模板,提升复用性与线程安全性。
-
EnumSet没有complementOf()方法,因其设计追求轻量高效,且补集可由EnumSet.allOf()配合removeAll()一行实现;正确做法是先获取全集再移除原集合元素。