转自: https://blog.csdn.net/qq_42322103/article/details/95457321
漫谈网站优化提速: https://blog.csdn.net/meteor_93/article/details/95518164
十分钟教你理解TypeScript中的泛型: https://blog.csdn.net/powertoolsteam/article/details/95479676
致敬创新者 | 看中国小企业掌握哪些核心技术: https://blog.csdn.net/csdnnews/article/details/95414226
用 python 拟合等角螺线: https://blog.csdn.net/xufive/article/details/93052866
Java 代码优化:使用构造函数和使用一个个setter的效率差别: https://blog.csdn.net/qq_27093465/article/details/92763548
实战 Java 第1天:从零开始搭建项目,实现第一个接口(IDEA): https://blog.csdn.net/weixin_44135121/article/details/92801713
Excel表列序号: https://blog.csdn.net/weixin_41791402/article/details/95585137
判断Excel单元格中是否有错: https://blog.csdn.net/weixin_30834019/article/details/95578278
数据库学习小结: https://blog.csdn.net/weixin_43561274/article/details/95529849
Java中的注解学习笔记: https://blog.csdn.net/qq_39826207/article/details/95524282
Windows上的程序员神器——Cmder: https://blog.csdn.net/qq_44830705/article/details/95374346
Docker Dockerfile详解: https://blog.csdn.net/qq_37142346/article/details/95034711
程序员必知必会10大基础算法: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95552833
我为什么推荐Prettier来统一代码风格: https://blog.csdn.net/Fundebug/article/details/78342784
Docker - Windows Server 2016 环境使用镜像加速和设置远程访问: https://blog.csdn.net/qq_15071263/article/details/95185530
类加载器ClassLoader和双亲委派机制: https://blog.csdn.net/weixin_43821892/article/details/95519016
mysql explain type的区别和性能优化: https://blog.csdn.net/lilongsy/article/details/95184594
7个IntelliJ IDEA必备插件,让写代码像火箭一样飞起: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95129040
世界上本没有架构,建设的需求多了便有了架构: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95129080
mysql根据身份证号获得年龄并对年龄进行分组查询在MyBatis中的应用: https://blog.csdn.net/shenxiaomo1688/article/details/94734807
MySQL存储过程工具持续更新—— 字段、索引、视图等操作: https://blog.csdn.net/boonya/article/details/95178439
MySQL 性能优化,索引和查询优化: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95041794
Chrome浏览器显示“由贵单位管理”解决方法: https://blog.csdn.net/woiangaoiowe/article/details/92832529
oracle存储过程中数组申明和遍历: https://blog.csdn.net/wwxthinking/article/details/92806531
数据库性能调优大全(附某大型医院真实案例): https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95129022
PostgreSQL的几种常见问题和解决方法: https://blog.csdn.net/international24/article/details/89710703
从草根到百万年薪程序员的二十年风雨之路: https://blog.csdn.net/wucz122140729/article/details/80467543
面试|Flink实现PageRank算法: https://blog.csdn.net/rlnLo2pNEfx9c/article/details/90992009
SpringCloud框架服务消费者-Ribbon: https://blog.csdn.net/u014131617/article/details/85990798
6月份Github上最热门的开源项目排行出炉: https://blog.csdn.net/zhangdaiscott/article/details/95371967
Docker Dockerfile详解: https://blog.csdn.net/qq_37142346/article/details/95034711
是什么导致了Spring Aop失效了: https://blog.csdn.net/sun5769675/article/details/95187532
蚂蚁金服十五年技术架构演进之路: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414986
jvm的那些设置参数你都知道吗: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414969
TCP和UDP的优缺点及区别: https://blog.csdn.net/longe20111104/article/details/85960590
Spring Boot 面试现场题: https://blog.csdn.net/weixin_44716935/article/details/89331286
ECharts 地图绘制与钻取简易接口: https://blog.csdn.net/triplestudio/article/details/95498891
Java面试官:兄弟,你确定double精度比float低吗: https://blog.csdn.net/qq_37181642/article/details/95498885
Linux 内核console设备实现详解: https://blog.csdn.net/rikeyone/article/details/95482978
为什么HashMap链表长度超过8会转成树结构: https://blog.csdn.net/ywlmsm1224811/article/details/95474366
SQL Server 存储过程 中常用的小套路: https://blog.csdn.net/qq_36445227/article/details/93307503
Sql的join和where的区别: https://blog.csdn.net/wxid2798226/article/details/92840389
字节跳动前端实习四面凉经..炎炎夏日的一丝清凉: https://blog.csdn.net/weixin_34331102/article/details/91463522
微信、支付宝二码合一扫码支付实现思路: https://blog.csdn.net/tianya900519/article/details/89468673
前端 100 问:能搞懂80%的请把简历给我: https://blog.csdn.net/github_34708151/article/details/95165589
Java实现QQ微信轰炸机1.0(乞丐版): https://blog.csdn.net/xiao_xiao_b/article/details/93619747
公司倒闭 1 年了,而我当年的项目上了 GitHub 热榜: https://blog.csdn.net/u012702547/article/details/95309609
程序员加班突发晕厥,领导发飙:一定要保证五个小时的睡眠: https://blog.csdn.net/weixin_44330260/article/details/89818177
我以为我对Mysql索引很了解,直到我遇到了阿里的面试官: https://blog.csdn.net/hollis_chuang/article/details/95167242
29个你必须掌握的微服务面试问题(含答案解析): https://blog.csdn.net/qq_37929553/article/details/95106365
悲催!谷歌员工中位数年薪达 170 万元,却仍买不起房: https://blog.csdn.net/csdnsevenn/article/details/95125751
macd金叉不涨又死叉准确率_MACD金叉周线选股公式怎么设置及计算: https://blog.csdn.net/weixin_44905023/article/details/95499237
阿里云之《Ajax学习》——第1章 Ajax简介; https://blog.csdn.net/wangpailiulanqi8/article/details/95499033
springboot原理分析: https://blog.csdn.net/qq_37059004/article/details/95498149
为什么老外不愿意用MyBatis: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95268395
程序员吐槽:不和同事一起吃午饭,被领导批了!网友戏称:以后拉屎也要和同事一起,打成一片: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414852
汇编 (三) 寄存器(内存访问): https://blog.csdn.net/u010034085/article/details/95375530
java重载方法的理解和应用: https://blog.csdn.net/hdy14/article/details/95520256
基于Spring Boot+Cloud构建微云架构: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414877
浅谈对JAVA堆栈的理解: https://blog.csdn.net/qq_38194037/article/details/95518122
老板借二十万发年终奖,员工拿到钱后立马辞职: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95268162
React基础(下): https://blog.csdn.net/taylor_lin/article/details/95520160
c++|力扣|从排序数组中删除重复项: https://blog.csdn.net/weixin_38172774/article/details/95519265
吃货告诉你IaaS、PaaS、SaaS之间的区别: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95268225
百度自从取消餐补,公司同事天天七点多就跑了,八点基本工位都空了: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95128867
《程序员的数学6:递归》: https://blog.csdn.net/bohu83/article/details/95112515
云计算时代,你真的懂 Docker 吗: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95128939
2019 年,Hadoop 还是数据处理的可选方案吗: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95268251
记一次有惊无险的 JVM 优化经历: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95268343
高阶 numpy 数组快速插值(高阶快插)算法探讨: https://blog.csdn.net/xufive/article/details/94718525
CSDN云计算: https://blog.csdn.net/FL63Zv9Zou86950w/article/details/94682505
2019年必须掌握的29个微服务面试问题(下): https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95128977
Postgresql管理系列-第五章 并发控制: https://blog.csdn.net/dazuiba008/article/details/94648314
没有互联网的寒冬,只有程序员的寒冬(一): https://blog.csdn.net/nine_million_ITdream/article/details/89093741
裸辞2个月找不到工作,我慌了: https://blog.csdn.net/job51BBS/article/details/90377468
python实现完全备份和增量备份: https://blog.csdn.net/sxjwcs/article/details/95520328
【前端三分钟】优化判断语句: https://blog.csdn.net/ImagineCode/article/details/95489205
2019年小白学习web前端路线图及学习攻略: https://blog.csdn.net/nnnn1235657/article/details/94763465
it程序员刷题 中文网站收集: https://blog.csdn.net/whatday/article/details/95189997
Vue:从单页面到工程化项目: https://blog.csdn.net/mouday/article/details/95041305
2019版互联网+UI/UE路线图(内含大纲+视频+工具+书籍+面试): https://blog.csdn.net/c2289206/article/details/94763469
GitHub使用指南——建立仓库、建立文件夹、上传图片详细教程: https://blog.csdn.net/Sophia_11/article/details/95051346
简易javascript图片轮播代码: https://blog.csdn.net/rubbish_Timor/article/details/94763565
shell编程入门详解--从基础到调试: https://blog.csdn.net/qq_21845263/article/details/95069809
一次线上服务器磁盘耗尽的问题排查处理: https://blog.csdn.net/weixin_39800144/article/details/95042788
正则表达式匹配: https://blog.csdn.net/weixin_44548843/article/details/94874866
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解: https://blog.csdn.net/abc13526222160/article/details/94874247
跟我学SpringCloud | 第十一篇:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪: https://blog.csdn.net/meteor_93/article/details/95041171
新特性解读 | MySQL 5.7升级到MySQL 8.0的注意事项: https://blog.csdn.net/ActionTech/article/details/95187073
高并发核心技术 - 幂等性 与 分布式锁: https://blog.csdn.net/weixin_45273693/article/details/95103355
vue项目 微信支付 和 支付宝支付: https://blog.csdn.net/zyg1515330502/article/details/94737044
rest的API查询结果为null,返回404还是200: https://blog.csdn.net/u013189824/article/details/95493764
Python学习目录: https://blog.csdn.net/zhanshen112/article/details/90339777
python学习第三周之文件修改: https://blog.csdn.net/wuxiaorututu/article/details/95491884
程序员才能看得懂的段子,内含表情包,吃饭的时候别点: https://blog.csdn.net/zhuguanghalo/article/details/89853208
OPPO Java后端校招提前批面试: https://blog.csdn.net/qq_38593781/article/details/95459828
分布式 | DBLE 负载均衡方案: https://blog.csdn.net/ActionTech/article/details/95334129
java中集合总结: https://blog.csdn.net/qq_36473318/article/details/91618859
智能机器人自动巡检系统的设计与实现: https://blog.csdn.net/lfdfhl/article/details/95355351
JavaScript常用正则表达式记录: https://blog.csdn.net/qq_17150765/article/details/95491669
oracle创建用户: https://blog.csdn.net/qq_39508627/article/details/95491648
阿里高级java第一轮电面: https://blog.csdn.net/qq_31294693/article/details/89047284
Eclipse设置Java代码注释模板: https://blog.csdn.net/qq_37377611/article/details/95498511
Visual Studio Code(微软代码编辑器)v1.36.1更新啦: https://blog.csdn.net/weixin_42797672/article/details/95498981
mysql视图创建以及权限: https://blog.csdn.net/chenhongming888/article/details/95498896
Nuxt.js+axios+element-ui 项目搭建,并将项目提交到Gitee: https://blog.csdn.net/heheyixiao233/article/details/95498752
pdb 同步到aof: https://blog.csdn.net/a1148233614/article/details/95498816
Vue教程03(事件修饰符): https://blog.csdn.net/qq_38526573/article/details/94874277
数据库风云五十载:老骥伏枥,新秀迭起: https://blog.csdn.net/csdnnews/article/details/95041771
多线程重点难点解答: https://blog.csdn.net/qq_39581763/article/details/95498984
Redux源码系列-Redux-thunk源码分析: https://blog.csdn.net/qq1498982270/article/details/95499002
Webpack 4 动态切割JS注入文件名: https://blog.csdn.net/crper/article/details/95177261
Java实现BST:搜索二叉树: https://blog.csdn.net/weixin_42220532/article/details/94050751
Spring Boot---(25)SpringBoot使用AOP: https://blog.csdn.net/weixin_39800144/article/details/83013946
MySQL聚簇索引和非聚簇索引的理解: https://blog.csdn.net/w605283073/article/details/95255618
匈牙利算法的基本原理与Python实现: https://blog.csdn.net/NIeson2012/article/details/95203609
Docker 容器磁盘占满的几种情况: https://blog.csdn.net/isea533/article/details/95197468
网商银行×SOFAStack:首家云上银行的微服务架构实践与演进: https://blog.csdn.net/weixin_44326589/article/details/95317666
优秀程序猿写技术文档的正确姿势: https://blog.csdn.net/w605283073/article/details/91609253
java 实现 创建 二叉树 tree 遍历 二叉树 递归 非递归 先中后序 方式遍历 广度优先 深度优先 搞起来 : https://blog.csdn.net/weixin_42749765/article/details/94737141
vue2.0仿微信界面聊天室|vue聊天实例: https://blog.csdn.net/weixin_34292402/article/details/91465064
RetinaFace,最强开源人脸检测算法: https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/95400941
快速了解基于AQS实现的Java并发工具类: https://blog.csdn.net/y277an/article/details/95136569
如何使用FotoJet Designer for Mac添加和自定义剪贴画: https://blog.csdn.net/lizhangl/article/details/95491429
FotoJet Designer for Mac如何添加和编辑文本?FotoJet Designer使用教程: https://blog.csdn.net/lizhangl/article/details/95491306
百度巨变的2019年,都经历了什么鬼: https://blog.csdn.net/lin000001/article/details/95491162
使用FotoJet Designer for Mac如何添加和调整照片: https://blog.csdn.net/lizhangl/article/details/95491217
spring-cloud学习笔记之中间件、增强生态: https://blog.csdn.net/Zeriter/article/details/95491060
Soloπ:支付宝开源的Android专项测试工具: https://blog.csdn.net/weixin_44326589/article/details/95479927
python3 在数字信号处理的应用(二): https://blog.csdn.net/weixin_38798274/article/details/93884342
Win10自带Ubuntu系统安装及使用过程填坑: https://blog.csdn.net/beyond9305/article/details/95211016
Linux生产环境上,最常用的一套“Sed“技巧: https://blog.csdn.net/lycyingO/article/details/95306600
吃个快餐都能学到串行、并行、并发: https://blog.csdn.net/u011642663/article/details/95302086
mysql 动态统计某时间内登陆次数: https://blog.csdn.net/qq_36144258/article/details/94585846
“分库分表" ?选型和流程要慎重,否则会失控【方案引导】: https://blog.csdn.net/lycyingO/article/details/95164935
实战 Java 第4天:开发信息发布、获取列表信息接口: https://blog.csdn.net/weixin_44135121/article/details/95296797
前端必会!四步带你吃透浏览器渲染基本原理: https://blog.csdn.net/csdnnews/article/details/95267307
商城系统学习总结(1)——订单与库存在高并发场景下案例解析: https://blog.csdn.net/u012562943/article/details/95308834
高并发 限流,到底限的什么鬼 (精品长文): https://blog.csdn.net/qq_34446716/article/details/95465371
前后端分离项目session跨域失效的解决方案: https://blog.csdn.net/weixin_43358050/article/details/95461407
一个xlsx转lua的python小工具: https://blog.csdn.net/qq_30372933/article/details/95486642
python高并发的详解 https://blog.csdn.net/weixin_42099319/article/details/95488340
Java的内存逻辑模型 https://blog.csdn.net/cdy1221/article/details/95077564
2019版产品经理学习路线图(内含大纲+视频+工具+书籍+面试) https://blog.csdn.net/c2289206/article/details/94761580
Java课设:火车售票系统2.0 https://blog.csdn.net/weixin_44372699/article/details/93225931
3天用vue写一个简单的app https://blog.csdn.net/weixin_34034670/article/details/91463470
【收藏】一键关闭Win10自动更新脚本 https://blog.csdn.net/weixin_44875633/article/details/91463104
设置免密登录ssh https://blog.csdn.net/weixin_43548686/article/details/95487479
Git - 生成 SSH 公钥,免密码登录 https://blog.csdn.net/Boiled_meat/article/details/95487431
springboot 动态添加定时任务(配合数据库增删查改定时任务) https://blog.csdn.net/fanghuainihao/article/details/95462526
static关键字 self 后期静态绑定 抽象类 接口 final关键字 https://blog.csdn.net/sinat_38804294/article/details/95477690
Echarts + 中国地图+事件报警撒点 https://blog.csdn.net/cjvalue/article/details/95487342
第四篇:断路器(Hystrix)(Finchley版本) https://blog.csdn.net/chyercn/article/details/95481819
MySQL操作数据库和表的基本语句(DDL) https://blog.csdn.net/weixin_44420511/article/details/91884834
程序人生:初学者最常问的几个问题 https://blog.csdn.net/weixin_44015669/article/details/90346978
WEB前端之HTML 规范: https://blog.csdn.net/nnnn1235657/article/details/94763262
前端知识每日小拷问 003 跨域和事件模型相关: https://blog.csdn.net/WU5229485/article/details/95057976
Java面试相关-线程 https://blog.csdn.net/qq_42243991/article/details/95487418
高并发 限流,到底限的什么鬼 (精品长文): https://blog.csdn.net/lycyingO/article/details/94593304
MySQL实现for循环逐个遍历: https://blog.csdn.net/Bulter1996/article/details/91911136
原
5、Button代码中修改按钮的状态: https://blog.csdn.net/lianghui0811/article/details/95455483
webstorm自动补全,即HTML标签简写规则: https://blog.csdn.net/TZJD89/article/details/95448658
Mybatis之 Mapper接口方式的开发整合: https://blog.csdn.net/weixin_44117272/article/details/95452407
聊聊 Activity 栈的亲和关系: https://blog.csdn.net/freekiteyu/article/details/95445586
十分钟学会SSH+SFTP操作终端,告别XShell: https://blog.csdn.net/weixin_38405253/article/details/95423693
【Centos】Mysql修改数据文件目录或解决部分报错: https://blog.csdn.net/u013569329/article/details/95447023
window.open以post方式提交(隐藏参数): https://blog.csdn.net/qq_15146507/article/details/95455464
Mysql基本的查询方法总结:mysql创建表、索引及创建用户权限常用操作,读了这篇后从建库建表到删库的操作你都会了: https://blog.csdn.net/xuejunling/article/details/95454157
点击图片用原生js&jquery获取图片src属性值: https://blog.csdn.net/qq_42817227/article/details/95454711
Shell脚本8种字符串截取: https://blog.csdn.net/zj420964597/article/details/95455236
7 个有用JavaScript技巧: https://blog.csdn.net/qq_43258252/article/details/94737380
Nginx(七) 测试使CPU占用更多能否提升并发数: https://blog.csdn.net/weikaixxxxxx/article/details/85986510
一文学会Java死锁和CPU 100% 问题的排查技巧: https://blog.csdn.net/u010648555/article/details/94778019
Java POI导入导出Excel文件: https://blog.csdn.net/qq_31984879/article/details/91611713
2019版Linux云计算+运维开发路线图(内含大纲+视频等资料): https://blog.csdn.net/c2289206/article/details/94762579
程序员3年工资从7千到2万2,晒出跳槽经历!网友:厉害: https://blog.csdn.net/csdngkk/article/details/95342340
Oracle 关于锁,死锁,解锁的一些问题: https://blog.csdn.net/tksnail/article/details/94736461
Python游戏-实现键盘控制功能: https://blog.csdn.net/qq_43709494/article/details/90634111
3招教你轻松解决开关电源的电磁兼容性问题: https://blog.csdn.net/weixin_45187647/article/details/95453298
springboot出现的问题: https://blog.csdn.net/wujing1_1/article/details/95450080
Java中split函数的用法: https://blog.csdn.net/qq_37084904/article/details/95450585
JVM 面试考点总结 https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95552853
centos下SVN版本库的安装配置使用 https://blog.csdn.net/Aylan_/article/details/95590670
call、apply、bind函数在改变函数运行时this的指向问题的区别 https://blog.csdn.net/XU441520/article/details/94761371
Hadoop数据收集与入库系统Flume与Sqoop https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95552873
【多线程】Thread和Runnable区别: https://blog.csdn.net/dfshsdr/article/details/92432519
Java基础(五) final关键字浅析: https://blog.csdn.net/fengdongsuixin/article/details/93377946
Python 可迭代对象、迭代器、生成器的详解 https://blog.csdn.net/Fe_cow/article/details/95482672
边缘计算的三种模式:MEC、微云和雾计算 https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95552951 JS验证图片格式和大小并预览 https://blog.csdn.net/ShaoDu/article/details/95589705
基于Spring Boot+Cloud构建微云架构 https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414877
JVM 发生内存溢出的 8 种原因、及解决办法https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414899
原
JAVA基础(多线程死锁) https://blog.csdn.net/Cricket_7/article/details/95591068
直接拿来用!Vue.js 第三方常用插件盘点 | CSDN 博文精选 https://blog.csdn.net/csdnnews/article/details/95414360
2019版云计算大数据学习路线图(含大纲+视频+工具+书籍+面试) https://blog.csdn.net/c2289206/article/details/94763022
为啥你身边没有40+的程序员 https://blog.csdn.net/mogoweb/article/details/92477059
c# float和double的“坑” https://blog.csdn.net/weixin_30522183/article/details/95449098
Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值 https://blog.csdn.net/weixin_30292745/article/details/95449102
Libra的Move编程语言到底是个啥? 美女程序员通读26页的白皮书后, 找出了这些精华… | 技术头条... https://blog.csdn.net/Blockchain_lemon/article/details/95269663
详解ConcurrentHashMap及JDK8的优化 https://blog.csdn.net/y277an/article/details/95041965
源码阅读(7):Java中主要的List、Deque结构——LinkedList集合(中) https://blog.csdn.net/yinwenjie/article/details/94590445
高并发 Nginx+Lua OpenResty系列(1)——环境搭建 https://blog.csdn.net/meteor_93/article/details/94309027
闪电网络 https://blog.csdn.net/s_lisheng/article/details/93637690
深度解析RocketMQ Topic的创建机制 https://blog.csdn.net/zchdjb/article/details/90795265
【解决】win10 启用系统保护 灰色 不可选 的解决办法 https://blog.csdn.net/weixin_30544657/article/details/95449136
大数据平台技术栈 https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414912
substring函数详解 https://blog.csdn.net/weixin_30587927/article/details/95437642
HTTP错误 404.17–Not Found 请求的内容似乎是脚本,因而将无法有静态文件处理程序来处理... https://blog.csdn.net/weixin_30763397/article/details/95449105
SQLServer2005,2000获取表结构:字段名、类型、长度、主键、非空、注释 https://blog.csdn.net/weixin_30295091/article/details/95449110
计算两条直线的交点(C#) https://blog.csdn.net/weixin_30700099/article/details/95449112
Python基础项目:超市商品销售管理系统 https://blog.csdn.net/u012156341/article/details/89375307
6月份Github上最热门的Java开源项目!https://blog.csdn.net/zhangdaiscott/article/details/95373161
网站开发:从写代码到公网访问整个流程 https://blog.csdn.net/sunnyzyq/article/details/95062942
MySql如何编写高效的SQL(转) https://blog.csdn.net/zuishengmengsi_/article/details/95452115
Jsoup递归解析html标签 https://blog.csdn.net/pandalovey/article/details/95451824
JVM 发
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
文章目录
概述
适用场景
优点
缺点
组合-相关设计模式
演示
概述
◆ 定义:将对象组合成树形结构以表示”部分-整体”的层次结构
◆ 组合模式使客户端对单个对象和组合对象保持一致的方式处理
◆ 类型:结构型
适用场景
◆ 希望客户端可以忽略组合对象与单个对象的差异时
◆ 处理一个树形结构时
优点
◆ 清楚地定义分层次的复杂对象,表示对象的全部或部分层次
◆ 让客户端忽略了层次的差异,方便对整个层次结构进行控制
◆ 简化客户端代码
◆ 符合开闭原则
缺点
◆ 限制类型时会较为复杂
◆ 使设计变得更加抽象
组合-相关设计模式
◆ 组合模式和访问者模式
演示
创建目录组件的抽象类
//目录组件
public abstract class CatalogComponent {
public void add(CatalogComponent catalogComponent){
throw new UnsupportedOperationException("不支持添加操作");
}
public void remove(CatalogComponent catalogComponent){
throw new UnsupportedOperationException("不支持删除操作");
}
public String getName(CatalogComponent catalogComponent){
throw new UnsupportedOperationException("不支持获取名称操作");
}
public double getPrice(CatalogComponent catalogComponent){
throw new UnsupportedOperationException("不支持获取价格操作");
}
public void print(){
throw new UnsupportedOperationException("不支持打印操作");
}
}
创建继承该类的课程(相当于菜单)
public class Course extends CatalogComponent {
private String name; //课程名称
private double price; //课程价格
public Course(String name, double price) {
this.name = name;
this.price = price;
}
@Override
public String getName(CatalogComponent catalogComponent) {
return this.name;
}
@Override
public double getPrice(CatalogComponent catalogComponent) {
return this.price;
}
@Override
public void print() {
System.out.println("Course Name:"+name+" Price:"+price);
}
}
创建继承抽象类的目录
import java.util.ArrayList;
import java.util.List;
public class CourseCatalog extends CatalogComponent {
//目录组件
private List
private String name; //目录名称
private Integer level; //目录级别
public CourseCatalog(String name,Integer level) {
this.name = name;
this.level = level;
}
@Override
public void add(CatalogComponent catalogComponent) {
items.add(catalogComponent);
}
@Override
public String getName(CatalogComponent catalogComponent) {
return this.name;
}
@Override
public void remove(CatalogComponent catalogComponent) {
items.remove(catalogComponent);
}
@Override
public void print() {
System.out.println(this.name);
for(CatalogComponent catalogComponent : items){
if(this.level != null){
for(int i = 0; i < this.level; i++){
System.out.print(" ");
}
}
catalogComponent.print();
}
}
}
测试类:
public class Test {
public static void main(String[] args) {
CatalogComponent linuxCourse = new Course("Linux课程",11);
CatalogComponent windowsCourse = new Course("Windows课程",11);
CatalogComponent javaCourseCatalog = new CourseCatalog("Java课程目录",2);
CatalogComponent mmallCourse1 = new Course("Java网络编程",55);
CatalogComponent mmallCourse2 = new Course("Java编程思想",66);
CatalogComponent designPattern = new Course("Java设计模式",77);
javaCourseCatalog.add(mmallCourse1);
javaCourseCatalog.add(mmallCourse2);
javaCourseCatalog.add(designPattern);
CatalogComponent imoocMainCourseCatalog = new CourseCatalog("计算机课程主目录",1);
imoocMainCourseCatalog.add(linuxCourse);
imoocMainCourseCatalog.add(windowsCourse);
imoocMainCourseCatalog.add(javaCourseCatalog);
imoocMainCourseCatalog.print();
}
}
结果:
UML图:
这里屏蔽了细节 很容易发现树形结构
CatalogComponent是抽象类
CourseCatalog是抽象类的实现类 负责了目录的级别
Course也是抽象类的实现类,负责了菜单
目录界别 加 菜单内容 组合成目录
这里起到关键作用的是 抽象类 和分离组合的思想
看一下没有屏蔽细节的UML
换一种角度
---------------------
作者:沉晓
来源:CSDN
原文:https://blog.csdn.net/qq_42322103/article/details/95457321
版权声明:本文为博主原创文章,转载请附上博文链接!