设计模式之工厂模式!深入解析简单工厂模式,工厂方法模式和抽象工厂模式

2022-03-17
阅读 7 分钟
2.2k
创建型模式:对类的实例化过程进行抽象,能够将对象的创建和对象的使用分离开来为了使得软件的结构更加清晰,外界对于这些对象使用只需要知道共同的接口,而不在意具体实现的细节,这样使得整个系统更加符合单一职责的原则
封面图

面试常问的设计模式之代理模式的详细解析!分析说明静态代理模式和动态代理模式

2022-03-16
阅读 2 分钟
770
代理角色ProxySubject: 代理类. 代理对象内部包含对真实对象的引用,同时代理对象提供与真实对象相同的接口,可以代替真实对象. 同时,代理对象可以在执行真实对象操作时,附加其余的操作,相当于对真实对象进行封装
封面图

信息安全:数据加密实战!对项目中数据使用MD5算法进行加密

2022-02-10
阅读 5 分钟
2k
MD5加密算法的实现原理Java中MD5加密算法的实现: {代码...} MessageDigest类MessageDigest类:为应用程序提供信息摘要算法的功能.比如MD5算法和SHA算法信息摘要是安全的单向Hash函数 : 接收任意大小的数据,并输出固定长度的Hash值updateMessageDigest对象在开始时会被初始化对象通过调用update() 方法处理数据 {代码...} ...
封面图

记录一次乱码问题修复经历!排查修复Poi-tl使用HttpServletResponse导出Word乱码问题

2022-01-02
阅读 1 分钟
1.8k
问题Poi-tl中HttpServletResponse导出Word乱码问题:文件名使用中文,中文名乱码导出的文件下载后乱码原因文件名中文乱码:没有设置文件名的编码规则文件下载乱码:在RESTful中的Controller层错误地使用了PostMapping解决办法文件名乱码: {代码...} 文件下载乱码:Word导出的接口使用==GetMapping==使用==Request URL==来获取...
封面图

项目启动报错怎么办?看看你Spring自动注入用对了嘛?@Autowired XxxService注入问题解决

2022-01-01
阅读 1 分钟
1.5k
提示Bean中没有Service:因为没有将Service注入到Spring容器中,可以通过 @Component或者 @Service注解注入
封面图

内存泄漏避雷!你真的了解重写equals()和hashcode()方法的原因吗?

2021-12-15
阅读 5 分钟
1.3k
基本概念要比较两个对象是否相等时需要调用对象的equals() 方法:判断对象引用所指向的对象地址是否相等对象地址相等时, 那么对象相关的数据也相等,包括:对象句柄对象头对象实例数据对象类型数据可以通过比较对象的地址来判断对象是否相等Object源码对象在不重写的情况下使用的是Object中的equals() 方法和hashCode() 方...
封面图

MySQL数据库的函数使用:使用字符串拼接函数实现MySQL查询结果的拼接

2021-08-17
阅读 1 分钟
2.4k
GROUP_CONCAT适用于拼接多条数据相同列,需要使用分割符的字符串查询结果.默认使用逗号作为分隔符语法: 必须配合GROUP BY一起使用 {代码...} 示例: {代码...} CONCAT_WS适用于拼接一条数据不同列,需要使用分隔符的字符串查询结果,指定使用的分隔符语法: {代码...} 示例: {代码...} 注意: 如果要拼接的字符串中有null,不会...
封面图

Java中泛型的基本介绍,深入解析泛型的使用方式

2021-08-09
阅读 11 分钟
1.4k
泛型的基本概念泛型: 参数化类型参数:定义方法时有形参调用方法时传递实参参数化类型: 将类型由原来的具体的类型参数化,类似方法中的变量参数类型定义成参数形式, 可以称为类型形参在使用或者调用时传入具体的类型,可以称为类型实参泛型的本质是为了参数化类型在不创建新的类型的情况下,通过泛型指定的不同类型来控制形...
封面图

晋升高级程序员之道!从菜鸟程序员到高级程序员,你一定要做到这些

2021-08-04
阅读 1 分钟
818
编程思想高级程序员在看到一个需求的时候:快速地在大脑里生成这个需求在现实生活中的映射这个需求需要哪些数据库上的改动对现有的逻辑有什么影响需要提供多少接口存在哪些可能的风险需要多久的开发周期拿到需求文档后:思考为什么要这么开发边开发边思考开发项目之前:设计好代码的类图和时序图学习路线在学完基本的工作知...
封面图

一位算法工程师的自我修养

