-
final类不能被继承,因为JVM在加载时直接禁止子类符号引用解析,编译阶段即报错“cannotinheritfromfinalclass”,属字节码层面设计约束,非运行时限制。207 收藏 -
公平锁按线程等待时间顺序分配锁,非公平锁允许插队;2.公平锁通过newReentrantLock(true)创建,保证FIFO,避免饥饿但性能较低;3.非公平锁为默认方式,直接尝试CAS获取锁,吞吐量高但可能引发线程饥饿;4.synchronized是非公平锁;5.非公平锁因高效成为默认推荐,选择取决于公平性与性能权衡。206 收藏 -
printStackTrace()可快速输出完整堆栈到System.err,适用于开发调试;需判空避免NPE;获取字符串应使用StringWriter+PrintWriter;日志中须传Throwable实例而非字符串拼接。205 收藏 -
本文介绍如何在SpringDataMongoDB中优雅处理可为空的查询参数,避免因传入null导致条件误匹配;推荐使用MongoTemplate+Criteria动态构建查询,实现真正“忽略空参数”的灵活过滤。205 收藏 -
TimeUnit.convert返回0或结果错误本质是整数截断:底层用Math.floorDiv或整除丢弃小数,如999毫秒转秒得0;需按需选用Duration保留精度或手动换算。205 收藏 -
Java字面量是代码中直接写出的固定值,共六类:整型、浮点型、字符型、字符串型、布尔型和null,分别有严格格式与用途,用于初始化、传参、计算、类型推断及常量池优化。205 收藏 -
Java中MessageDigest生成SHA-256哈希结果长度不对,因digest()返回字节数组而非十六进制字符串,需用String.format或Hex.encodeHexString转换并补零至64位;实例不可复用,须reset()后才能再次update;字符串输入必须指定UTF_8编码。204 收藏 -
finally里写复杂逻辑危险,因其执行时机不可控且不参与返回值计算,易掩盖异常、篡改返回值或引发死锁;禁用close()、修改返回值、I/O操作、启线程等高危行为。204 收藏 -
LongAdder在高并发频繁更新时比AtomicLong快,因其采用分段计数减少CAS自旋争抢;适用于监控计数等弱一致性场景,不适用于强一致序列号生成。204 收藏 -
答案:Java中转义字符以反斜杠开头,用于表示特殊字符如\t(制表符)、\n(换行)、\"(双引号)等,常用于字符串格式化、包含引号、路径表示等场景,需注意正确使用避免编译错误。204 收藏 -
CopyOnWriteArrayList核心用途是多线程下边读边写不抛ConcurrentModificationException,靠读写分离和写时复制实现遍历安全,但遍历看不到新写入元素,适用于读多写少场景。203 收藏 -
静态变量能被类直接访问,因其在类加载时分配内存并存储于方法区,所有实例共享且无需对象即可通过类名访问。203 收藏 -
不一定。父类static{}块仅在子类初始化时直接或间接引用父类静态成员且父类未初始化时才执行;构造器中的super()调用才保证父类构造器先于子类执行。203 收藏 -
javac用于编译.java文件为.class字节码,java用于运行编译后的类。2.编译使用javac命令生成class文件,运行使用java命令启动JVM执行主类。3.需注意类名与文件名一致、正确设置类路径及包结构下的运行方式。203 收藏 -
Java只有值传递,参数均为副本:基本类型传值拷贝,对象类型传引用地址拷贝;String因不可变性使赋值无效,而ArrayList等可变对象可通过引用副本修改内容。203 收藏