-
正确声明和使用变量与常量是Java编程基础。1.变量需指定类型和名称,建议初始化并采用驼峰命名法;2.常量用publicstaticfinal定义,名称全大写加下划线分隔;3.尽量缩小变量作用域,避免魔法值,优先使用基本数据类型,集合中选用包装类。
-
List.of和Map.of是Java9引入的不可变集合工厂方法,不支持null元素或键值,返回私有不可变类实例,调用add/remove抛UnsupportedOperationException;适用于默认参数、配置项、测试断言等只读场景。
-
Collections.frequency统计元素频次依赖equals逻辑相等,要求目标类正确重写equals(及hashCode),对null安全但时间复杂度O(n),不支持数组和Stream,需先转为Collection。
-
IntelliJIDEA实现保存即编译需三步协同:1.开启Settings→Compiler→Buildprojectautomatically;2.在Registry中启用compiler.automake.allow.when.app.running;3.校准模块Outputpath与构建路径一致(如Maven项目应为target/classes)。
-
必须用logger.error(String,Throwable)传异常对象,否则丢失堆栈;日志配置需含%ex或%xEx才输出堆栈;资源关闭异常不可吞没;ERROR仅用于影响稳定性的异常,校验类失败用WARN。
-
Java中默认构造方法仅在类未显式定义任何构造方法且非匿名类、接口或枚举时由编译器自动生成,具有与类相同的访问修饰符并隐式调用super()。
-
Collections.indexOfSubList用于查找子列表在主列表中首次出现的起始索引,基于equals方法进行元素比较,要求顺序完全一致,未找到返回-1,空子列表视为存在于索引0处。
-
Tomcat是轻量级Servlet/JSP容器,非通用Web服务器;支持动态资源处理但静态资源性能弱;需正确配置JAVA_HOME;部署方式有webapps、外部路径+XML、server.xml三类,后者应谨慎修改。
-
答案是统一配置JAVA_HOME和PATH环境变量可解决Java版本冲突。首先明确JAVA_HOME指向JDK根目录,供开发工具使用,而PATH决定命令行调用的Java版本;通过java-version、wherejava和echo%JAVA_HOME%检查当前配置;进入系统环境变量设置,将JAVA_HOME设为选定JDK路径(如C:\ProgramFiles\Java\jdk-17),在PATH中删除所有独立Java路径并新增%JAVA_HOME%\bin;最后重新打开命令行窗口验证java-versi
-
当任务可递归分割、无外部依赖且CPU密集时才用ForkJoinTask;I/O、锁竞争或小任务场景应选ExecutorService+Runnable/Callable。
-
Java中+号的行为取决于紧邻操作数类型:左侧为String或已字符串化时执行连接,否则执行算术加法;从左到右结合,顺序影响结果,如"a"+1+2得"a12",而1+2+"a"得"3a"。
-
Java中无真正只读集合,Collections.unmodifiableXXX()仅提供不可修改视图,底层仍可变;需防御性拷贝(如newArrayList()后包装)或使用List.of()等不可变实现才能确保安全。
-
答案:通过定义Book类和筛选方法,实现基于类型、评分、年份的图书推荐。系统使用ArrayList存储书籍,遍历集合并应用多条件过滤输出匹配结果,支持扩展如排序、用户交互等功能。
-
HashMap本质是“数组+链表/红黑树”,通过hashCode()定位桶、equals()判定键重复,put/get依赖确定性三步链路:计算哈希值→位运算得索引→equals()比对确认键。
-
在IntelliJIDEA中可添加log快捷模板:Settings>Editor>LiveTemplates>Java>新建模板,缩写log,模板文本为privatestaticfinalLoggerlogger=LoggerFactory.getLogger($CLASS_NAME$.class);,变量CLASS_NAME设为className()并勾选Skipifdefined,作用域选Java:declaration。