• git基本使用

    git有什么用如果你使用Word写过长篇大论,那你一定有这样的经历: 想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的文档目录变得杂乱不堪。 过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。 看着一堆乱七八糟的...
  • 从大脑到手脚:深度解析 AI 生态的核心名词

    在人工智能技术飞速发展的今天,我们已经从单纯的“聊天机器人”阶段,迈向了更加复杂、智能的“AI 智能体(Agent)”时代。通过下图,我们可以清晰地看到一个现代 AI 系统是如何由核心大脑、交互指令、行动工具以及连接协议构成的。 本文将梳理并解读图中出现的关键 AI 名词。 核心大脑:AI 模型如果把 AI 系统比作一个人,**模型(LLM)**就是它的“灵魂”和“大脑”。 不管是 GPT...
  • Java序列化详解

    如果我们需要持久化 Java 对象,比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。序列化需要使用到序列化器 在Java中,Serializer(序列化器)是一个广义的概念,指的是将对象状态转换为可存储或可传输格式的过程的工具或组件。它并不是特指某一个框架,而是一种设计模式或功能,可以由不同的库或框架提供。 Java提供了内置的序列化机制(实现j...
  • 从JVM的内存结构出发,探究Java的值传递

    1.Java中只有值传递相较于其他程序设计语言(比如 C++、 Pascal)提供的两种参数传递的方式,在 Java 中只有值传递。 值传递:方法接收的是实参值的拷贝,会创建副本。 引用传递:方法接收的直接是实参的地址,而不是实参内的值,这就是指针,此时形参就是实参,对形参的任何修改都会反应到实参,包括重新赋值。 2.一段Java程序是如何运行的在讨论Java的值传递之前,先来看看一段J...
  • JMM及其相关

    Java 内存模型(Java Memory Model,简称 JMM)是 Java 并发编程的基础。它不是真实存在的物理内存布局,而是一套由 Java 虚拟机(JVM)定义的规范和协议。 JMM 决定了一个线程对共享变量的写入何时对另一个线程可见,旨在屏蔽硬件和操作系统的内存访问差异,实现 Java 程序在各种平台下一致的并发行为。 1. 为什么需要 JMM?在现代计算机体系中,为了弥补 C...
  • Redis中缓存的穿透,击穿,雪崩

    1. 缓存穿透现象: 指查询一个根本不存在的数据。缓存中没有,数据库中也没有。由于数据库里查不到,也就没法写回缓存,导致每次请求这个“不存在”的数据都要去冲击数据库。 诱因: 恶意攻击(故意查询不存在的 ID)或业务逻辑失误。 后果: 数据库压力激增,甚至崩溃。 解决方案: 布隆过滤器 (Bloom Filter): 在缓存之前增加一个屏障,记录所有可能存在的 Key。如果布隆过滤器判...
1