-
ArrayIndexOutOfBoundsException是运行时异常,发生在访问数组越界时,可通过try-catch捕获或索引检查预防。
-
Integer.parseInt返回int并抛NumberFormatException,Integer.valueOf返回Integer缓存对象(-128~127);二者对null/空串处理一致,均抛异常;性能差异仅在高频场景显著;比较值须用equals()。
-
Arrays.asList()返回的List不能add/remove,因其是Arrays内部静态类ArrayList(非java.util.ArrayList),未重写增删方法,仅提供数组视图,结构性修改抛UnsupportedOperationException。
-
Java中Map接口用于存储键值对,常用实现类有HashMap、LinkedHashMap、TreeMap和ConcurrentHashMap,各自适用于不同场景。HashMap基于哈希表实现,查找、插入、删除平均时间复杂度为O(1),不保证顺序,适合大多数无需排序的场景;LinkedHashMap通过双向链表维护插入顺序,适用于需顺序遍历或实现LRU缓存的场景;TreeMap基于红黑树,按键自然顺序或自定义比较器排序,适用于需要有序键的场景,操作时间复杂度为O(logN);ConcurrentHashM
-
synchronized通过加锁实现线程同步,修饰实例方法时锁当前对象(this),修饰静态方法时锁类Class对象,使用代码块可指定更细粒度的锁对象,推荐私有final对象以确保唯一性,避免使用String常量或null,合理控制同步范围以平衡线程安全与性能。
-
Postman调试Java后端接口需确保服务已启动并暴露HTTP接口,正确配置请求方法、URL、Headers和Body,并处理Session、CSRF、参数校验等常见限制。
-
Java开发环境初始化需安装LTS版JDK(如17或21)、正确配置JAVA_HOME与PATH、选用IDEA/Eclipse等IDE并验证运行;再补全Maven、Git等工具。
-
Java中用BigDecimal做精确计算的核心是避免double构造器、显式指定精度和舍入模式、统一用字符串构造数值;否则会因浮点误差导致“精确地保存了错误”;比较应使用compareTo()而非equals()。
-
多态提升代码灵活性、可扩展性和可维护性,通过父类引用调用子类方法,实现运行时动态绑定。①提高复用性:通用方法处理所有子类对象,如Animal的makeSound()适用于Dog、Cat等。②增强扩展性:新增子类如Triangle无需修改原有逻辑,符合开闭原则。③降低耦合度:依赖抽象而非具体实现,模块间独立,便于团队协作与维护。
-
Java中将List转为LinkedList应使用newLinkedList(originalList)构造方法,该方式安全、非破坏性且一步到位;不可强转类型,浅拷贝需注意可变对象的深拷贝需求。
-
最常用方式是使用Jackson或Gson库。先添加对应Maven依赖,再分别通过ObjectMapper的writeValueAsString()或Gson的toJson()方法将Map转为JSON字符串,两者均几行代码即可完成转换。
-
Properties类用于读写.properties配置文件,支持键值对存储,常用load()读取、store()写入,适合Java项目配置管理。
-
选IntelliJIDEA,因其对Java生态深度集成——如javac错误内联标红、Maven自动重载、Lombok零配置识别;SpringBoot原生支持、热更新能力更强、重构更安全;Eclipse仅在特定老项目、Ant构建或定制插件场景下更优。
-
ServiceLoader是Java原生SPI加载机制,通过META-INF/services/接口全限定名查找实现类并反射实例化,实现解耦与可插拔扩展;它懒加载、不缓存、要求无参构造,适用于JDBC、日志门面等场景。
-
正确处理JavaXML解析异常需捕获SAXException、IOException和ParserConfigurationException,使用try-catch或try-with-resources确保资源关闭,并提供含行号的友好错误提示以增强程序稳定性。