![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
updownline
这个作者很懒,什么都没留下…
展开
-
里式替换原则
以前认为里式替换原则就是父类的出现的地方子类就能出现,和多态没有多大的区别,这是错误的看法,应该再加上一句,不改变原来程序的逻辑。常见三类违背里式替换的情况:1:子类违背父类声明的功能比如父类某个方法实现的是按照价格排序,子类修改为按照时间排序2:子类违背父类对输入,输出,异常的规定输入:子类对输入的校验变窄等 输出:子类的输出变窄,比如父类可以输出null或者其他,子类只能输出null,异常:父类抛出空指针,子类还抛出了其他异常3:子类违背父类注释中所罗列的任何注释说明...原创 2020-08-11 16:43:31 · 145 阅读 · 0 评论 -
开闭原则,对拓展开放,对修改关闭
本文理解来自极客时间,设计模式之美1:what,什么是ocpopen closed principle,开闭原则:添加一个功能的时候,应在已有的代码上进行扩展(类,模块,方法),而非修改2:why,为什么要ocp减少代码耦合性,更有弹性,但是理解会变复杂3:how,如何ocp时刻有扩展意识,抽象意识,封装意识,写代码时思考未来变更的可能,掌握一定的设计模式,设计思想,熟练运用多态,依赖注入,接口等4:when,什么时候ocp写代码呀。。。...原创 2020-08-11 15:45:49 · 603 阅读 · 0 评论 -
啊啊啊啊,springboot+thymeleaf,折腾了半天,我也不知道为啥就能行了
设置1:spring.mvc.static-path-pattern=/static/**资源目录:3:页面引入主要这三点配置,啊啊啊,折腾了半天原创 2020-06-11 16:33:15 · 160 阅读 · 0 评论 -
对依赖的理解
翻了翻设计模式之禅,看到一个之前一直没能理解的概念,依赖。提到spring就会有控制反转和依赖注入。这儿的依赖和书里面的依赖是一个概念,顿时恍然大悟。书中的定义如下:依赖倒置:● 高层模块不应该依赖低层模块,两者都应该依赖其抽象;● 抽象不应该依赖细节;● 细节应该依赖抽象。java语言就是:● 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口...原创 2020-01-14 18:47:01 · 4033 阅读 · 0 评论 -
effective java 3 第26条 请不要使用原生态类型
定义:声明中具有一个或多个类型参数的类或者接口,就是泛型。如List<E> 每一种泛型定义一组参数化类型,格式是C/I<实际类型参数>,如List<String> 是一个参数化类型 每一种泛型都定义一个原生态类型。如List<E>的原生态类型为List,其存在的主要作用是为了和之前的版本兼容观点:最好是在编译时期发现错误,所以泛型尽量不...原创 2019-12-03 10:04:45 · 154 阅读 · 0 评论 -
invokeAll(tasks,time,unit)源码解析
ExecutorService的invokeAll带参数的方法源码接口定义最主要的实现类源码解析接口定义// 需要传递一个Callable的集合,返回Future的List。<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, ...原创 2019-09-25 16:21:34 · 322 阅读 · 0 评论 -
改web bug的一般思路
bug大致分为两种情况:1:被抛出来的异常,包括空指针,500等2:数据不对针对第1种情况,看日志能很好的定位,根据日志找到相应的代码针对第2种情况,看页面发送的请求,F12查看请求和响应看有没有问题,找到对应的接口,分析代码逻辑以及sql...原创 2019-05-09 09:32:23 · 177 阅读 · 0 评论 -
java冒泡排序
冒泡排序,以从小到大排序为例:从数组的第一个开始往后(上)遍历,如果碰到大的就交换,想想一下第一个数为小气泡,往后遍历就是往上冒,气泡越来越大。冒泡排序最多冒泡n-1次,时间复杂度为O(n^2)。冒泡排序是原地稳定的排序。public static void bubbleSort(int[] a){ for (int i = 0;i<a.length;i++){ ...原创 2019-02-15 16:00:15 · 116 阅读 · 0 评论 -
java快速排序
本文翻译 极客时间|数据结构与算法。快速排序用了分冶的思想,何为分冶,大问题化为小问题,小问题解决了,大问题也就解决了。之前看别人代码的时候不懂,看几遍都不懂为啥要用递归,分冶一般都是用递归实现的,记住这句话。。。怎么理解快排的分冶思想呢,比如数组:{21,3,5,22,11,2,22,11}我们选定数组中的一个值,一般是第一个和最后一个,然后遍历数组,将比该数小的值放左边,...原创 2019-02-15 15:23:14 · 162 阅读 · 0 评论