自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 JAVA程序开发笔记——进阶版

最佳实践:若已知数据量较大(如从数据库导出万级数据),应在初始化时指定容量(new ArrayList<>(10000)),避免频繁扩容带来的性能开销。· 代码演示:自定义对象作为 Key 时,必须重写 hashCode() 和 equals() 方法,否则会导致内存泄漏(数据无法被再次找到)。· 核心原理:当链表长度 \ge 8 且数组长度 \ge 64 时,链表转为红黑树(时间复杂度由 O(n) 优化为 O(\log n))。// 必须捕获异常,否则业务无感知。

2026-06-15 17:13:21 324

原创 JAVA语言程序开发课程随堂笔记

堆转储分析:生产环境内存溢出时,用jmap -dump:format=b,file=heap.hprof <pid>导出堆栈,再用Eclipse MAT(Memory Analyzer Tool)分析是谁占用了内存。· 索引失效场景:对索引字段使用函数(如WHERE DATE(create_time)=...)或隐式类型转换(WHERE phone=138...,字段是varchar),索引会失效。· GC选择:追求高吞吐用Parallel GC,追求低延迟(如API接口)用G1或ZGC。

2026-06-15 17:11:55 154

原创 JAVA语言程序开发第15课(难度升级)

Java 的 FileChannel 提供的 transferTo 方法,利用底层操作系统的 sendfile 系统调用,实现了零拷贝:数据直接从内核缓冲区拷贝到 Socket 缓冲区(甚至直接由 DMA 拷贝到网卡),完全不经过用户空间,大幅降低了 CPU 占用和带宽延迟,是构建高性能文件服务器(如 Netty)的关键技术。传统的 BIO(同步阻塞 I/O)在面对大量空闲连接(如大量保持连接但不发送数据的移动端 App)时,会为每个连接分配一个独立的线程,导致内存和上下文切换开销巨大。

2026-06-14 20:08:13 287

原创 JAVA语言程序开发集合框架底层、并发编程高级特性、IO 模型优化以及 JVM 初步调优

count++,这行代码分解为“读-改-写”三步,volatile 只保证了读和写的可见性,但在修改过程中,其他线程可能已经修改了 count,导致值变小。· NIO (Non-blocking I/O) 本质: Java 的 NIO 对应操作系统的多路复用 I/O(select/poll/epoll),通过一个线程监控多个通道的“准备就绪”状态。· 树化条件: 当链表长度 > 8 且数组长度 ≥ 64 时,链表转换为红黑树(TreeNode),提升查询效率从 O(n) 到 O(\log n)。

2026-06-14 20:05:32 363

原创 Java 程序开发笔记

使用 ConcurrentHashMap 代替 Hashtable 或 Collections.synchronizedMap,尤其在高并发场景下,它的分段锁(或CAS)效率远高于全表锁。· 方法返回值:不要返回 null 来代表空集合,返回空集合(如 Collections.emptyList())而非 null,避免调用方空指针。如果你写了一个只存数据的类(DTO/VO),可以告别 lombok 的 @Data。如果你的项目还在用 JDK 7 的写法,代码会显得臃肿。

2026-06-11 23:27:37 149

原创 Java 程序开发笔记:从工程效率到并发原理——“现代工程化技巧”与“底层原理进阶”

很多人认为 Record 只是 Lombok 的替代品,但它实际上提供了语义上的 “不变性” 保证,特别适合 DTO (数据传输对象) 和 Value Object (值对象)。// 注意:并不是 getUsername(),而是直接字段名。// 使用时:PayTypeStrategy.valueOf("ALIPAY").pay(100.00);

2026-06-11 23:25:37 203

原创 Java专题笔记

Java 9+ 的真正不可变集合:List.of(...)、Set.of(...)、Map.of(...),内容完全不可变。· 异常日志必须输出堆栈:log.error("查询失败", e),而不是 log.error(e.getMessage())。· 读小配置文件:Files.readString(Path.of("config.txt"))(Java 11+)。· NIO(java.nio):面向缓冲区(Buffer)、通道(Channel)、可非阻塞。

2026-06-09 23:37:48 211

原创 Java程序开发——核心升级、内存分析与编码规范

Record 类:充当“数据载体”,替代繁琐的 POJO(Plain Ordinary Java Object,简单Java对象)。),且会占用更多内存。· 一致性哈希 (Consistent Hashing):解决分布式缓存中节点增删时,大量缓存失效(缓存雪崩)的问题。· 分布式 ID 生成 (Snowflake,即雪花算法):在分库分表或分布式系统中,需要全局唯一且趋势递增的 ID。· 元空间 (Metaspace):存储类的元数据(如类名、方法信息),取代了旧版的永久代(PermGen)。

2026-06-09 23:35:28 232

原创 JAVA语言程序开发课堂笔记(进阶版)——泛型、反射与注解(框架基石篇)

Retention(CLASS) vs RUNTIME CLASS在字节码中存在但运行时不可读,RUNTIME可通过反射读取。@Retention 保留策略 SOURCE(仅源码), CLASS(字节码,默认), RUNTIME(运行时反射可见)Class<T> vs Class<?· 后果:不能new T(),不能instanceof T,不能用基本类型作类型参数。super T> T或T的父类 可读为Object,可写T及其子类。extends T> T或T的子类 只能读为T,不可写。

2026-06-08 20:27:33 182

原创 Java程序开发课堂笔记——异常、实用类与I/O流进阶

