-
do-while循环是“先执行后判断”的直到型循环,循环体至少执行一次;语法为do{...}while(布尔表达式);,末尾分号不可省略;适用于用户输入验证、游戏主循环等需至少执行一次的场景。
-
Java线程的6种状态不是并列关系,而是有明确进入/退出条件Java线程状态(Thread.State)共6种:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED。它们不是靠“设置”切换的,而是JVM根据线程实际执行行为自动变更——你调用wait(),线程就进WAITING;锁被占着又想进同步块,就卡在BLOCKED;线程跑完run()方法,自然变成TERMINATED。常见误解是以为能用代码“强制设为RUNNABLE”,其实没有thread.s
-
选RecursiveTask还是RecursiveAction取决于是否有返回值:有结果用RecursiveTask(需指定泛型并return值),无结果用RecursiveAction(compute()返回void);二者均为ForkJoinTask子类,不可直接实例化抽象父类。
-
LockSupport是Java中用于线程阻塞与唤醒的核心工具类,位于java.util.concurrent.locks包下,其核心方法为park()和unpark(Threadthread)。park()使当前线程阻塞,直到其他线程调用该线程的unpark方法或线程被中断;unpark()则向指定线程发放许可,允许其继续执行,且可先于park()调用生效。相比wait/notify机制,LockSupport更灵活安全,不依赖synchronized关键字,也不会因顺序问题导致死锁。它基于单一许可机制
-
HandlerInterceptor的preHandle不生效主因是未注册到SpringMVC拦截器链,需用@Component标记并实现WebMvcConfigurer重写addInterceptors方法显式注册。
-
百度翻译API需实名认证后在fanyi-api.baidu.com创建“通用”类型应用获取APP_ID和SECRET_KEY;签名须用MD5(APP_ID+q+salt+SECRET_KEY)生成,q要URL编码,salt每次随机;请求用POST、设UTF-8头,语言代码如"jp";注意52001超时、54000缺参、空q导致trans_result为空;限流2QPS,密钥勿硬编码。
-
魔术数字是指未解释、无来源、突然出现且反复复用的字面量,如if(status==3),导致修改困难、易出错、理解成本高;应按语义位置、上下文命名、类型安全(优先枚举)三原则替换为常量,并聚焦HTTP码、业务规则值、协议字符串等高风险项。
-
compareTo返回负数表示当前字符串字典序小,0表示相等,正数表示字典序大;具体值为首个不同字符Unicode码点之差,不可用==-1判断小于关系。
-
魔数须为4字节固定int型(如0x12345678)以区分非法连接,版本字段占1字节便于平滑升级;长度字段紧随其后且定长4字节,表示消息体字节数并校验上限;消息体首选Protobuf,避免嵌套过深,不加应用层分隔符。
-
用sdkman管理JDK最省心:Linux/macOS执行curl安装后,用sdklist/install/use/default切换版本;Windows推荐choco安装+IDE或.tool-version文件指定版本,避免JAVA_HOME错误导致编译失败。
-
Java二维数组传参传递的是外层数组对象的引用,修改元素或某行引用会影响原数组,但重赋值参数变量无效;需深拷贝才能隔离修改。
-
Java聊天室核心是用ServerSocket配合多线程实现并发连接:accept()后立即启新线程处理客户端,避免阻塞;广播消息需异步、容错、不阻塞;客户端须分离读写线程;严格按行协议处理TCP粘包。
-
Maven项目中的依赖并非无条件加入运行时类路径,其实际行为取决于打包类型、作用域(scope)及所用插件——编译期默认包含compile和provided依赖,而运行时是否包含则由构建目标(如JAR/WAR/SpringBoot可执行包)决定。
-
try-catch后代码是否继续执行取决于异常是否被捕获及catch块内操作:未捕获或主动throw则终止,否则继续执行后续语句;finally几乎总执行,但System.exit()或JVM强制终止会跳过;多catch须子类在前、父类在后;空catch极危险,应记录日志或明确注释。
-
@SneakyThrows通过编译期字节码操作将受检异常强制转为RuntimeException抛出,绕过javac检查;需正确配置Lombok、作用于具体方法且匹配异常类型,避免滥用破坏API契约与异常可追溯性。