-
Java集合框架核心是解决数组长度固定、类型不安全、操作冗余三大硬伤;它通过接口抽象数据关系(Collection为“一堆东西”,Map为“映射规则”),泛型保障编译期类型安全,但实现类切换可能引发隐性性能退化。
-
正则表达式是用于匹配、查找、替换文本模式的工具,核心作用包括:一、匹配指定格式字符串;二、替换目标内容;三、分割字符串;四、验证用户输入;五、提取并分组结构化信息。
-
Java构造方法必须与类名完全一致(大小写敏感),无返回类型,可重载;new对象时按固定顺序初始化;无显式构造方法时编译器自动添加无参构造,但一旦定义任一构造方法则默认无参构造消失;this()和super()必须位于构造方法首行且互斥。
-
答案:&&是短路与,左边为false时右边不执行;&是逻辑与且不短路,两边均计算,还可用于按位与操作。
-
强制统一JDK版本需三步:1.IDEA中Project和各Module的SDK与LanguageLevel须手动一致;2.pom.xml中用maven-compiler-plugin显式设source/target;3.通过maven-enforcer-plugin校验JAVA_HOME及构建环境。
-
本文介绍使用ConstraintLayout替代RelativeLayout,通过约束规则与比例偏移实现多Lottie动画在不同设备上始终精准居中、相对对齐的响应式布局方案。
-
浅拷贝仅复制基本类型字段和引用地址,导致原对象与拷贝对象共享子对象;2.深拷贝递归复制所有引用对象,实现完全独立;3.实现方式包括重写clone方法、构造函数拷贝、序列化反序列化及第三方库工具;4.简单对象可浅拷贝,复杂嵌套结构需深拷贝;5.推荐通过构造函数或工厂方法实现,避免引用共享问题。
-
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避免浮点误差。
-
Java中应优先用URI解析和构造资源标识,因其语法严格、不触发网络请求;仅在发起HTTP连接时才用URL或HttpClient,且后者直接接受URI参数。
-
答案:封装通过private字段和getter/setter保护数据,继承使子类复用并扩展父类功能,多态通过方法重写实现同一接口不同行为。示例中Animal类封装name和age,Dog和Cat继承Animal并重写makeSound方法,TestAnimals中父类引用指向子类对象,运行时动态调用对应方法,体现多态性。三者结合提升代码安全性、复用性与扩展性。
-
本文详解如何使用Java原生HttpURLConnection获取服务器返回的HTTP状态码(如200、404、500),并安全处理成功与错误响应,避免IOException误判,同时提供现代替代方案建议。
-
Java异常本身不阻塞线程,未捕获异常会终止线程而非阻塞;真正导致阻塞的是异常处理中同步操作、阻塞I/O或显式等待等行为。
-
答案:通过BufferedWriter和FileReader将聊天记录以追加模式写入本地文件,实现简单持久化。1.使用FileWriter(true)追加内容;2.BufferedWriter写入带时间戳的消息;3.BufferedReader逐行读取历史记录;4.封装为ChatLogger工具类,适用于小型项目或学习场景,无需数据库支持。