自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 设计模式一点总结

三种类型设计模式创建型涉及模式单例模式,工厂模式,建造者模式,原型模式结构型设计模式门面模式,适配器模式,代理模式,适配器模式,桥接模式,组合模式,装饰者模式行为型设计模式职责链模式,观察者模式,策略模式,模版方法模式,状态模式,命令模式,中介者模式,访问者模式,迭代器模式,备忘录模式设计原则一:单一职责原则 (降低类的复杂度,一个类只负责一个职责)二:李氏代换原则 (所有引用基类的地方必须能够透明的使用其子类对象)三:迪米特法则 (接口隔离原则,客户端不应该依赖他不需要的接口)四:依

2020-12-17 10:41:23 111

原创 kafka - topic & partition

- Topic & Partition:Topic相当于传统消息系统MQ中的一个队列queue,producer端发送的message必须指定是发送到哪个topic,但是不需要指定topic下的哪个partition,因为kafka会把收到的message进行load balance,均匀的分布在这个topic下的不同的partition上( hash(message) % [broker数量] )。物理上存储上,这个topic会分成一个或多个partition,每个partiton相当于是一

2020-08-11 17:51:02 235

原创 nio,bio

用户态和和心态内核态(Kernel Mode):cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。用户态(User Mode):只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取。什么是bio,niobio 同步阻塞nio 同步非阻塞这里说的阻塞是网络层的阻塞,对磁盘io来说都是不阻塞的以read为例,内核层两个阶段:读取数据:没有收到完整数据包(或者没有数据包),一直阻塞,系统内核等待完整

2020-08-08 16:36:00 136

原创 以多线程为主线 串联 aio,bio,nio。

假设系统的处理核数为4核,那么逻辑处理器为8 先普及一下概念CPU密集型(CPU-bound)CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。IO密集型(I/O bound)IO密集型指的是系统的CPU性能相对硬盘、内存要好很多,此时,系统运作,大部分的状况是CPU在等I/O (硬盘/内存)

2020-08-08 13:31:37 227

原创 阿里巴巴开发规范之orm映射

总结 orm映射1,在表查询中,不要用select * ,1,增加查询分析解析成本。2,增加网络负担。2,pojo类 布尔类型不允许加is,而数据库必须加is,要求在resultmap中进行字段和属性之间的映射。3,不要用resultclass 作为返回类型,即使一一映射,反过来,一张表必须有一个resultmap ,方便维护,使字段与do 类解藕。4.sql.xml配置参数使用,推荐使用#{} ,#param#,不能使用${},会有sql注入问题。...

2020-08-07 13:26:18 221

原创 阿里巴巴开发规范之sql语句

总结1,禁止使用存储过程,不好维护,扩展性不好2,统计使用count(*),他会统计null列的值,count(col) 不会统计3,用isnull 判空效率更高4,使用分页查询的时候count为0直接返回,往下执行分页毫无意义,而且影响系统效率。5,数据订正一定要先select ,避免误删6,多表查询一定要取别名,避免出现 1052 ambiguous 模糊不清的错误。...

2020-08-07 09:40:19 537

原创 阿里巴巴开发手册之索引规约

阿里巴巴开发手册之索引规约业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引,不要以为唯一索引影响了insert速度,这个速度损耗可以忽略,但提高查找速度是明显的2.超过三个表禁止join,多表关联查询时,被关联的字段需要有索引即使是双表也要注意表索引,sql性能3varchar字段建立索引时,必须指定索引长度,没必要对全字段建立索引。4.页面搜索严禁左模糊或者全模糊,如果需要做搜索引擎来解决5.order by场景,注意索引的有序性。遵循最佳左前缀原则6,利用覆盖索引,避免回表

2020-08-07 00:28:29 786

原创 阿里巴巴开发手册之建表规约

建表规约总结表示是否逻辑的字段 用 is_xxx的命名方式。数据类型是 unsigned tinyint 1表示是,0表示否。不要用关键字命名字段。库名保持与应用名一致,表明表示业务+表作用。用 unsignd 无符号数能够扩大存储范围。字段允许冗余,提高查询性能,但需要考虑数据一致性。表行超过500万行才考虑分库分表,如果近三年都到不了,那就没必要分库分表。字段一律小写,linux上区分大小写,windows不区分。小数存储用decimal,不要用float或者double,会导致精度丢失

2020-08-05 21:17:16 1026

原创 安全规约

