又背锅了,一个“锁表” 损失 800万,程序员被判5年半

百万数据查询优化技巧 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER B 2.应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,否则将导致引擎放弃使用索 3.应尽量避免在 WHERE 子句中使用!=或操作符,否则将引擎放弃使 立即下载

点击“开发者技术前线”,选择“星标????”

在看|星标|留言,  真爱

图片来自 Pexels

出处:云头条,知乎综合整理, 51CTO

链接:https://www.zhihu.com/question/389167387/answer/1170852426

近日,云头条发布的“一个违规操作、损失 800 万、被判五年半:运维夏某某致郑大一附院智慧医院系统瘫痪 2 个小时,判破坏计算机信息系统罪”一文引发了技术圈的热议。

事件经过

夏某某任职北京中科某某科技有限公司,负责该公司为郑大一附院开发的“软件信息系统”的维护工作。

2017 年 10 月 31 日 20 时许,夏某某参与并直接操作了郑大一附院“HIS 数据库”的账号密码修改仪式,夏某某在未经授权或许可的情况下,私自记录了该账号密码。

后夏某某在未经授权或许可的情况下,私自编写了“数据库性能观测程序”和锁表语句,并利用私自记录的账号密码将该程序私自连接郑大一附院“HIS 数据库”,导致该锁表语句在“HIS 数据库”运行。

2018 年 12 月 24 日 8 时 13 分至 9 时 47 分期间,夏某某先后六次利用“数据库性能观测程序”连接“平台数据库”的“锁定平台挂号表”功能,将数据库执行锁表命令。

该命令执行后锁定 fin_opr_register 表,使其不能进行其它活动,并导致“HIS 数据库”锁定。造成郑大一附院郑东院区、惠济院区、医学院院区所有门诊、临床计算机业务受到恶意语句攻击,门急诊挂号、门急诊叫号、门急诊支付、门急诊药房、门急诊检查、门急诊检验等业务系统均无法正常操作,所有门诊相关业务停止服务,造成该医院三个院区门诊业务停滞近两个小时,造成大量患者积压在门诊无法就诊,严重影响医院的正常医疗工作。

案发后,夏某某对其工作数据日志、办公电脑进行了清理。2019 年 5 月 22 日,经民警电话通知后被告人夏某某到郑州市公安局郑东分局投案。

经郑大一附院出具证明:由于恶意锁表行为遭受损失等相关情况,包括:

  • 从当日收入来测算。当日收入损失约为 800 万元。

  • 郑东院区门诊楼有 380 台电脑无法进入医生工作站正常工作,72 台自助挂号机和 49 台报到机无法正常工作;河医院区门诊楼有 1027 台电脑无法正常进入系统,86 台自助挂号机和 55 台报到机无法工作;惠济院区门诊部有 82 台电脑无法正常进入系统,11 台自助挂号机和 4 台报到机无法工作。

  • 对该院智慧医院项目造成巨大影响。

被害单位委托代理人杨某的陈述:

2018 年 12 月 24 日 8 点 17 分,我在郑大一附院河医院区办公,我看到微信上三个院区的服务群里说门诊业务系统卡住了,无法进行其他任何业务。


我和同事以及东区的技术人员一起通过工作电脑查询门诊业务系统卡机的原因和查询数据库。在查到 82 号和 89 号这两个接口服务器时,发现数据包拥塞严重。

在 9 点的时候,我在我们的 PL/SQL 里面发现了一条锁表语句(LOCKTABLE+表名字,也是挂号业务表),然后我们就执行了终止语句(KILL)。

我们一共执行了 6 次终止语句,门诊业务才恢复正常,这个时候时间是 10 点左右。

后来我们将服务器工作日志导出发到东软公司总部进行分析,分析的结果是发现那个锁表语句是非程序中的运行语句,怀疑是人为操作,操控门诊业务系统。

我们又请了郑州市信大天瑞信息技术有限公司的技术人员进行了日志分析,分析的结果与东软一致。

这 6 次锁表语句的总共执行时间是 1 小时 34 分,从 2018 年 12 月 24 日上午 8 点 13 分开始到 9 点 47 分结束。

这个锁表语句影响了郑大一附院的三个院区,分别是郑东院区、河医院区和惠济院区门诊的所有业务。

在这 1 小时 34 分的时间内三个院区的 15300 多个门诊业务量无法工作,24 号当天的业务量是 25528 个。这次的恶意锁表现象严重影响了我们的日常门诊工作。

据当事人解释:

