-
推荐用DateTimeFormatter而非SimpleDateFormat,它线程安全、不可变、支持ISO与自定义模式,需通过ofPattern、ISO常量或ofLocalizedDateTime等静态工厂创建,不可new;format/parse需类型匹配,时区字符串须用ZonedDateTime/OffsetDateTime解析,应staticfinal复用。
-
静态变量必须用static修饰且只能在类体中声明,属于类而非实例,内存分配在类加载的准备阶段,所有实例共享,存在线程安全与内存泄漏风险。
-
用Swing因JDK8–17默认支持、无需额外配置,组件命名直白、布局简单、单文件可运行;解析算式需过滤非法字符、用双栈法计算、捕获除零异常;按钮事件须清空输入、校验小数点、禁用无谓setEnabled;StringBuffer拼接高效且便于退格与括号校验。
-
Eclipse创建DynamicWebProject不自动生成index.jsp,需手动在WebContent或webapp下新建;部署路径、JDK版本、web.xml版本及依赖冲突是JSP运行失败的四大主因。
-
volatile解决可见性和有序性问题:确保线程修改对其他线程立即可见,并禁止指令重排序;但不保证原子性,无法用于i++等复合操作。
-
判断质数只需循环到√n而非n/2,因最小非平凡因子必≤√n;超过后仅为此前因子对的镜像,n/2会多迭代近一倍,大数时显著拖慢;实操用(int)Math.sqrt(n)作上限,或用i*i≤n避免浮点误差。
-
UnsupportedOperationException出现在操作不被支持时,常见于不可变集合修改、Arrays.asList()限制、自定义未实现方法等场景。例如List.of()创建的列表调用add会抛出该异常。应通过创建可变副本、检查文档或捕获异常来处理。自定义类中可主动抛出以提示不支持的操作,提升代码透明度与维护性。
-
答案:基于Servlet+JSP+JDBC实现用户注册登录,需设计用户表并加密存储密码;注册时校验数据、检查用户名唯一性并用BCrypt加密;登录时通过查询数据库并比对哈希密码,验证成功后创建会话;同时应使用PreparedStatement防SQL注入、校验输入、启用HTTPS等安全措施。
-
答案:用Java开发小型社交应用可行,需合理设计架构并选择技术栈。1.聚焦核心功能:用户注册登录、发布动态、关注系统、信息流展示及点赞评论;2.推荐SpringBoot+MySQL+Redis+OSS技术组合;3.设计user、post、follow、like、comment五张主表;4.关键逻辑如信息流按关注列表查动态并缓存;5.安全方面采用BCrypt加密与JWT鉴权。从小处着手,逐步优化性能与细节。
-
Netty主从Reactor架构通过EventLoop串行化替代线程池实现线程安全,bossGroup仅需1线程负责accept,workerGroup默认CPU×2负责IO处理,Channel绑定固定EventLoop保障无锁。
-
getOrDefault能避开NullPointerException,因为它在key不存在时直接返回指定默认值而非null,避免后续调用空对象方法触发异常;但需注意key为null、泛型擦除导致的类型不匹配及默认值语义歧义等问题。
-
直接继承spring-boot-starter-parent是最省心的选择,它预设Java版本、编译插件、依赖管理及资源过滤规则;不用则需手动声明所有starter版本,易引发ClassNotFoundException或行为不一致。
-
throw用于方法体内主动抛出异常对象,throws用于方法签名声明可能抛出的异常类型;二者分工明确,常配合使用:底层用throw抛出异常,上层用throws声明并向上传递。
-
重载方法必须在同一个类中定义,判断依据仅为参数列表(数量、类型、顺序),与返回值无关;调用在编译期按变量声明类型绑定,不跨类追溯,泛型擦除可能引发重载冲突。
-
答案:图书库存盘点功能通过循环与文件流读取CSV格式数据,统计库存并输出结果。使用BufferedReader逐行解析图书信息,split(",")拆分字段,while循环累计数量或预警,再用PrintWriter写入统计结果,需注意资源关闭与异常处理。