-
应使用Graphics2D类,它支持抗锯齿、透明度和旋转文字,而Graphics不适用于BufferedImage验证码生成,且需设置渲染提示并调用dispose()防止内存泄漏。
-
isEmpty()仅判断长度是否为0,等价于length()==0;isBlank()(Java11+)判断是否为空或全为Unicode空白字符,语义更严格。二者均需先判null防NPE。
-
Java中File类可创建删除本地文件目录,但仅抽象路径、不处理内容;mkdir()建单层目录,mkdirs()建多级,createNewFile()建文件需先exists()判断;delete()仅删空目录或文件,非空目录须递归删除;路径用/或\,建议绝对路径;JDK7起推荐NIO.2的FilesAPI。
-
NumberFormat.getCurrencyInstance()不支持动态切换货币符号,其显示的货币符号和小数位由Locale默认关联的货币决定;若需按货币代码(如"EUR")动态控制,应使用setCurrency(Currency.getInstance("EUR"))或Java12+的NumberFormatter。
-
StringTable是哈希表,不自动去重,仅通过字面量加载或显式调用intern()才插入条目;intern()在JDK7+存引用而非复制对象,滥用会导致哈希冲突、内存泄漏及性能下降。
-
Thread.stop()被弃用是因为它强行注入ThreadDeath异常,破坏锁状态与对象一致性,导致中间态暴露和逻辑损坏;安全停止应依赖volatile标志与interrupt()协作退出。
-
LambdaMetafactory不是替代反射的工具,而是将反射调用转化为接近直接调用的高性能桥梁,通过MethodHandle+invokedynamic生成函数式接口实现,绕过安全检查、参数装箱与方法查找,使调用耗时从35.8ns降至2.9–3.2ns。
-
子类中定义与父类同名的成员变量会隐藏父类变量,但两者仍独立存在;通过子类对象访问时默认使用子类变量,如Childc=newChild();System.out.println(c.value)输出20,而((Parent)c).value输出10;可使用super关键字访问被隐藏的父类成员,如super.value;此现象仅适用于成员变量,方法同名则为重写,静态成员同名属于静态隐藏;建议避免同名字段以提升代码可读性。
-
首先定义Student类封装学生信息,再通过ScoreManager管理学生列表并实现按学号和姓名查询,接着使用Scanner构建菜单式交互界面,最后可扩展文件存储、HashMap优化查询及图形界面提升体验。
-
没有运行时区别,但语义和可读性差异明显:int[]a符合Java类型声明习惯,inta[]是C风格易误读;声明多个变量时int[]a,b为两个数组,inta[],b则b是int变量;初始化{1,2,3}仅限声明时使用,newint[5]支持运行时长度;类字段默认null,局部变量未初始化直接使用编译报错;方法参数用int[]更安全,利于工具识别与跨语言兼容。
-
答案:通过Socket编程实现Java群聊功能,服务端用多线程管理客户端连接并广播消息,客户端双线程处理收发,使用线程安全集合存储输出流,确保消息实时同步。
-
thenCombine的触发条件是两个CompletableFuture都正常完成,任一未完成或异常完成则返回的Future保持未完成;合并函数按(本体结果、other结果)顺序执行,且默认同步运行。
-
nav是HTML5语义化导航元素,用于包裹网站级或页面级主要导航链接,提升SEO和无障碍访问;应配合ul/li列表使用,并通过aria-label区分多个nav的用途,样式与交互需由CSS/JS实现。
-
Collections.singletonMap()返回不可变Map,所有修改操作(如put、remove)均抛UnsupportedOperationException;它接受null键值,而Java9+的Map.of()禁止null,且二者实现与序列化特性不同。
-
n&1能判断奇偶是因为二进制最低位决定奇偶性:偶数末位为0,奇数末位为1;该操作在补码下对正负数均可靠,且为单周期硬件指令,比%2更高效。