2018 年 12 月 24 日 8 点左右,我在北京家中用公司给我配备的联想电脑,远程登录到郑大一附院的数据库和小型机的数据库,查看数据库的运行情况。

大概 8 点 30 分,我看到微信群里河医的门诊系统卡顿,我担心公司的综合信息运用平台也会出问题,就启动了我自己编程的一个程序(程序名称:数据库性能观测软件)对我们公司的系统进行查看。

在我运行系统的时候发现我运行的这个程序在报错,我就更改了几次数据参数,一直没有运行成功我就主动放弃了,整个操作过程大概 20 分钟。大概在 10 点多的时候微信群说河医系统运行正常,我就去公司上班了。


12 月 25 日我们公司将小型机的数据库的性能报告导出来,同事张某 2 将报告发给我一份,让我帮忙分析问题出现的原因。

26 日我分析的时候发现小型机分析报告中第 9 条语句看着有点眼熟,拿出来跟我自己做的编程进行了比对,结果和我运行程序的语句一样。

我自己推断可能是我运行的程序和性能报告第九条重叠,这个运行语句会造成锁表。

接下来我就对我自己做的程序进行分析,发现自己写的程序是有问题可能会将锁表语句执行到 HIS 数据库中。


附录要点如下:

①编写的“his.exe”软件(数据库性能观测软件)没有得到中科弘睿公司或者郑大一附院的授权。

②从郑大一附院授权角度讲,我是没权利使用上述账号和密码的。2017 年 10 月 31 日,郑大一附院网络安全加密实施仪式我在场,修改的 zdhis 的密码由 3 个院领导分别掌握各自的部分,我当时写了个修改密码的语句。这个语句在我电脑里有保存,我当时存到一个 txt 文档里。我存这个密码的时候是我私下偷偷存的。

法院裁定

郑州高新技术产业开发区人民法院认为:夏某某违反国家规定,擅自对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果特别严重,其行为已构成破坏计算机信息系统罪。

关于被告人夏某某及辩护人辩称其没有破坏计算机信息系统的主观故意的意见,经查,根据被告人夏某某供述、证人张某 1、张某 2、周某的证言可知,夏某某并无知晓使用郑大一附院东软 his 数据库“zdhis”账号和密码的权限,其工作内容并不需要登录上述帐号。

夏某某在未经授权的情况下,趁被害单位修改密码之机私自记录上述账号和密码,并私自开发应用“数据库性能观测软件”,私自使用该账号密码连接被害单位 his 数据库,使其编写的锁表语句在 his 数据库运行,导致被害单位的门诊业务系统瘫痪,造成重大损失。

2018 年 12 月 24 日,夏某某在运行自编软件报错的情况下多次修改参数继续运行,导致被害单位计算机信息系统 6 次执行锁表操作,系统近两个小时无法正常工作,严重影响医院正常工作。

夏某某作为专业技术人员,应明知其违规操作可能造成被害单位计算机系统不能正常运行,而放任该结果的发生,属于间接故意,应对危害后果承担法律责任,符合本罪的主观构成要件。

被告人夏某某破坏医疗领域提供公共服务的计算机信息系统,致使生产生活受到严重影响,造成五十台以上的计算机不能正常运行,造成经济损失超过五万元以上,符合破坏计算机信息系统罪“后果特别严重”的规定,应处五年以上有期徒刑。

辩护人辩称不构成本罪的意见不能成立。夏某某虽系主动到案,但未能如实供述犯罪事实,不能认定为自首。

裁判结果

被告人夏某某犯破坏计算机信息系统罪,判处有期徒刑五年零六个月。(刑期从判决执行之日起计算。判决执行以前先行羁押的,羁押一日折抵刑期一日,即自 2019 年 5 月 23 日起至 2024 年 11 月 22 日止。)

这里给大家普及一下破坏计算机信息系统罪,它是 IT 从业人员必须了解的安全守则:

《中华人民共和国刑法》第二百八十六条第一款:


【破坏计算机信息系统罪】违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。


违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。


故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。


单位犯前三款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照第一款的规定处罚。

如何看待“郑大一附院”系统违规操作损失 800 万,肇事者被判五年半?我们先看看网友的评论:

下面,我们再来看看知乎网友对此事的深入分析,他表示夏同学确实没说实话,这里聊两点质疑:

①默认连接了 HIS 数据库,不知情?