2021-08-03
阅读 1 分钟
1k
数据结构与算法基本算法思想动态规划贪心算法回溯算法分治算法枚举算法算法基础时间复杂度空间复杂度最大复杂度平均复杂度基础数据结构数组动态数组树状数组矩阵栈与队列栈队列阻塞队列并发队列双端队列优先队列堆多级反馈队列线性表顺序表链表单链表双向链表循环链表双向循环链表跳跃表并查集哈希表(散列表)散列函数碰...
封面图

互联网都在讲的敏捷开发,这些敏捷开发流程你都知道吗?

2021-08-02
阅读 1 分钟
851
需求理解理解需求背景确认需求明确,无逻辑遗漏确认所有需求方案都有实现方案合理预估时间需求不明确或者不清晰的点,可以当场提出来,或者稍后整理快速整理出未实现过的功能,逻辑,技术点,可以和leader一起讨论交流方案确认验收标准是否完善确认Story优先级和粒度无疑问,有问题反馈给leader方案评审前后端快速整理出接口,哪...
封面图

要想成为优秀的工程师?一定要具备这些职业技能!

2021-08-01
阅读 2 分钟
1.4k
严谨度目标: 做事严谨,无偏差,完成度高,干净利索相关技能: 目标明确度练习方式:日报任务编码规范开发流程日报规范的日报编写方式,按照周报的要求从写日报这件小事上就开始规范要求自己xxx模块:功能开发. 开发完成xxx功能xxx模块:修改优化. 修改xxx问题,对xxx进行优化xxx对接: 接口对接. 对接xxx接口,并对xxx进行测试完善...
封面图

微服务架构技术栈:程序员必须掌握的微服务架构框架详细解析

2021-07-17
阅读 81 分钟
2.3k
主要技术基础框架: springboot微服务架构: dubbo,springboot cloudORM框架: mybatis plus数据库连接池: Alibaba Druid网关(统一对外接口 ): zuul缓存: redis注册中心: zookeeper,eureka消息队列:作业调度框架: Quartz分布式文件系统:接口测试框架: Swagger2数据库版本控制: Liquibase (flyway)部署: docker持续集成: jen...
封面图

高质量代码总结!谈谈重构项目中if-else代码的几点建议

2021-07-15
阅读 1 分钟
1.3k
当判断条件还可能动态增加时,可以考虑将switch进一步优化,引入接口interface,将代码与数据分离:创建一个map:key: switch的case值
封面图

MyBatis框架中的条件查询!关键字exists用法的详细解析

2021-07-13
阅读 2 分钟
1.9k
exists用法exists:如果括号内子查询语句返回结果不为空,说明where条件成立,就会执行主SQL语句如果括号内子查询语句返回结果为空,说明where条件不成立,就不会执行主SQL语句not exists: 与exists相反如果括号内子查询语句结果为空,说明表示where条件成立,就会执行主SQL语句如果括号内子查询语句结果不为空,说明表示where条...
封面图

有趣的移位操作!彻底弄懂各个移位操作符的使用方式

2021-07-12
阅读 2 分钟
3.6k
<<<<: 左移运算,左移几位就补几个0>>>>: 右移运算,为算术右移如果数字为正数时,移位后在前面补0如果数字为负数时,移位后在前面补1>>>>>>: 无符号右移,为逻辑右移.忽略符号,空位补0无符号右移规则: 忽略了符号位扩展,0补最高位,无符号右移运算符 >>> 只对32位和64位...
封面图

MuBatis框架的使用解析!数据库相关API的基本介绍

2021-07-11
阅读 7 分钟
1.3k
动态SQLif根据条件包含where子句的一部分 {代码...} 紧接着 < where > 的第一个条件不要加ANDchoose-when-otherwise不使用所有的条件,只是想从多个条件中选择一个使用 {代码...} wherewhere元素只会在子元素返回内容的情况下才会插入WHRER的子语句若子语句的开头为AND或者OR,where元素会将这些去除 {代码...} trim...
封面图

分布式ID生成方案选型!详细解析雪花算法Snowflake

2021-07-10
阅读 6 分钟
4.6k
分布式唯一ID使用RocketMQ时,需要使用到分布式唯一ID消息可能会发生重复,所以要在消费端做幂等性,为了达到业务的幂等性,生产者必须要有一个唯一ID, 需要满足以下条件:同一业务场景要全局唯一该ID必须是在消息的发送方进行生成发送到MQ消费端根据该ID进行判断是否重复,确保幂等性在哪里产生以及消费端进行判断做幂等性与...
封面图

程序员的成长秘籍:个人编程能力的修炼之路

2021-07-09
阅读 1 分钟
1k
因为语言是相通的,当学习Python的时候,会带着和Java相比较的心去学,这个时候,不仅学习了Python,也加深了对Java的理解尝试独立完成一个项目

Java高质量面试总结

