-
使用@ControllerAdvice统一处理异常,通过自定义BusinessException区分业务与技术异常,结合@ExceptionHandler对不同异常返回对应状态码,并记录日志以提升排查效率。
-
Java的Base64类仅用于二进制与ASCII文本转换,非加密工具;禁用sun.misc.BASE64Encoder,须改用java.util.Base64并显式指定UTF-8字符集。
-
接口是契约声明而非模板,只定义行为(方法签名、常量、default/静态方法),不提供实现;解耦依赖接口而非具体类,需配合依赖注入(如构造器注入、工厂、ServiceLoader、Spring@Autowired)落地;default和private方法影响演进自由度,小而专的接口更利于组合与隔离;测试暴露设计缺陷,异常应抽象为业务语义而非技术细节。
-
NEW表示线程对象已创建但未调用start();RUNNABLE指已就绪或正在运行(含OS调度队列中等待);BLOCKED特指因synchronized锁竞争而挂起。
-
public可在任意位置访问,private仅限声明类内部使用,protected允许同包内所有类或不同包的子类自身实例访问(不可通过父类引用调用),默认修饰符仅限同包访问。
-
Scanner.nextLine()读不到输入是因为前序的nextInt()等方法未消费换行符,导致nextLine()立即读取空字符串;应在其后加scanner.nextLine()清缓存,或统一用nextLine()配合parseXXX转型。
-
CLASSPATH是Java中用于指定类文件和JAR包查找路径的环境变量或命令行参数。通过环境变量可全局设置,如Windows用分号分隔路径,Linux/macOS用冒号;推荐使用命令行-cp参数按需配置,避免影响全局。编译运行时需正确指定路径,注意当前目录用“.”表示,空格路径加引号。未设置时默认查找当前目录,现代开发建议使用Maven、Gradle等工具自动管理依赖,减少手动配置错误。
-
Java多线程通过JVM调度Thread对象在操作系统线程上并发执行,共享堆和方法区资源,各线程拥有独立栈空间。创建线程需调用start()方法,由JVM请求系统创建原生线程并绑定,直接调用run()仅为普通方法调用。线程生命周期包括NEW、RUNNABLE、BLOCKED/WAITING/TIMED_WAITING及TERMINATED状态。Java内存模型(JMM)规范线程与主内存、工作内存间的交互,解决可见性、原子性和有序性问题,通过synchronized、volatile、final及锁机制防止
-
首先安装JDK,Ubuntu用apt、CentOS用yum或dnf安装OpenJDK,或手动部署OracleJDK;接着配置JAVA_HOME、PATH和CLASSPATH环境变量并生效;然后通过java-version、javac-version和echo$JAVA_HOME验证安装;最后部署Web项目,安装Tomcat并放置WAR文件至webapps目录,启动服务并访问对应端口确认运行,同时开放防火墙端口,可配置systemd实现自启。
-
不推荐使用Thread.stop(),因其强制终止线程会释放锁导致数据不一致;应采用协作式中断,通过interrupt()设标志、检查isInterrupted()或捕获InterruptedException后安全退出。
-
JavaBean需满足公共类、无参构造、私有属性、getter/setter及序列化;其命名规范要求普通属性用get/set前缀,布尔类型优先is前缀,内省机制依此解析属性名。
-
答案:Java中BlockingQueue常用实现包括ArrayBlockingQueue(有界数组队列,支持公平策略)、LinkedBlockingQueue(链表结构,高吞吐)、PriorityBlockingQueue(按优先级排序)、DelayQueue(延迟获取)、SynchronousQueue(无缓冲,直接交接)和LinkedTransferQueue(支持传输控制)。根据场景选择:限流选Array、吞吐选Linked、优先级选Priority、延迟选Delay、高效传递选Synchrono
-
安装配置Git并验证版本,设置用户信息;2.在IntelliJIDEA中启用Git支持并确认路径;3.初始化本地仓库,连接远程并首次提交;4.创建.gitignore文件排除无关文件;5.完成集成,实现代码管理与协作。
-
Java环境变量配置错误最常见的是JAVA_HOME、PATH、CLASSPATH混淆或设置不全,如JAVA_HOME误指JRE目录、PATH漏配%JAVA_HOME%\bin,或未处理Windows路径空格;须确保安装JDK而非仅JRE,并验证java-version与javac-version。
-
私有构造方法用于控制对象创建,防止外部直接实例化,确保通过静态方法获取实例,常用于单例模式和对象池技术,提升安全性与性能。