相信写过代码的都会感同身受,尤其是夏同学这样的运维界老鸟。如果连接的是客户生产库,那么“用户名、密码、url”等信息的配置和启用,都会是在“蹦一根神经、确认再确认”的状况下完成,岂会儿戏?

夏同学的“数据库性能检测”软件,事发前已经私下验证过,并跑了一年多时间(自述是 2017 年 7、8 月份写的),而且是一个人写的全部代码。

按理说功能点和配置项再熟悉不过了,况且事发前 20 多天早就已经将连接配置新增上去了,并不是当天临时的忙中出错导致,怎么可能对“启动后默认连接上 HIS 的数据库”并不知情?当初配置的时候是睡着了吗?

②“数据库性能检测”,真的需要如此锁表?

我写的程序当中造成锁表执行程序的语句是 lock table fin_opr_register in exclusive mode。

这个语句的功能是用来锁综合信息平台 fin_opr_register 这个表的。锁表的目的是为了模拟一下在高并发情况下的死锁情况,测试一下我们公司综合信息运用平台的性能。

在重要客户(郑大一附院的门诊量全国排名第一)早已上线多年的门诊生产库上,在早上的业务高峰期,用偷来的账号私下连接,不仅玩模拟性能压测,执行的还是最高级别的排他死锁?!!

这操作,如果智商正常,恐怕是想黄了公司吧?

这里普及下 Oracle 的锁类型:

Oracle 的几种锁类型

PS:以上的数字越大,锁的级别越高,影响的范围和操作就越多。

in exclusive mode,意味着其他的更新事务只能被挂起,阻塞所有的更新操作会话。

在业务系统中,我确实极少见到主动排他锁表的,一般在生产库上使用 select for update 就已经需如履薄冰了,夏同学这样的 SQL 使用可以说是罕见的存在。

这样的写法会让事务串行执行,对于有并发的系统尤其是大型生产库,还是业务高峰期,简直是灾难性的“自杀式袭击”,一旦执行,故障的结局早已经注定无可避免。

相信懂点 DB 的都明白锁表的后果,何况是一个专业公司的专业运维人员。

另外,数据库性能检测,居然不是检测数据库及所在服务器的各项性能指标和日志反馈,也不是利用 Oracle 自带的完善性能分析工具。

而是选择在高峰期锁死业务表来搞垮系统性能,理由是“测试一下性能”,这一波操作如果是正常思考,那么心大的境界实在可怕。

退一步说,不要忘了可是偷偷摸摸连的数据库,即便真要性能压测,在凌晨的夜里搞一搞,也不至于轻易被发现,但无论如何也不需要锁死表才能测到性能呀,再说 HIS 级的业务系统难不成真没有报错、告警的日志反馈?

这可是在中国医院综合指数科研实力排全国第 10 位的郑大一附院,也是中国医院信息化建设的先进单位呀!

感受有如下三点:

①安全规范和安全策略的设定缺失

生产库即便没有 VPN,也没有设置远程跳板机,至少也得做好白名单或可访问的 ip list 设置吧?clientinfo 也需要有记录 ip 的功能吧?

很明显,这些都不到位,跳板机也缺失了,安全防范形同虚设。甚至都偷偷远程访问了一年多,连异地远程访问的 IP 记录也没有,心真是太大了,当初项目数据安全方案和上线评估是怎么通过验收的?监理方是失责的。

②监控告警功能不到位,问题排查能力滞后

都两个小时了才发现问题所在?二天后当事人才确认可能自己搞的?

数据库一旦死锁,服务器 CPU 占用和 DB 内的 SQL 排队会迅速飙升,业务系统大量报错 SQL 超时,这样的特征太明显了。

在控制台输入一条百度到的排查命令也能很快定位到源头 SQL,但 SQL 虽然被救火的技术人员 Kill 干掉过,但重现了几次,最终还是放弃了,说明还是问题定位不自信,进而不敢再继续 Kill 掉问题 SQL,白白浪费了宝贵时间。

一旦发现这样的异常且非业务内置的 SQL,Linux 直接启用防火墙,拒绝掉此 IP 的 TCP 链接,先恢复业务再慢慢排查,都是及时的应对手段呀!

③对于类似安全意识淡薄,没有安全规范和执行能力的 IT 公司,应该趁早剔除出圈

影响了两个小时的门诊,耽误了多少有急症的门诊患者?这并不是 800 万块钱赔偿的事情,而是以很多人已不可挽回的健康痛楚为代价。

这已经不是一个低智商的事故个例,很明显是公司层面的整体意识问题,是安全意识和安全规范远低于及格线的企业能力问题。

