- 博客(25)
- 收藏
- 关注
原创 AOP的一些理解
AOP 有哪些? 何为静态何为动态?动态代理又有哪些?分为静态代理和动态代理 以AspectJ为代表的静态代理。 以Spring AOP为代表的动态代理静态代理: 就是AOP框架会在编译阶段生成AOP代理类,因此也称为编译时增强。 ApsectJ是静态代理的实现之一,也是最为流行的。静态代理由于在编译时就生成了代理类,效率相比动态代理要高一些。AspectJ可以单独使用,也可以和Spring结合使用 动态代理: 就是说 AOP 框架不会去修改编译时生成的字节码,而是
2020-12-15 10:23:20
127
原创 如何利用github搭建一个简单的博客?
搭建个人网站 github pages仅支持静态页面搭建完成后,直接访问https://用户名.github.io即可看到效果步骤:创建个人站点–>新建仓库(仓库名为用户名.github.io)在仓库中新建index.html浏览器输入网址即可访...
2019-03-04 18:43:44
354
3
原创 redis是如何持久化的?怎么用redis来处理分布式事务的?lua脚本怎么用?
redis的持久化save和bgsave的区别,bgsave是fork了一个子线程去实现持久化,在bgsave期间,客户端仍可以处理客户端请求redis的过期策略可以设置过期时间,但是要考虑当同一时间出现很多过期的话,会造成正常业务卡顿,redis内部每过25秒即(贪心)读取设置了过期时间的list,如果过期占其中超过1/4则会继续执行去过期稀释过期list,实际使用中最好在过期时间...
2019-02-22 11:20:05
616
原创 redis除了五种基本类型,还有其他什么高级类型呢?实际中的使用情况呢?
布隆过滤器bloom filter:判断是否存在(用户只能参加一次活动)原理:1.向布隆过滤器中添加 key 时,会使用多个 hash 函数对 key 进行 hash运算,然后对位数组长度进行取模运算得到一个位置,这样添加一个key会在多个位加1。2. 向布隆过滤器询问 key 是否存在时,跟 add 一样,也会把 hash 的几个位置都算出来,看看位数组中这几个位置是否都为 1,...
2019-02-22 10:48:14
1105
原创 kafka的概念理解
最近刚接触到kafka,所有做一些理解总结:如有建议和意见欢迎留言讨论消息队列的前世今生:消息协议?JMS协议 提供的 2 种消息模型 ,5 种不同的消息正文格式: 本质是java接口apiAMQP协议 提供了 5 种消息模型 ,1 种不同的消息正文格式byte[](二进制) ,兼容 JMS,跨语言,跨平台两种协议的区别: AMQP为消息定义了线路层(wire-le...
2019-02-22 10:39:17
144
原创 为什么mybatis中使用<if>拼接查询条件时,如果传入数字 0 ,使用 !=null !="" 为false,无法拼接上呢?
问题:在使用<if>标签时 传入数字类型,值为0;期望实际sql语句拼接该值,实际上未拼接该值原因:0!="" 被判定为false, 导致if判断为false不进行拼接操作因为mybatis中采用的时ognl的处理方式 “” == 0 ==false具体转换逻辑在ognl.OgnlOps.compareWithConversion中解决:一般直接判param !=nu...
2019-02-22 10:10:26
902
原创 mysql使用心得,如何在增删改查的基础上使sql运行的更快
前提:使用explain分析sql语句例:分析左右连接查询的sql使用join 默认是左连接,左边使用的是all右使用的是eq_ref使用left join 左边使用的是all右使用的是eq_ref,换一种更容易理解的说法:left 左表为驱动表(适合左表较小的情况)使用right join 右边使用的是all左边使用的是all,为什么左边一定是全表扫...
2019-02-22 10:00:13
223
原创 为什么会出现utf8,gbk,iso8859-1那么多编码?
总结历史原因虽然现在呈现utf大一统的趋势,但是个个编码的特点还是有必要了解一下,以方便日常使用和理解1. ascll:ASCII收录了空格及94个“可印刷字符”,足以给英语使用。但是,其他使用拉丁字母的语言(主要是欧洲国家的语言),都有一定数量的附加符号字母iso8859-1:ISO-8859-1编码是单字节编码,向下兼容ASCII,ISO-8859-1收录的字符除ASC...
2019-02-20 09:21:17
1029
原创 IP地址,子网掩码,网络地址,主机地址,特殊IP,保留IP等 从何而来?有何作用?
如何描述一台主机在网络上的位置呢?IP地址设计之初使用4字节,也就是84位来描述一个计算机的地址,形如:127.0.0.1,每字节最多表示256个数字[对应0-255]所以理论上可以给256256256256 约40+亿个电脑定位IP地址被分为五类,其中只有三类用于日常使用网络,D类用于组播,E类用于实验A类地址组成:第一个字节表示网络地址,第二,三,四个表示主机地址范围在:1.0...
2019-02-20 09:10:18
511
原创 http和https
为什么TCP要三次握手?问题的本质是,信道是不可靠的,但是我们要建立可靠的连接发送可靠的数据,也就是数据的传输需要是可靠的a -&amp;amp;gt;b ,b-&amp;amp;gt;a 如何确保b-&amp;amp;gt;a是已经成功的信道呢? a-&amp;amp;gt;b .所以 这个时候三次握手是一个理论的最小值怎么用CTR实现TLS/SSL呢?整个过程(实现TLS/SSL通信)中使用了非对称加密(确保对称加密的密钥安
2019-02-20 08:59:39
236
原创 关于深入浅出
经常看到,某书名如:深入浅出xxx深入浅出,读音shēn rù qiǎn chū,汉语成语,由深入显出演化而来。指言论或文章的观点主题意义深刻,但在语言文字的表达方式上却浅显易懂。出自《湖楼笔谈》或许一些作者对深入浅出有些误解,或许是我跟不上时代变迁和作者不在一个频道上结论:多读书是件好事,出书人很辛苦我也很理解,但是如果打算出书给大家分享的最好有为人师表的态度...
2019-02-19 10:48:05
126
原创 spring 注解实现aop
spring 配置文件 在配置文件中加入 <aop:aspectj-autoproxy /> 启用注解aop创建类:声明为spring组件,声明为切面类;创建方法 声明为前/后/环绕通知,声明切入点 参考spring中的事务注解,自定义注解 声明注解作用位置,声明生效时机 要实现在特定方法上加上自定义注解,来控制实现切面类是否执行 1.完善切面类 :扫描包的同时扫描注解ma
2017-12-31 17:55:06
224
原创 shell(希尔)排序和插入排序简介
插入排序 : 考虑这样一种情况: 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序. 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让
2017-11-02 18:53:02
263
原创 使用atom编辑适用于github的.md
### 标题使用不同数量的"#"来标识是什么层级,可以对应于HTML里面的H1-H6图片![教程图片](http://img.blog.csdn.net/20141121163821625?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb2thaXFpYW5nMTk5Mg==/font/5a6L5L2T/fontsize/400/fill/I0J
2017-10-10 14:47:56
589
原创 redis使用
安全实现: 采用绑定IP的方式来进行控制,在redis.conf文件找到如下配置: If you want you can bind a single interface, if the bind option is not specified all the interfaces will listen for incoming connections. bind 127.0
2017-09-26 15:10:01
240
原创 闭包小结
闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量.[http://www.w3school.com.cn/js/pro_js_functions_closures.asp]wiki :在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的
2017-09-26 13:21:41
196
转载 强,弱类型语言小结
强类型:偏向于不容忍隐式类型转换。譬如说haskell的int就不能变成double 弱类型:偏向于容忍隐式类型转换。譬如说C语言的int可以变成double 静态类型:编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误。 动态类型:编译的时候不知道每一个变量的类型,因为类型错误而不能做的事情是运行时错误。譬如说你不能对一个数字a写a[10]当数组用。
2017-09-26 11:13:46
313
原创 node.js 小结
1.轮循机制(event loop)首先产生三个概念: 生产者,事件队列,消费者事件轮询在其中的作用: 主要是针对事件队列进行轮询,事件生产者将事件排队放入队列中,队列另外一端有一个线程称为事件消费者会不断查询队列中是否有事件,如果有事件,就会去执行.为了防止执行过程中有堵塞操作影响当前线程读取队列,事件消费者线程会委托一个线程池专门执行这些堵塞操作 仅有一个单线程不断地轮回查询队
2017-09-25 11:47:26
178
原创 Mysql小结
1.优化: sql在执行时会对用户输入做自动优化 对于文件存储,在数据库中存储文件地址而不是文件内容 使用引擎接口而不是sql接口,可以减少中间件的消耗 优化权限控制减少sql开销,数据库执行sql语句前会对当前用户的权限进行判断.例如:表级列级的权限 对使用innoDB引擎的优化 mysql5.6版本后(引擎1.2x) 调整LS
2017-08-30 18:12:46
147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人