opt.ifPresent(s -> System.out.println("长度:" + s.length()));· 字符流(Reader/Writer):处理文本,自动处理字符编码(UTF-8, GBK等)。· 字节流(InputStream/OutputStream):处理二进制数据(图片、音频)。· Pattern:编译正则表达式(Pattern.compile("\\d+"))。· Scanner:方便解析类型(nextInt()等),但内部用正则,稍慢。

2026-06-08 20:26:07 186

原创 Java程序开发课程笔记

Buffer 核心属性:capacity、position、limit、mark,flip() 切换读模式,clear() / compact() 写模式。· Mockito:@Mock / @InjectMocks,when().thenReturn() 与 verify() 行为验证。· Optional:避免空指针,orElseThrow() / ifPresentOrElse()(Java 9)· PriorityQueue:小顶堆结构,offer / poll 时间复杂度 O(log n)

2026-06-07 22:21:07 235

原创 Java程序开发 软件基础——枚举、IO流、反射与注解实战

System.out.println("❌ " + method.getName() + " 失败: " + e.getCause());System.out.println("✅ " + method.getName() + " 通过");@Target({ElementType.METHOD, ElementType.TYPE}) // 可以贴在哪:方法、类。// 属性,使用时可省略value=xxx。System.out.println("优先级:" + anno.priority());

2026-06-06 16:52:18 302

原创 Java语言程序开发笔记

方法区 (Method Area):存储类结构信息(字段、方法字节码)、静态变量、常量池。super T>:T 或 T 的父类(可写入 T 类型,读取时只能用 Object)1. 计算 key.hashCode(),再扰动得到桶下标 (n-1) & hash。常见的:Predicate<T>,Function<T,R>,Consumer<T>。· 栈 (Stack):线程私有,存放局部变量、方法调用栈帧。⭐ 最佳实践:不要吞掉异常(catch(e){} 留空),这会让线上问题无法排查。

2026-06-06 16:50:07 248

原创 Java程序开发课堂笔记

原理:如果一个对象的作用域仅限于方法内部(未逃逸),JIT 编译器会将其标量替换(拆解为基本类型),直接在栈上分配。· 方案:Optional.ofNullable(user).map(User::getAddress).orElse("默认地址")。· 线程共享:堆(Heap)(存对象实例)、方法区(存类信息、常量、静态变量,JDK1.8 改为 Metaspace 元空间)。· 扰动函数:(h = key.hashCode()) ^ (h >>> 16):让高16位也参与寻址,减少碰撞。

2026-05-28 12:26:26 232

原创 Java 课堂笔记:并发集合与内存可见性

写 volatile → 读 volatile 建立 happens-before。// 两次操作间可能被其他线程插入。stop) {} // 可能永远运行。synchronized (p) { // 仅锁当前桶。锁机制 全表锁 (synchronized method) 桶级锁。· 放弃分段锁:改用 synchronized + CAS 操作。// CAS 插入成功。一、ConcurrentHashMap 的细粒度锁机制。· 锁粒度:只锁住单个桶(bucket)的头节点。// 链表或红黑树插入。

2026-05-18 18:18:06 182

原创 Java程序开发第八课(进阶版)

新建(New) → 就绪(Runnable) → 运行(Running) → 阻塞(Blocked) → 终止(Terminated)经典实现需要配合wait()、notify()/notifyAll()方法,或使用BlockingQueue简化实现。System.out.println("算术异常:" + e.getMessage());.map(String::toUpperCase) // 转换。.filter(s -> s.length() > 1) // 过滤。

2026-05-12 07:38:37 315

原创 Java程序开发第七课

异常体系:Throwable → Error(严重错误) / Exception → 运行时异常(RuntimeException,未检查)与编译时异常(如 IOException,必须处理)。· 常用操作:length 属性、遍历 (for/增强for)、Arrays 工具类 (排序 sort、转字符串 toString、二分查找 binarySearch)。· final:修饰类(不可继承)、方法(不可重写)、变量(常量,全大写如 MAX_VALUE)。)、位运算(& | ^ >>)。

2026-05-12 00:33:05 386

原创 JAVA语言程序开发课堂笔记

// 返回类型协变。public static synchronized void staticMethod() {} // 类锁。} // 必须解决冲突。> list) { // 比List<Object>更安全。public synchronized void method() {} // 实例锁。Runnable task = () -> { /* 任务 */ };

2026-04-11 00:01:07 166

原创 近期热门话题——养龙虾

近期热度解读:被称为智能体发展的“DeepSeek时刻”,能调用多AI协同执行复杂任务,让“一人公司”成为可能。深圳、无锡等多地政府已出台最高2000万元补贴政策抢抓风口。· 如何“养好”:这是给科技创业者的指南。核心是利用政策红利(算力、办公场地补贴)降低创业成本,关注技术安全风险,并依托当地产业生态(如深圳的硬件、杭州的电商)实现落地。· 🔍 解读对象:AI智能体“OpenClaw” (网络热门)

2026-03-19 00:01:02 224

原创 Java程序设计课堂笔记

小范围类型→大范围类型:byte→short→int→long→float→double。· 掌握IDE的基本使用(Eclipse/IntelliJ IDEA)· 整数类型:byte、short、int、long。· 大范围类型→小范围类型:需要添加(类型)进行转换。访问修饰符 返回值类型 方法名(参数列表) {· 浮点类型:float、double。&&(短路与)、||(短路或)、!// 增强for循环(foreach)· 学会调试程序(设置断点、单步执行)

2026-03-18 23:51:49 206

原创 Java程序设计课第一节

语言环境,语法,入门,编译基础

2026-03-11 21:51:11 282 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除