只可惜当事的运维人员夏某某一个人扛下了所有,项目监理方、东软 HIS 系统架构师、甲方聘请的专家评审组等等都或多或少有责任缺失。

对于此事,大家怎么看?删库锁表的的傻事千万不能干啊

END

开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。

好文点个在看吧!

某主流HIS挂号存储过程样例 过程名称 :预约挂号调用 || 1.获取挂号级别,返回挂号费用总金额 || 2.所有患者按照新病人对待,在数据库取最新的病历号\挂号流水号 || 功能描述 : || 插入挂号表 fin_opr_register || 插入病人基本信息表 com_patientinfo 立即下载

相关推荐

STM32CubeMX定时器配置

因为只有当 CH2 处于 输入模式 时,硬件才能把这根脚送进滤波器(TI2FP2通道之前要滤波),再生成 TI2FP2 这条支路供 Slave-Mode 控制器使用,也就是说TI2FP2 并不是“独立存在”的,但在CubeMX配置时:如下图,我们只设置Slave Mode和TI1FP1,之后,CH1就自动配置为 Input Capture 了,下图发现,Channel1只能 Input Capture 或者Disable。哪来的主定时器和从定时器呢?把待测 PWM 的高电平当“门”,连接到ETR。

2402_89015641的博客 3185

mysql 锁表影响_索引对mysql行锁和表锁影响

1、前言昨天生产环境遇到了一个比较诡异的问题,project a 调用 project b webservice,b webservice在做insert操作的时候数据库报如下错误。lock wait timeout exceeded; try restarting transaction2、原因分析从报错信息分析应该是project b在进行insert操作的时候操作的表被锁住了, projec...

weixin_42458128的博客 770

骗分导论 CSP、NOIP、蓝桥杯、PAT、USACO等竞赛的算法骗分技巧 轻松省三

问题来了,那么多座桥,炸一座就破坏岛屿的联系,可能性微乎其微(除非特别设计数据)。它们的价值极大,不仅能初步帮你检验程序的对错,而且,如果你不会做这道题,你就可以直接输出样例!在OI考试中最后难的题数据最后的几个,他们往往不会创造新的数据,此时就可以直接输出最后几个数据了。需要运用《骗分导论》第3章中学到的知识,先写出朴素算法,然后造一些数据,可能就会发现规律。有些时候,问题的答案可能很有特点:对于大多数情况,答案是一样的。据说,在NOIP2013中,有人最后一题不会,愤然打了个随机数,结果得了。

星卯教育-信奥教练tony 6404

oracle查询:多行子查询返回多个行

