-
Spring默认通过运行时异常触发事务回滚,如抛出IllegalArgumentException或NullPointerException时自动回滚,确保数据一致性。
-
抽象类必须用abstract修饰且不能被实例化,本质是“不完整的类”,用于被继承而非创建对象;含抽象方法的类必须声明为abstract,抽象方法无方法体、不可用private/static/final修饰;子类非abstract则须实现全部抽象方法。
-
hash()函数对非null键执行(h=key.hashCode())^(h>>>16)扰动以改善低位散列,null则直接返回0;数组长度需为2的幂以使(n-1)&hash等价于取模并保留高位信息。
-
Java中实现对象克隆最直接的方式是实现Cloneable接口并重写clone()方法,默认为浅拷贝;必须实现Cloneable因它是JVM识别可克隆的标记接口,否则抛CloneNotSupportedException;正确重写需声明public、调用super.clone()、处理异常;浅拷贝下引用字段共享,需手动深拷贝;现代开发更推荐拷贝构造器等替代方案。
-
父类构造方法中调用被子类重写的方法是危险但默认发生的多态行为;应避免在构造过程中依赖可被重写的行为,最稳妥方式是将方法设为final/sealed或推迟多态逻辑至构造完成后的显式初始化方法。
-
CountDownLatch是Java中用于线程同步的工具,通过倒计数机制实现主线程等待多个子线程完成任务后再继续执行,适用于一次性等待场景,不可重置,需确保每个线程调用countDown()且建议放在finally块中。
-
安装JavaJDK需下载JDK11或17等LTS版本,安装时自定义路径如C:\Java\jdk-17,配置JAVA_HOME系统变量并添加%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin到Path,最后通过cmd运行java-version和javac-version验证安装成功。
-
Java里写0b二进制字面量,到底支持哪些版本?Java7开始才支持0b(或0B)前缀,低于这个版本直接编译报错:error:illegalstartoftype。别在Java6项目里试,也别指望AndroidAPI19以下能跑——那会儿的Dalvik还不认这个语法。0b1010是合法的,值为10;0B1111_0000也合法(下划线分隔符Java7起同步支持)不能写0b后跟非0/1字符,比如0b102报错:error:integern
-
<p>减法比较会因整数溢出导致排序逻辑翻转,如Integer.MAX_VALUE-Integer.MIN_VALUE结果为-1;应使用Integer.compare(a,b)避免溢出,它通过条件判断返回-1/0/1,性能好且安全。</p>
-
Java中==对基本类型比较值,对对象比较引用地址;对象内容比较应使用equals(),且重写equals()时必须重写hashCode()以保证哈希集合的正确性。
-
Java环境搭建后系统变慢主因是配置不当。一、JVM内存设置不合理致频繁GC,应合理设定-Xms与-Xmx;二、后台Java服务如更新程序占用资源,需禁用非必要启动项;三、开发工具如IDE高耗资源,应调优其配置并减少自动构建;四、低配硬件或机械硬盘加剧卡顿,建议使用SSD并匹配64位JDK。通过优化参数、关闭冗余进程、监控资源使用,可有效控制性能影响。
-
Windows下InvalidPathException常因路径含非法字符(如:、|、?、*)或保留名(如AUX)触发,Paths.get()会主动校验而newFile().toPath()不校验,跨平台需统一用Paths.get()并清洗不可见字符。
-
多态的核心是父类引用指向子类对象并结合方法重写,通过动态绑定在运行时确定具体方法调用。1.继承与重写是基础,子类继承父类并重写方法;2.向上转型允许父类引用指向子类对象,如Animala=newDog();3.JVM通过虚方法表实现运行时方法绑定,根据实际对象类型调用对应方法;4.多态提升代码扩展性与可维护性,符合开闭原则,支持通用方法处理不同子类对象。
-
parallelStream是Collection接口提供的并行流方法,利用Fork/Join框架将流操作分解为多线程任务以提升大数据计算性能,适用于计算密集型场景,使用时需注意线程安全、任务粒度和I/O阻塞等问题。
-
Android设备获取实时位置应优先使用FusedLocationProviderClient,需动态申请定位权限并检查定位开关;传感器与位置数据需通过SystemClock.elapsedRealtimeNanos()统一时间戳对齐;离线数据暂存推荐内存队列+NDJSON文件追加写;后台持续跟踪须用前台服务并声明FOREGROUND_SERVICE_TYPE_LOCATION。