阿里巴巴开发手册之安全规约用户数据必须脱敏用户传入的任何参数必须做有效性验证ssrf,缓存击穿,任意重定向sql注入,order by 导致数据库慢查询

2020-08-05 21:13:20 255

原创 阿里巴巴开发手册之异常处理

阿里巴巴开发手册之异常处理1.对于预先能知道的异常比如:空指针npe,数组越界异常要预先检查规避2.异常不做流程控制,条件控制3,catch的时候一定要知道哪些是稳定代码,哪些是不稳定代码。4.异常捕获一定要处理,不处理直接抛给最外层业务方处理。5.不要在 finally 块中使用 return。说明:try 块中的 return 语句执行成功后,并不马上返回,而是继续执行 finally 块中的语句,如果此处存在 return 语句,则在此直接返回,无情丢弃掉 try 块中的返回点。6.捕

2020-08-03 16:34:09 753

原创 阿里巴巴开发规范之常量定义

常量定义先给一张图学习总结就分析gongwu某个系统,跨应用应用常量一般定义在api子模块下,当有依赖的时候直接通过部署打包到私有仓库,供其他系统使用,而自己本系统的共享常量一般写在core核心模块或者common模块下,供系统内的其他子模块复用。...

2020-07-30 14:45:15 556

原创 阿里巴巴开发手册之应用分层

阿里巴巴开发手册自己所感应用分层总结:其实,对于*****的开放接口设计来说,manager层实在 业务逻辑层之上的,区别并不是很大,但是service 和 manager 可以互相转化 ,就数据模型的传输而言,越到上层复用性越低但其实按照阿里的开发手册会更加规范化,业务逻辑层service如果需要依赖三方的外部接口,manager就相当于是一个dao层,让service层进行下层,挡在service层和外部层,可以更好的进行解藕,其实也可以理解为三方,中介,让service层有更强的通用能力,当

2020-07-29 21:18:53 774

原创 已知后序遍历,中序遍历,求层序遍历

思路根据后续遍历中序遍历,确定根节点确定中序遍历根节点的左右两边分别是左子树,右子树递归求解左子树递归求解右子树最终生成一颗二叉树package com.wuzhixin.client;/** * @author wuzhixin * @version 1.0 * @date 2020/2/29 18:23 * @desc */import java.util.L...

2020-02-29 20:01:55 611

原创 二分归并排序

