- 博客(12)
- 收藏
- 关注
原创 面向对象设计原则与设计模式
代码中使用父类的地方用子类替换后,仍然可以正常运行,不会产生错误。同一个继承体系下的对象应该具有相同的行为特征。接口中的方法尽量少,为各个类建立专用的接口,而不是试图去建立一个庞大而臃肿的接口提供所有依赖于他的类去调用。类的实现应该是一组高度关联的方法,引起类改变的原因应该只有一个,一个类不应该承担过多的职责。代码应该对扩展开放,对修改关闭。通过两个措施:面向抽象编程和可变性隔离。1.高层模块只应该包含重要的业务模型和策略选择。3.高层模块和底层模块都应该依赖于抽象。2.低层模块则是不同业务和策略的实现。
2023-06-08 15:09:57 30
原创 多线程相关知识梳理
相关资料:十分钟带你深入了解多线程——多线程关于锁的优化(一)_多线程如何使用锁使程序高效_桃花键神的博客-CSDN博客技术分享 | 隔离级别:正确理解幻读 - 知乎
2023-05-24 17:29:39 38
原创 maven常用命令
1.指定本地jar包 mvn install:install-file -Dfile=C:\Users\guo20\Desktop\api-1-1\target\api-jar-with-dependencies.jar -DgroupId=com.siuvo.shufu.api -DartifactId=shufu-api -Dversion=1.0.0 -Dpackaging=jar ...
2020-01-08 13:37:18 87
原创 多线程
1.锁的happens-before规则保证释放锁和获取锁的两个线程之间的内存可见性,这意味着对 一个volatile变量的读,总是能看到(任意线程)对这个volatile变量最后的写入。 2.锁分为悲观锁和乐观锁,悲观锁的代表是synochrnized,乐观锁包含偏向锁(通过消除资源无竞争情况下的同步原语,进一步提高了程序的运行性能),轻量锁,自旋锁,这些乐观锁的实现原理是CAS 3.Syn...
2019-02-02 20:28:48 79
原创 多线程
为了update先删掉了redis中的该数据,这时候另一个线程执行查询,发现redis中没有,瞬间执行了查询SQL,并且插入到redis中一条数据,回到刚才那个update语句,这个悲催的线程压根不知道刚才那个该死的select线程犯了一个弥天大错!于是这个redis中的错误数据就永远的存在了下去,直到下一个update或者delete。...
2018-12-31 20:50:46 74
原创 关于深度学习的思考(转)
自从 AlphaGo 完虐李世乭,深度学习火了。但似乎没人说得清它的原理,只是把它当作一个黑箱来使。有人说,深度学习就是一个非线性分类器?有人说,深度学习是对人脑的模拟……但我觉得都没有捅透那层窗户纸。 人类正在慢慢接近世界的本质--物质只是承载信息模式的载体。人脑之外的器官都只是保障这一使命的给养舰队。 自从去年 AlphaGo 完虐李世乭,深度学习火了。但似乎没人说得清它的原...
2018-12-09 22:17:15 211
原创 项目中的坑
jsr 303校验中,controller方法的被校验参数和bindingResult参数必须紧邻,不然参数校验不合格后会直接抛出错误而不会进入方法内执行。https://blog.csdn.net/u013815546/article/details/77248003 出错管理应该放在哪里? (一部分数据可以通过校验器完成校验,但是一些数据只有在进入数据库中时才能判断是否有误,比如重复数据的...
2018-11-30 23:58:03 132
原创 SQL注入
防止mybatis中模糊匹配引起的sql注入 方法一:bind + #{} 模糊查询 防止SQL注入 (#{}进行预编译,传递的参数不进行编译,只作为参数,相当于PreparedStatement) bind 元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文。比如: <select id="selectBlogsLike" resultType="Blog"> ...
2018-11-26 16:48:11 98
原创 Sping boot项目目录结构
├── clean-run.sh ├── logs/ 日志文件目录 │ ├── sb2-web_test_2018-06-02_0959.0.log │ └── sb2-web_test.log | ├── mvnw ├── mvnw.cmd ├── pom.xml ├── pysrc/ python 脚本目录 ├─...
2018-11-23 17:20:16 149
原创 三层架构与mvc模式
什么是三层架构? 三层架构由用户界面层/表示层(User Interface),业务逻辑层(Business Logic Layer)和数据访问层(Data Acess Layer)构成。 其中每一层的作用为: 用户界面层:负责与用户进行交互。 业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。 数据访问层:主要是对非原始数据(数据库或者文本文件等存...
2018-11-22 19:32:43 245
原创 java动态代理
一 、动态代理的优点 1.它不用去关心被代理的类到底是怎样的,可以与被代理的类完全解耦,从而灵活的运用到不同的应用场景中。 2.业务代码内,当需要增强的业务逻辑非常通用(如:添加log,重试,统一权限判断等)时,使用动态代理将会非常简单。即使业务逻辑实现的接口不同,也不需要修改或者新增代理类。如果每个方法增强逻辑不同,那么静态代理更加适合。 3.使用静态代理时,如果代理类和被代理类同时实现了...
2018-11-21 16:42:28 71
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人