-
Java中==比较引用(或基本类型值),equals()比较内容;重写equals()须遵循自反性、对称性、传递性、一致性和null安全原则,并必须同步重写hashCode()。
-
必须用synchronized而非volatile的场景是需保证复合操作原子性时,如i++、多变量协同更新(如银行转账),因volatile不保证原子性,而synchronized可锁住整个临界区确保串行执行。
-
答案:开发Java简易CMS需采用MVC三层架构,使用Servlet+JSP+MySQL实现文章与分类管理及登录验证。核心包括JDBC操作、Filter拦截、中文编码处理与分页功能,建议用PreparedStatement防注入并集成富文本编辑器提升体验。
-
Java项目JDK兼容性问题应通过项目级隔离解决:确认已装JDK路径,用Maven/Gradle指定编译版本,IDE中同步设置ProjectSDK、Module语言级别和RunConfiguration的JDK,必要时再卸载新JDK。
-
TreeMap能自动按键排序因其基于红黑树实现,支持自然序或自定义Comparator排序,适用于需有序键的场景。
-
Python的set不支持软删除,因其基于哈希表、无状态字段;业务中需用dict、双set或封装类模拟,注意恢复逻辑、性能及运算一致性。
-
运行java-version并查看java.vendor和java.vm.name:OracleJDK显示“OracleCorporation”和“JavaHotSpot(TM)64-BitServerVM”,OpenJDK发行版显示对应厂商名(如EclipseFoundation)和“OpenJDK64-BitServerVM”。
-
static字段+私有构造非万能单例,因类初始化即创建实例,不适用于依赖外部资源或需延迟加载的场景;DCL必须用volatile防半初始化;枚举单例线程安全但无懒加载;Springsingleton是容器级而非JVM级。
-
强制类型转换用于显式转换数据类型,包括基本类型转换可能造成精度丢失,如double转int;引用类型需用instanceof确保安全向下转型,避免ClassCastException。
-
类的依赖关系指一个类使用另一个类的服务,表现为参数传递、实例创建或调用静态成员,而耦合描述类间依赖程度,高耦合导致修改扩散,低耦合提升模块独立性;为降低耦合,应遵循依赖倒置原则(DIP),使模块依赖抽象接口,里氏替换原则(LSP)确保继承合理,接口隔离原则(ISP)避免臃肿接口,开闭原则(OCP)支持扩展而不修改源码;实践中通过接口编程、依赖注入、工厂模式和合理分层实现低耦合,如业务层依赖DAO接口而非具体数据库实现,最终使系统更灵活、可维护。
-
抽象类用于划清组件边界,强制子类实现抽象方法以保障契约,支持共享状态与逻辑复用,但不可实例化;需避免构造器调用抽象方法、硬编码配置及空实现,默认实现应合理使用super调用。
-
接口引用指向实现类对象,运行时根据实际对象调用对应方法。例如Animal接口有Dog和Cat两个实现类,通过Animalanimal=newDog()或newCat()声明对象,调用animal.makeSound()时分别输出“汪汪”和“喵喵”。将不同实现类对象存入List<Animal>集合后遍历调用,同样实现多态行为,新增动物类型无需修改调用代码,符合开闭原则。核心是接口类型统一操作不同实现,方法调用在运行时动态绑定,体现多态性。
-
Java写简单爬虫核心是发请求→取响应→解析→存数据:用HttpURLConnection或HttpClient发请求并设User-Agent、超时等;用Jsoup解析HTML提取内容;存本地文件并去重;遵守robots.txt、控制频率、处理异常。
-
LocalDate仅含年月日,LocalDateTime含年月日及时分秒,二者均无时区、不可变、线程安全;用途不同:生日等纯日期用LocalDate,订单时间等需精确到秒用LocalDateTime。
-
Arrays.fill能填满基本类型数组,问题常出在引用类型共享、索引边界误解或扩容未赋值;copyOf和copyOfRange均遵循左闭右开规则,且均为浅拷贝。