oracle查询:多行子查询返回多个行 1.子查询 查询嵌套,一个查询作为另一个查询的条件、表。 多行子查询通常作为另一个查询的表使用;单行子查询可以作为另一个查询的条件使用。 SELECT decode( ( SELECT nvl( a.idenno, '11' ) FROM com_patientinfo a WHERE a.card_no = c.card_no ), '11', ( SELECT t.id || '_' FROM SJPT_HOSPITAL t ) || c.card_

qq_42716881的博客 1562

在centos7部署k8s搭建kubernetes集群

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找

山东梅长苏 1万+

光谱预处理最简单实现方法--基于OpenSA光谱分析库

系列文章目录 “光晰本质,谱见不同”,光谱作为物质的指纹,被广泛应用于成分分析中。伴随微型光谱仪/光谱成像仪的发展与普及,基于光谱的分析技术将不只停留于工业和实验室,即将走入生活,实现万物感知,见微知著。本系列文章致力于光谱分析技术的科普和应用。 文章目录系列文章目录前言一、数据来源二、代码解读2.1 读取数据2 .2 划分数据集2 .3 返回训练集和测试集并绘制光谱图片2.4 建立1-D CNN模型2.5 训练1-D CNN模型2.6 测试1-D CNN模型2.7 运行CNN模型,并用查看结果总结

Echo_Code的博客 7067

系统崩溃的10种可能,运维人员必看!

系统崩溃对于企业而言无疑是一场灾难。它不仅会导致业务中断、数据丢失,还可能严重损害企业形象和客户信任。因此,作为企业的守护者,运维人员必须深入了解系统崩溃的各种可能原因,并采取相应的预防措施,确保系统的稳定运行。以下是对系统崩溃N种可能原因的深入分析,运维人员务必仔细阅读并引以为戒。

运维老生常谈 3836

国民技术N32G45X SysTick定时器实战:从1us到100ms的精准延迟实现(附完整代码)

本文详细解析了国民技术N32G45X芯片中SysTick定时器的工作原理,并提供了从1微秒到100毫秒的高精度延迟实现方案。通过对比官方库函数的局限性,文章重点介绍了无中断查询模式、时钟源选择策略以及完整的代码实现,帮助嵌入式开发者精准控制时序,适用于LED控制、软件模拟通信协议等多种实战场景。

weixin_29190573的博客 375

漫谈运维:半神半仙亦民工(1)

原帖:http://hilinux.com/bbs/thread-600-1-1.html 。51CTO编辑在转载中进行了一些文字措辞的修改,并添加了一些相关阅读。 作者前言:看到chinaunix最近出的门户网站运维板块veyron大侠写的文章《门户网站运维abc》(51CTO编辑注:这篇文章目前尚未完成,部分整理版可以在这里阅读)深有感触,特写以下文章: 51CTO编...

weixin_34167043的博客 464

一个车载HUD的设计参考

一个车载HUD的设计参考

weixin_72050316的博客 798

Python爬虫-爬取猫眼演出数据

本文是该专栏的第53篇,后面会持续分享python爬虫干货知识。猫眼平台除了有影院信息之外,它还涵盖了演出信息,比如说“演唱会,音乐节,话剧音乐剧,脱口秀,音乐会,戏曲艺术,相声”等等各种演出相关信息。而本文,笔者将以猫眼平台为例,基于Python爬虫实现获取各种演出信息的数据。废话不多说,具体细节部分以及详细思路逻辑,笔者将在正文结合完整代码进行详细说明。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 568

数据库锁表?别慌,本文教你如何解决

引言 作为开发人员,我们经常会和数据库打交道。 当我们对数据库进行修改操作的时候,例如添加字段,更新记录等,没有正确评估该表在这一时刻的使用频率,直接进行修改,致使修改操作长时间无法响应,造成锁表,在 mysql 中,如果出现 alter 操作引发Waiting for table metadata lock 类型的锁表,会导致任何操作不可用,后果是灾难性的。 程序设计不合理,频繁对同一张表进行修改操作,同样可能引发锁表。 数据库锁表问题一旦出现,往往都是很致命的,锁表时间过久,可能会造成大量请求阻塞异常,

小螺旋丸的博客 8164

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

一个“锁表”损失800万,运维被判5年半

“近日,云头条发布的“一个违规操作、损失 800 万、被判五年半:运维夏某某致郑大一附院智慧医院系统瘫痪 2 个小时,判破坏计算机信息系统罪”一文引发了技术圈的热议。图片来自 Pexel...

yeluoxiang的专栏 814

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

又一个程序员被判刑了!运维违规操作被判5年半,IT从业需要懂法律!

点击上方 "程序员小乐"关注,星标或置顶一起成长每天凌晨00点00分,第一时间与你相约每日英文Sleeping is nice. You forget about e...

程序员小乐 8847

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

10年程序员转行,卖煎饼送外卖,称找回了自己!

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者丨不笑青年漫画师丨Jennyfish来源丨不会笑...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 350

还不会用Git的程序员,这个项目让你边玩边学

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲开源最前线(ID:OpenSourceTop) 猿妹...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 435

厚颜无耻!剽窃开源项目赚钱,连原开发者名字都没删干净,反而有勇气质疑正主……...

点击“开发者技术前线”,选择“星标????”在看|星标|留言, 真爱综合整理:程序员的那些事参考:v2ex、GitHuIINA 是一个开源的 macOS 播放器,使用 Swift 语...

开发者技术前线-DevolperFront 545

IDEA依赖冲突分析神器—Maven Helper

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者丨软件架构http://mrw.so/4X7kZ...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 380

Android去年漏洞最多,20年来Debian漏洞最多

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者丨白开水不加糖来自丨开源中国https://w...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 506

Python处理大数据,推荐4款加速神器

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者丨爱学习的胡同学来源丨机器学习算法与Python...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 548

对于递归,有没有什么好的理解方法?(要想理解递归请先理解递归)

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者丨GitPython来源丨GitPython小...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 257

如何在线上环境挂载 LVM 磁盘?

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者 |阿东来源 |杰哥的IT之旅(id:Ja...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 207
上一篇: 求求你!别再这样用 HashMap 了好吗?
下一篇: 太可怕了! 就因为不懂 Netty,被公司移出群聊?
DevolperFront
博客等级 码龄8年 465粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值