- 博客(475)
- 资源 (33)
- 问答 (7)
- 收藏
- 关注
原创 Hadoop 历史服务器:作业跑完就消失?用它找回来
Spark 有 Spark History Server,Flink 有 Flink History Server,各管各的。作业一旦完成,它就消失了——你看不到它跑了多久、占了多少资源、失败了为什么失败。),找个已完成的作业,点 "History" 链接,能跳转到历史服务器页面说明配置成功。这条配置让 YARN Web UI 里的 "History" 链接能跳转到历史服务器。历史服务器只记录它启动之后才完成的作业。如果是启动之前就跑完的作业,它没有记录。所以历史服务器必须提前启动,作业提交时它就得在。
2026-08-31 15:33:01
37
原创 Python 循环:重复的事交给代码去做
循环的核心是"遍历"——你给我一个列表、字符串、字典、或者任何"可迭代"的东西,我一个一个取出来处理。写程序,大量的事情都是重复的——遍历列表里的每个元素、处理文件的每一行、一直等到某个条件满足。循环的核心是"等条件变 false"——你不知道要循环多少次,只知道"什么时候该停"。列表推导式底层是 C 语言实现,比手动循环快 30%-50%,而且代码更短。这个写法第一次看到可能会觉得奇怪,但在"查找某个元素"的场景下很好用——外层循环执行一次,内层循环执行完整一轮。嵌套循环:循环里面套循环。
2026-08-30 18:13:51
182
原创 YARN 日志聚集:别一台一台登录服务器查日志了
不然日志上传会失败,但 YARN 不会报明显错误,只在 NodeManager 日志里有记录。时间太长 HDFS 空间扛不住,时间太短(比如 1 天)可能还没排查完日志就被清了。在 YARN 上跑作业,每个任务分散在不同节点。每个节点单独一个目录,一个应用的所有节点日志都汇聚在一起。可能原因:日志上传还没完成(大任务的日志打包需要时间),或者上传失败了。如果任务还在跑,日志还没上传,这时候去 HDFS 里查不到。不开的话,节点宕机日志就没了,排查问题全靠运气。如果任务在不同节点重试过,每个节点都要登一遍。
2026-08-23 16:04:04
189
原创 Python if 判断:从“要不要做“到“做哪个“
语法很简单,但真正写代码的时候,怎么把逻辑组织清楚、怎么避免常见问题,还是有些门道。,在 Python 里会直接报语法错误,不像某些语言那样悄悄把条件变成赋值。Python 中,非布尔值作为条件时,会自动转换为布尔值(后面的条件成立了,就执行缩进的代码块;Python if 判断:从"要不要做"到"做哪个"有时候需要"先满足一个条件,再看另一个条件"。再复杂一点:嵌套判断,大条件里套小条件。二选一:if-else,两条路走一条。一件事,成立走 A,不成立走 B。最简单的:if,一件事要不要做。
2026-08-22 18:13:39
202
原创 Hadoop 三种运行模式:从单机调试到生产集群,一路搭过来
单机模式验证了代码逻辑,但你还不确定它在 HDFS + YARN 上能不能跑。伪分布式模式就是在一台机器上启动所有守护进程——NameNode、DataNode、ResourceManager、NodeManager 全都有,但都跑在同一台机器上。所有进程跑在单个 JVM 里,不启动 HDFS、不启动 YARN,读写本地文件系统。伪分布式的所有进程挤在一台机器上,资源争抢、单点风险——生产环境不能这样。Hadoop 依赖 Java,不管哪种模式,这一步都逃不掉。零配置,秒级启动,用来验证逻辑正确性最好。
2026-08-21 09:27:25
179
原创 Python 解析 JSON 日志:从一行数据到一份报告
模块就是干这个的:把 JSON 字符串转成字典,或者把字典转成 JSON 字符串。用法就几个函数,但真正写脚本分析日志的时候,有些细节还是得注意。现在大部分应用的日志都是 JSON 格式——每条日志是一个 JSON 对象,方便机器解析和分析。但日志分析通常用逐行处理(每行一个 JSON),因为文件可能很大,一次性加载会撑爆内存。**:日志里可能有格式错误的一行,不能因为一条坏数据让整个脚本崩溃。如果日志行有固定前缀,用正则把 JSON 部分提取出来再解析。让输出的 JSON 有缩进,方便人看。
2026-08-16 17:06:27
169
原创 Hadoop 单机环境搭建:配置文件、启动命令、验证方法,照着做就能跑
在单机必须设 1,不然 DataNode 只有一个节点,存不了 3 份,NameNode 会一直卡在安全模式。不配,MapReduce 的 Shuffle 跑不起来,Reduce 拿不到 Map 的输出数据。格式化会清空 NameNode 元数据目录,已有的数据会丢失。Hadoop 的配置,关键不在改参数,在于搞清楚"每个文件是管什么的、改了什么会影响什么"。,MapReduce 会跑在本地模式,不会用 YARN 调度。告诉 Hadoop "HDFS 在哪"、"临时文件放哪"。NameNode 没起来。
2026-08-12 15:40:38
162
原创 Python 异常处理:别让程序因为一个小错误就崩了
因为放在 try 里的所有代码都在同一个"防护罩"里,如果把后续处理也放进去,后续代码出错了会被误解为除法的错误。不是 bug 修不完,而是程序跑着跑着突然崩了,日志里一堆红字,用户看到的是"服务器错误"。自定义异常的好处是:调用你代码的人能精准地捕获和处理业务层面的错误,而不是去判断一堆。,程序直接崩溃退出,用户一脸懵。有了它,程序可以继续跑,顶多那条数据处理失败了。隐藏了代码里的 bug,本来应该修的问题变成了"程序还在跑但逻辑不对"能捕获几乎所有常见的异常,看起来省事,但。
2026-08-09 12:48:31
169
原创 HDFS 深度解析:大数据存储的“硬盘不够、单盘坏了怎么办“
每个文件/目录的元数据大约占 150 字节,如果内存是 128GB,理论上限大约是 8 亿个文件——但实际远到不了这个数。一句话总结:NameNode 管"什么东西存在哪",DataNode 管"东西本身",Secondary NameNode 帮 NameNode 整理账本。启动的时候,NameNode 把 FsImage 读到内存,然后把 EditLog 里的操作重新执行一遍,生成最新的元数据。心跳停了,NameNode 就把这个节点标记为"死了",然后把上面的 Block 在其他节点上补副本。
2026-07-12 22:40:39
233
原创 ## Python 类和对象:别背语法,先理解“模板“和“实例“的关系
打个比方:类是一张"员工入职登记表"的模板,对象就是你拿着这个模板给每个新员工填出来的那张具体表格。**私有属性的意义是"约定"而不是"强制"**——告诉使用这个类的人:别碰这个属性。是 Python 的构造方法,对象被创建的时候自动调用。:所有对象共享一份,属于类本身。的作用是"调用父类的同名方法",避免硬编码父类名,代码更好维护。Python 类和对象:别背语法,先理解"模板"和"实例"的关系。实例方法能访问实例变量和类变量,是日常写代码最常用的一种。是对象的属性,每个对象有自己的独立副本。
2026-07-06 16:41:01
189
原创 数据仓库是啥?一篇讲清楚概念和架构
数据仓库管的是"过去发生了什么",数据进去基本就不动了,专门给老板、运营、分析师看报表用的。我见过一个做用户行为分析的项目,存的是每一条点击日志,数据量爆炸,但确实能回答很细的问题。:不是按"订单系统""用户系统"来分,而是按"用户分析""销售分析"这种分析目标来组织数据。同一个用户的数据,可能来自注册系统、订单系统、客服系统,在"用户主题"下全部汇聚到一起。这篇我就按自己的理解,把数据仓库的概念、核心特征、整体架构过一遍,尽量不说黑话。"时间"是一个维度,"地区"也是一个维度,"产品品类"还是维度。
2026-06-30 15:46:19
232
原创 Python变量作用域全解析:从局部到全局,彻底掌握LEGB规则
与 Java 等语言不同,Python 的变量作用域规则更灵活,尤其在全局变量和局部变量的区分上有特殊机制。若在函数内直接修改全局变量,Python 会将其视为局部变量(创建新的局部变量),而非修改全局变量。当函数嵌套时,内层函数可访问外层函数的变量(非全局),这种作用域称为嵌套作用域。在函数内部定义的变量默认为局部变量,仅在函数执行期间存在,函数外部无法访问。在模块顶层定义的变量为全局变量,可在模块内的任何函数外访问。当内层函数返回并被外部使用时,外层函数的变量会被“记住”,这就是闭包。
2026-06-29 18:53:16
200
原创 理解Python函数的核心概念,提高编程效率
函数是 Python 中组织代码的基本单元,用于封装可重用的逻辑。与 Java 的 “方法” 类似,但 Python 函数更灵活,支持默认参数、关键字参数、可变参数等特性。Python 的参数系统极其灵活,支持 5 种参数类型,可按任意组合使用。文件,用于代码复用(类似 Java 的包)。最基本的参数类型,调用时必须按定义顺序传递。接收任意数量的关键字参数,打包为字典。:在函数外部定义,可在整个模块内访问。接收任意数量的位置参数,打包为元组。:在函数内部定义,仅在函数内有效。
2026-06-15 18:51:23
180
原创 Java AIO 详解:异步非阻塞 IO 的实现与实践
实现,将 IO 操作的全过程(数据准备 + 内核到用户缓冲区的复制)交由操作系统完成,最终通过回调函数通知应用程序结果。相比 NIO 的 “同步非阻塞”,AIO 进一步解放了应用程序的 CPU 资源,适用于高并发、IO 密集型场景。Java AIO(Asynchronous IO,异步 IO)是 JDK 1.7 引入的 IO 模型,基于 “异步非阻塞” 思想,通过。:实际生产中,基于 NIO 的框架(如 Netty)因稳定性和兼容性更优,应用更广泛。,JDK 实现存在性能问题),Windows 支持较好。
2026-06-10 21:55:55
244
原创 Python开发者必备:字典操作全面指南及性能优化
它通过键(key)快速查找对应的值(value),是处理关联数据的核心数据结构。本文将详细介绍字典的创建、操作及常用方法。在 Python 中,字典(Dictionary)是一种。(如字符串、整数、元组),列表等可变类型不能作为键。键是唯一的,若重复定义,后面的键值对会覆盖前面的。实战3:字典作为缓存(Memoization)定义,键值对之间用逗号分隔,键与值用冒号。结构的可变容器,类似于 Java 中的。访问对应的值,若键不存在则报错。:删除并返回指定键的值。:清空字典所有键值对。del 字典名[键]
2026-06-07 21:57:25
211
原创 编译时注解处理:APT 与 Annotation Processor 实战
运行,通过注解处理器(Annotation Processor)扫描源代码中的注解,执行自定义逻辑(如代码生成、校验),并输出新的源文件或资源文件。实现的技术,允许在代码编译阶段扫描和处理注解,生成额外的源文件、配置文件等,而无需在运行时通过反射处理,从而提升性能并减少手动编码。处理器可能被调用多次(每轮处理生成的文件会触发新的编译轮次),需通过。**:提供当前编译轮次中被注解标记的元素(类、方法等)。:编译期多次调用(多轮处理),扫描并处理注解,生成文件。:处理器完成工作后调用,释放资源(可选实现)。
2026-06-06 11:32:25
265
原创 Python 列表(List)与元组(Tuple)详解
在 Python 中,列表(List)和元组(Tuple)是两种常用的序列类型,用于存储多个元素。:列表是可变的(元素可修改),而元组是不可变的(元素一旦创建就无法修改)。严格来说,一个函数只能返回一个值,但是如果这个值是一个元组,效果就会和返回多个值一样了。:当数据一旦创建就不需要修改时(如存储配置项、函数返回多个值、作为字典的键)。:当需要添加、删除或修改元素时(如动态收集用户输入、存储可变更的数据集)。:将可迭代对象(如列表、元组)的元素添加到末尾。定义,元素不可修改,适合存储不需要变更的数据。
2026-06-05 22:36:07
327
原创 CentOS 7 老树开新花:从零部署 Dify 全栈应用(含 Go/Rust/GCC 升级避坑)
CentOS 7 老树开新花:从零部署 Dify 全栈应用(含 Go/Rust/GCC 升级避坑):开放 5019(API)、3000(Web)、以及中间件所需端口(如 6379、5432 等)。需要 GCC ≥ 9.3,而 CentOS 7 默认 GCC 仅为 4.8.5。:重复上述“清理 → 解压 → 构建 → 启动”流程,或封装为脚本自动化。✅ 至此,Dify 已在 CentOS 7 上完整部署。如遇问题,请优先检查依赖版本、网络连通性及配置文件路径。文件中的数据库地址、存储路径、日志目录等配置。
2026-02-07 12:56:00
564
原创 Hadoop安全模式详解
Hadoop HDFS的安全模式是NameNode启动时的一种特殊状态,主要用于保障元数据一致性和数据块可用性。该模式下系统只读不可写,NameNode会加载元数据并校验数据块副本状态,当满足最小副本比例(默认99.9%)且稳定30秒后自动退出。管理员可通过命令手动控制安全模式,常见问题包括无法自动退出(需检查DataNode状态或调整参数)和误操作进入(手动退出即可)。安全模式是HDFS保证数据完整性的重要机制。
2025-10-26 11:16:17
567
原创 CyclicBarrier和CountDownLatch
CyclicBarrier表示达到一定数量的线程才会运行;CountDownLatch每来一个线程进行减一操作,直到0为止。CyclicBarrier允许N个线程相互等待;CountDownLatch是允许1或N个线程等待其他线程完成执行。CountDownLatch不可重用,只能触发一次事件,值为0后就不可再用了。CyclicBarrier只能唤起一个任务;这两个类都在jdk的并发包中,都可以用来表示代码运行到某个点上。CyclicBarrier和CountDownLatch。
2025-09-29 16:39:47
501
原创 Hadoop RPC深度解析:分布式通信的核心机制
Hadoop RPC是分布式系统中实现高效通信的核心机制,采用四层架构设计:序列化层通过Writable接口实现高效对象转换;函数调用层利用动态代理和反射完成远程方法定位;网络传输层基于TCP/IP保证可靠通信;服务器端通过Reactor模型处理并发请求。该机制具有高效性、可靠性和易用性特点,支持HDFS、YARN等组件间的频繁交互。Hadoop RPC通过分层设计,屏蔽底层细节,使开发者能够像调用本地方法一样实现跨节点通信,成为Hadoop生态系统的重要基础。
2025-09-29 16:37:16
1215
原创 如何保证接口幂等
session中生成一个唯一标识,请求时将唯一标识写入到表单的隐藏字段中,后端判断唯一标识与session中的是否一致,一致则说明是第一次请求,处理该请求后移除session中的标识;使用重定向方式,使得提交表单后重定向到提交成功页面,避免用户刷新页面导致的重复提交,也可以消除浏览器前进后退导致的问题。使用数据库进行防止,insert时使用唯一索引,update时使用乐观锁version。通过概念得知需要多次发送同一个请求,那么多次请求的原因有哪些。使用浏览器后退按钮重复之前的操作,导致重复提交表单。
2025-09-19 16:26:22
464
原创 Hadoop 1.x 与 2.x 版本对比:架构演进与核心差异解析
Hadoop 1.x到2.x的架构演进实现了重大升级,核心改进是引入YARN框架。1.x版本中JobTracker同时负责资源管理和任务调度,存在单点故障、资源分配僵化等问题。2.x将资源管理职责拆分给ResourceManager,任务调度由各应用的ApplicationMaster负责,支持动态资源分配和高可用,解决了1.x的性能瓶颈。2.x还支持多计算框架共享集群资源,显著提升了扩展性和灵活性。对比显示,2.x在架构设计、资源利用率、集群规模支持等方面均有显著优势。
2025-09-19 16:24:41
1267
2
原创 子线程如何获取Request
有时候在进行业务处理时对于一些对于业务不那么重要且对于返回结果无关的情况会开启一个新的线程进行处理,但是在开启新线程进行处理时发现无法从RequestContextHolder中获取到当前的请求,取出来是null。这是因为RequestContextHolder中的信息都是存储在ThreadLocal中的,而ThreadLocal中的数据是使用线程进行查找的,不是该线程存储的,是无法查找到的。此时就需要将RequestAttributes对象设置为子线程共享的,在开启子线程之前。子线程获取Request。
2025-09-12 15:26:13
722
原创 Hadoop简介:分布式系统的基石与核心架构详解
Hadoop简介:分布式系统核心架构解析 Hadoop作为Apache基金会开发的分布式系统基础架构,通过HDFS和MapReduce两大核心组件解决了海量数据存储与计算问题。HDFS采用主从架构,由NameNode、DataNode和SecondaryNameNode组成,具备高容错性和高吞吐量特性。MapReduce框架将计算任务分解为Map和Reduce阶段,实现分布式并行处理。Hadoop适用于PB级数据的离线批处理场景,具有高可用性、高扩展性、高效性和高容错性四大优势,但在低延迟访问、小文件存储和
2025-09-12 15:25:02
1140
原创 启动Tomcat时出现其他无关的项目
应该是tomcat以前部署的项目有残留,删除掉webapps里面的其他项目,删除掉work文件夹下Catalina下localhost文件夹里其他的项目,删除掉conf文件夹下Catalina下localhost文件夹下的其他项目配置,最后如果还是不行,查看一下conf下的server.xml里是不是有其他项目残留的配置。
2025-09-10 10:12:21
526
原创 Google Bigtable深度解析:分布式存储的设计典范
摘要 Google Bigtable是一种分布式结构化数据存储系统,具有高扩展性、高可用性和灵活的数据模型。它采用三维有序映射(行键、列、时间戳)存储数据,支持PB级数据量。系统架构包含客户端层、主控服务器和子表服务器,依赖GFS和Chubby实现持久化存储和分布式协调。Bigtable通过子表分片、内存MemTable和磁盘SSTable实现高效读写,其设计理念深刻影响了HBase等开源数据库。核心优势包括自动负载均衡、多版本数据支持和灵活的动态列管理,适用于大规模数据处理场景。
2025-09-10 10:11:18
1235
原创 JavaWeb解决中文乱码问题
tomcat的server.xml文件中,在Connector 节点中添加useBodyEncodingForURI="true" 属性 使用请求体的编码,然后在获取请求内容之前使用request.setCharacterEncoding("UTF-8")tomcat的get请求默认使用ISO-8859-1来编码,可以在获取的时候进行转码,new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8")
2025-09-09 20:18:02
507
原创 Google GFS 深度解析:分布式文件系统的开山之作
Google GFS是分布式文件系统的开创性技术,专为海量数据存储优化。其核心架构包括主控服务器(管理元数据)、数据块服务器(存储数据块)和客户端(提供访问接口)。GFS采用64MB大块设计减少元数据量,通过租约机制授权主节点协调写操作,避免主控服务器成为瓶颈。系统具有高容错性(多副本存储)、高吞吐量(批量读写优化)和强扩展性等特点,为HDFS等后续系统提供了设计范本。GFS放弃部分POSIX兼容性,针对大数据场景的追加写和批量读进行了专门优化。
2025-09-09 20:16:20
1147
原创 单元测试数据库回滚问题
问题解决:单元测试自动回滚,需要加上注解Rollback(false)问题现象: 在进行单元测试时,测试执行成功,可是数据库中的数据没变。
2025-09-03 17:15:54
1010
原创 flume拓扑结构详解:从简单串联到复杂聚合的完整指南
Flume拓扑结构详解与配置指南 Flume提供三种核心拓扑结构满足不同数据采集需求:1)简单串联通过Agent链式传输实现跨网络转发,配置简单但存在单点故障风险;2)复制模式将数据同时写入多个存储系统(如HDFS+Kafka);3)多路复用根据Header字段动态路由数据。关键配置要点包括:使用File Channel保障可靠性、合理设置拦截器实现数据分类、为关键链路配置监控。复制模式适合多副本存储场景,而多路复用更适用于按数据类型分发的需求。实际部署时需权衡资源消耗与业务需求,复杂场景可混合使用多种拓扑
2025-09-03 17:12:21
1293
原创 web项目的目录结构
WEB-INF/web.xml web应用程序的描述文件,用来配置资源,如servlet、过滤器、监听器等。WEB-INF 存放class文件、jar文件和配置文件,对于用户来说该文件夹是不可见的。WEB-INF/classes 用于存放class文件,也是该web应用程序的类加载路径。web应用程序只能访问到存放在classes和lib目录下的java类。WEB-INF/lib 用于存放第三方的类库jar文件。其他资源文件存放到和WEB-INF同级的目录中。web项目的目录结构。
2025-09-02 22:40:19
647
原创 flume扩展实战:自定义拦截器、Source 与 Sink 全指南
Flume 内置的组件虽然能满足大部分场景,但在复杂业务需求下(如特殊格式数据采集、定制化数据清洗),需要通过自定义组件扩展其功能。本文将详细讲解如何自定义 Flume 拦截器、Source 和 Sink,从代码实现到配置部署,带你掌握 Flume 扩展的核心技巧。自定义的Source需要继承AbstractSource,实现Configurable和PollableSource接口。头信息,最终不同类型的事件会路由到对应的 Channel 和 Sink,控制台会输出分类后的日志。
2025-09-02 22:32:01
927
原创 JavaWeb之异步处理
在Servlet3.0版本中引入了异步处理的功能,使线程可以返回到容器,从而执行更多的任务。要在servlet上启用异步处理,需要配置asyncSupported为true。使用AysncContext来进行异步操作。以tomcat为例,看一下异步是怎么处理的。
2025-09-01 23:19:58
545
原创 flume接收处理器:构建高可用与高性能的数据链路
机制,提供了强大的故障转移(Failover)和负载均衡(Load Balancing)能力,确保数据链路的高可用性和吞吐量。**:惩罚时间不宜过短(可能导致频繁切换)或过长(故障恢复后不能及时复用),建议根据 Sink 恢复时间设置(如 30-60 秒);故障转移处理器通过优先级机制确保数据始终被健康的 Sink 处理,即使部分 Sink 故障也不会中断数据流转。:故障 Sink 进入惩罚期(如 30 秒),期间不会被选择,流量自动切换到次高优先级 Sink(如。
2025-09-01 23:13:20
1065
1
原创 JavaWeb之国际化
在配置文件中i18n.properties i18n_en_US.properties i18n_zh_CN.properties。国际化(i18n): i18n internationalization,网站能够提供翻译成访问者的语言或国籍的不同版本的内容。本地化(i10n): 向网站添加资源,使其适应特定的地理或文化区域,例如将网站翻译为中文。区域设置:通常为语言符号后跟一个由下划线分隔的国家符号。数字、货币格式化 NumberFormat。字符串格式化 MessageFormat。
2025-08-29 16:18:12
664
原创 flume事务机制详解:保障数据可靠性的核心逻辑
Flume事务机制解析:保障数据可靠性的核心逻辑 Flume通过内置的事务机制实现数据采集过程中的"不丢不重"需求。其核心在于Source→Channel和Channel→Sink两个独立的事务阶段:Put事务和Take事务。Put事务通过临时缓冲putlist实现数据原子写入Channel,Take事务则利用takelist确保数据可靠发送至目标存储。当出现异常时,系统通过回滚机制恢复数据。不同Channel类型对事务支持存在差异,File Channel和Kafka Channel通
2025-08-29 16:17:12
1026
原创 JavaWeb之异常处理
当servlet出现异常时,servlet容器使用exception-type元素来找到与抛出的异常类型相匹配的配置。可以使用request.getAttribute("")取出。如果出现异常,会在请求域中设置相应的属性。
2025-08-27 14:56:29
706
原创 flume监控文件写入 Kafka 实战:解耦应用与消息队列的最佳实践
写入 Kafka 会导致应用与 Kafka 强耦合(如 Kafka 故障可能影响应用运行)。更优的方案是:应用程序将日志写入本地文件,通过 Flume 监控文件并异步同步到 Kafka,实现 “应用 - 采集 - 存储” 的解耦。:Flume 支持监控文件、目录、网络等多种数据源,统一接入 Kafka。flume监控文件写入 Kafka 实战:解耦应用与消息队列的最佳实践。:应用仅需写本地文件,无需关心 Kafka 集群状态,降低耦合风险;在 Flume 崩溃时会丢失数据,对可靠性要求高的场景建议使用。
2025-08-27 14:52:47
1137
1
原创 JavaWeb之分布式事务规范
J2EE包括了两套规范用来支持分布式事务:一种是Java Transcation API(JTA),一种是Java Transcation Service(JTS)第一阶段:全局的事务管理器向各个数据库发出准备消息,各个数据库需要在本地把一切都准备好,执行操作,锁住资源,记录redo/undo日志,但不提交。多个分布式数据库,有一个全局的事务管理器来协调各个数据库的事务提交,为了实现分布式事务,需要两个阶段。JTA是一种高层的、与实现无关的、与协议无关的标准API。Transcation接口。
2025-08-26 16:35:21
722
Mycat-server-1.6.7.4-release-20200105164103-mac.tar.gz
2022-05-20
apache-shardingsphere-incubating-4.0.1-sharding-proxy-bin.tar.gz
2022-05-13
java中的强引用软引用问题
2017-05-21
myeclipse报错自动关闭
2017-05-19
myeclipse下编写的jsp中文乱码
2017-04-23
java内部类中的局部变量
2017-05-19
关于JavaScript的事件
2017-04-24
html表格单元格焦点事件问题
2017-04-22
myeclipse中编写html表单
2017-04-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