package com.wuzhixin.test;import java.util.Arrays;public class BinarySort { public static void main(String[] args) { int arr[] = {11, 33, 22, 4, 5, 3, 99, 65}; merge(arr, 0, ...

2019-10-03 22:30:47 989

原创 Java8 stream api 操练

package com.wuzhixin.practice;import com.wuzhixin.javaendapi.Employee2;import org.junit.Before;import org.testng.annotations.Test;import java.util.Arrays;import java.util.Comparator;import jav...

2019-09-29 10:21:59 107 1

原创 java8新特性之方法引用

package com.wuzhixin.methodreference;import com.wuzhixin.java8.Employee;import org.testng.annotations.Test;import java.util.concurrent.Executor;import java.util.concurrent.ExecutorService;impo...

2019-09-27 09:48:53 98

原创 java8新特性

package com.wuzhixin.java8;import org.testng.annotations.Test;import org.w3c.dom.ls.LSOutput;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Random;i...

2019-09-27 08:44:32 86

原创 程序员必会十大算法-二分查找递归和非递归

就是依次和中间相比较,比中间大,往右边找,比中间小,往左边找(前提是有序) 比较简单package com.wuzhixin.suanfa;/** * 吴志新 * 2019/9/23-15:18 * _23designpatterns **/public class BinarySearch { public static void main(String[] args) ...

2019-09-23 16:03:51 136

原创 数据结构与算法之 图的深度优先和广度优先

图(无向图)的生成及深度优先遍历,及广度优先遍历图的广度和深度优先遍历 用如下图来解决图的创建:java代码:class Graph{ private int edgesNum; //边数 private char [] vertexs; //顶点 private int [][] weight; //描述两边是否联通 public Graph...

2019-09-22 18:58:09 381

原创 数据结构和算法之 最小生成树,普里姆算法

普利姆算法最小生成树,修路问题,覆盖所有节点,但是路径修路最短例如图片:求 abcdefg 城市修路能覆盖所有节点的最短路径代码如下 感觉用贪心算法也能做package com.wuzhixin.arithmetic;import java.util.Arrays;/** * 吴志新 * 2019/9/19-14:41 * _23designpatterns **/pu...

2019-09-19 20:12:39 199

原创 数据结构和算法 之 二叉排序树的查找,删除,遍历,创建

二叉排序树的查找首先二叉排序树,是将一个无序队列或者数组,循环创建后中序遍历形成有序。依次和根节点比较,如果相等则返回,如果不相等,则判断左子树和右子树上的值如果比左子树的值小,则进行左递归查找,如果比右子树的值大,则进行右递归查找。二叉排序树的删除分多种情况,如果删除的是叶子节点 则,先找到 parentNode,判断要删除的是左孩子还是右孩子进行删除 //是叶子节点,再判断是...

2019-09-12 12:11:21 189

原创 数据结构和算法之二叉排序树

二叉排序树 ( Binary Sort Tree) 或者为空;或者是具有如下特性的二叉树:(1)若根的左子树不空,则左子树上所有结点的关键字均小于根结点的关键字;(2)若根的右子树不空,则右子树上所有结点的关键字均大于根结点的关键字;(3)根的左、右子树也分别是二叉排序树。package com.wuzhixin.tree;import javax.xml.crypto.NodeSet...

2019-09-09 14:56:37 160

原创 数据结构与算法 之 插值查找

插值查找插值查找,有序表的一种查找方式。插值查找是根据查找关键子与查找表中最大最小记录关键字比较后的查找方法。插值查找基于二分查找,将查找点的选择改进为自适应选择,提高查找效率插值查找: int mid = start + (end-start)*(targetValue-arr[start])/(arr[end]-arr[start]);中间索引值 start表示数组的起始下标,en...

2019-09-05 15:45:26 162

原创 数据结构与算法 之 二分查找

二分查找二分查找思想: 就是将要查找的目标数 和 数据中间的数进行比较如果目标数比要查找的数小,则进行左递归,如果目标数比要查找的数大,则进行右递归。直到找到目标数。package com.wuzhixin.datastructrue;import java.util.ArrayList;/** * 吴志新 * 2019/9/5-8:42 * _23designpatterns...

2019-09-05 14:56:30 88

原创 数据结构之算法 - 快速排序

快速排序快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列,简而言之,就是一直将数据分成两部分,一部分比基准值大,一部分比基准值小,然后进行递归,退出递归循环条件后就变为有序的java代码package com.wuzhixin.dat...

2019-09-04 18:42:38 116

原创 数据结构与算法之 插入排序

插入排序思路:插入排序属于内部排序方法,是对于已经排序好的元素的插入方式,找寻该元素的适当位置假设第一个就是已经排好序的 序列 一共有n个数 那么排序一共有n-1次例如 数组 【100 30 120 10】 一共要比较3轮排序第一轮 【30 100 120 10】第二轮 【30 100 120 10】第三轮 【10 30 100 120】package com.wuzhixin.da...

2019-09-03 19:48:25 86

原创 数据结构与算法之 选择排序

选择排序思想:假定数组的第一个数为最小值,依次和和后面的数比较,找到最小值的小标和值 ,然后和该数组的第(1,2,3…n)位交换然后通过循环最终得到有序数组,思想很重要吧package com.wuzhixin.datastructrue;import java.util.Arrays;/** * 吴志新 * 2019/9/3-9:55 * _23designpatterns...

2019-09-03 11:26:41 48

原创 数据结构与算法之 冒泡排序

冒泡排序上图package com.wuzhixin.datastructrue;import java.util.Arrays;/** * * 2019/9/2-21:16 * _23designpatterns **/public class BubbleSort { public static void main(String[] args) { ...

2019-09-02 22:04:14 82

原创 spring 完成bean的最后创建原理

调用finishbeanfactoryinitialzation完成bean最后的创建点进此方法 发现最终会执行下面这个方法就是初始化最后的单实例bean继续跟进 可以看到先得到 所有beandefinitions 然后再开始创建对象如果是factorybean 就调用 getobject 创建 bean不是则 调用下面的方法进行创建bean调用dogetbean创建先获...

2019-06-10 12:30:16 485

原创 spring 创建bean之前准备原理

调用refresh方法 中 先执行 prepareReresh 方法点进去看源码接着往下执行初始话属性设置 点进去看源码 发现是空实现方法 专门给子类继承实现,自定义定制属性检验属性是否合法![在这里插入图片描述](https://img-blog.csdnimg.cn/20190609203738958.png?x-oss-process=image/watermark,type...

2019-06-09 22:18:48 617

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除