java教程技术文章
-
Java引用类型指类、接口、数组等非基本类型,变量存储对象地址而非数据本身;分为强、软、弱、虚四种,强度递减,影响GC回收策略,用于缓存、防内存泄漏、资源清理等场景。374 收藏 -
Stack类是Vector的子类,实现LIFO栈结构,提供push、pop、peek、empty和search方法;尽管其线程安全,但现代Java推荐使用ArrayDeque替代以获得更好性能。233 收藏 -
long字面量必须加L/l后缀以避免溢出和类型误判:整数字面量默认为int,超范围需显式标注;推荐大写L防混淆;各进制超int值均须加L。201 收藏 -
Java数组赋值有静态初始化、动态初始化、数组间引用赋值及工具类赋值四种方式:静态初始化直接指定元素并推断长度;动态初始化先定长再逐个赋值,默认值自动填充;数组间赋值为引用传递,需用Arrays.copyOf()等复制副本;Arrays.fill()可批量设相同值。257 收藏 -
Path比File更灵活,能跨平台处理路径逻辑;Files类封装90%以上基础IO操作,提供walk()高效遍历和清晰异常体系。303 收藏 -
异常栈包含异常类型、调用链、根因和被抑制异常,通过printStackTrace或日志框架输出,分析时应定位首层错误、识别根因并结合行号排查,利用IDE或APM工具提升效率。164 收藏 -
ArrayList默认初始容量是10Java8及之后版本中,newArrayList()创建的实例,底层elementData数组默认长度就是10。这不是“懒加载”——构造时就分配了数组,只是内容为空。容易误解的是“懒加载”这个词:ArrayList没有延迟分配底层数组的逻辑;只有带参构造且传入0时(如newArrayList(0)),才会用一个共享的空数组对象(EMPTY_ELEMENTDATA),真正首次add()时才扩容到1,再按1.5倍增长。但无参构造不走这条路。184 收藏 -
不是必须,但publicstaticfinal是定义常量的标准写法:public提供访问,static确保类级共享,final保证不可变;其中基本类型和String字面量为编译期常量,其余为运行期初始化。475 收藏 -
同步机制的本质是“互斥+内存可见性保障”,通过加锁清空本地缓存、解锁强制刷回主内存来保障可见性、原子性和有序性;synchronized锁对象分别是this、Class对象或指定obj;ReentrantLock需在finally中显式unlock;锁升级由MarkWord状态动态控制,含偏向锁、轻量级锁和重量级锁。151 收藏 -
无符号右移(>>>)将整数二进制位序列整体右移,高位恒补0,不考虑符号位,使负数转为非负大整数;需基于补码理解,注意类型提升、移位量取模及不可用于取绝对值。330 收藏 -
不能直接替换,必须在构造ThreadPoolExecutor时显式传入PriorityBlockingQueue,且需注意其不支持null、无公平性保证;队列初始化后不可变,须用newThreadPoolExecutor(...,newPriorityBlockingQueue())创建。489 收藏 -
匿名内部类适用于一次性无状态事件处理器,如按钮点击监听;需注意局部变量必须是effectivelyfinal,避免内存泄漏和复用问题;复杂逻辑应改用命名类或Lambda。305 收藏 -
-Xmx与-Xms设为相同值可减少GC频率,因避免了运行时堆内存动态扩容触发的FullGC和并发周期,同时防止元空间分配失败及启动期频繁停顿。285 收藏 -
Java用POI导出Excel卡顿的核心原因是写法不当导致内存暴涨、GC频繁或IO阻塞,应使用SXSSFWorkbook流式写入、复用样式与字体、关闭自动刷新、优化SQL及分批处理。480 收藏 -
准确率应逐字符比对并统计相同字符数,忽略末尾空白但保留原文空格;耗时用System.nanoTime()计算并转为秒;核心逻辑需封装为独立方法返回TypingResult;中文标点需高亮提示而非自动替换。442 收藏