2021-07-08
阅读 22 分钟
1.1k
面试一般都是由浅到深去问,思路是:先考察基础是否过关,因为基础知识决定了一个技术人员发展的上限再通过深度考察是否有技术热情和深度以及技术的广度同时可能会提出一些质疑和挑战来考察候选人能否与有不同意见的人沟通考察内容和方式基础知识技术上深度与广度兼顾基础知识: 考察基础的时候一般都不会深入地去问,主要目...
封面图

个人经验:谈谈要想成为一位优秀的程序员,一定要做到的几个方面

2021-07-05
阅读 7 分钟
1.1k
如何成为一名优秀的程序员要尽量接触代码,能看到代码,能写代码如何快速成长要写代码先看代码好的代码让人看到时可以快速了解,并且能够抓住主要设计精髓公共库代码核心系统的代码: 用到的设计,原理多看代码,保持代码的敏感度写代码时,多做总结写的代码要体现设计的思想如何提升技术了解项目中架构方面的相关知识,尤其是封...
封面图

看完这篇项目设计规约!你应该就能构建良好的工程结构了

2021-06-30
阅读 3 分钟
1.4k
默认上层依赖下层,箭头关系表示直接依赖(比如开放接口可以依赖于Web层,也可以直接依赖于Service层)开放接口层: 可以直接封装Service方法暴露成RPC接口; 通过Web封装成接口; 进行网关安全控制,流量控制等
封面图

大佬都在用的数据库设计规范!你不点进来看看嘛?

2021-06-30
阅读 4 分钟
2.6k
表达是与否概念的字段,必须使用is_xxx命名,数据类型是unsigned tinyint(1-是,0-否)任何字段如果是非负数,必须是unsigned

单元测试不规范!事后运维两行泪

2021-06-30
阅读 2 分钟
2.2k
单元测试好的单元测试应该遵守AIR原则单元测试在线上运行时,应该感觉像空气(AIR)一样,并不存在,但在测试质量的保障上,确实非常关键的好的单元测试宏观上来说,具备以下的特点:自动化(A: Automatic)独立性(I: Independent)可重复(R: Repeatable)单元测试应该是全自动执行的,并且是非交互式的测试用例通常是被定期执行的,执...
封面图

Java中的方法调用分析!详细解析静态分派和动态分派的执行过程

2021-06-30
阅读 4 分钟
1.5k
方法调用在程序运行时,进行方法调用是最普遍,最频繁的操作方法调用不等于方法执行:方法调用阶段唯一的任务就是确定被调用的方法版本,即调用哪一个方法不涉及方法内部的具体运行过程Class文件的编译过程不包括传统编译中的连接步骤Class文件中的一切方法调用在Class文件里面存储的都是符号引用,而不是方法在在实际运行时...
封面图

论一个优秀的工程师应该如何做好异常处理和日志记录

2021-06-30
阅读 3 分钟
2.4k
Java类库中定义的可以通过预检查方式规避的RuntimeException异常不应该通过catch方式来处理:NullPointerException
封面图

架构师是怎样炼成的

2021-06-30
阅读 9 分钟
3.8k
软件架构师定义软件工程师的职业发展方向:软件架构师:制定高级设计决策,并确定技术标准,包括编程标准,工具和平台的软件专家软件架构:系统的基本组织构成,这种组织主要体现在其组件,组件之间关系,组件与环境之间的关系,以及决定系统设计与演化原则架构是系统的蓝图,描述了系统的结构和关键决策架构包含系统的功能和非功能...

一位攻城狮的自我修养,在于良好的编程规范

2021-06-30
阅读 14 分钟
1.6k
类名使用UpperCamelCase风格,但下列情形除外:DO: Data Object. 与数据库表结构一一对应,通过DAO层向上传输数据源对象
封面图

Java中类加载器的分析与理解!详细解析类的加载过程

2021-06-28
阅读 2 分钟
1k
类的加载过程JVM中的类加载过程分为三步:装载: Load链接: Link初始化: Initialize装载查找并加载类的二进制数据链接验证: 确保加载类的正确性准备: 为类的静态变量分配内存,将将这些静态变量初始化为默认值解析: 将类中的符号引用转换为直接引用之所以要有验证的步骤:首先如果由编译器生成的class文件,必定符合JVM字节码...
封面图

数据结构中红黑树的详细介绍

2021-06-28
阅读 15 分钟
1.1k
树树:数据结构中是以二叉堆的形式出现的如果从链表的观点出发,相当于是放宽了有序的的要求允许两个不同位置的元素有相等的序对于序为n的节点来说,可以指向多个序为n+1的节点:相应的后者称为前者的孩子前者称为后者的父节点最大的序即为树的高度 0节点的左右两个节点分别为0节点的左子节点和右子节点0节点也是这两个子节...
封面图