JavaScript中的this指向规则 源码来袭:call.apply手写实现与应用 理解建议:如果对this指向规则不了解的话,建议先了解this指向规则,最好还能对call和apply的使用和内部原理也有所了解,不然直接研究bind还是会有些难度的. 一.bind()的使用 //html <button id="btn"></button> //js var list = { init:function(){ this.ms = "duyi&qu…
一.为什么要提供配置的方法 经过前面的手写Spring IOC.手写Spring DI.手写Spring AOP,我们知道要创建一个bean对象,需要用户先定义好bean,然后注册到bean工厂才能创建一个bean对象.代码如下: static PreBuildBeanFactory bf = new PreBuildBeanFactory(); GenericBeanDefinition bd = new GenericBeanDefinition(); bd.setBeanClass(ABe…
一.AOP分析 问题1:AOP是什么? Aspect Oriented Programming 面向切面编程,在不改变类的代码的情况下,对类方法进行功能增强. 问题2:我们需要做什么? 在我们的框架中要向使用用户提供AOP功能,让他们可以通过AOP技术实现对类方法进行功能增强. 从"Aspect Oriented Programming 面向切面编程,在不改变类的代码的情况下,对类方法进行功能增强"这句话我们能得到下面的这些信息: 二.AOP概念学习 我们先来看一下下面的这张图 说明:…
一.IOC分析 1. IOC是什么? IOC:Inversion of Control控制反转,也称依赖倒置(反转) 问题:如何理解控制反转? 反转:依赖对象的获得被反转了.由自己创建,反转为从IOC容器中获取(和自动注入) 2. IOC容器带来什么好处? 1)代码更简洁,不需要去new需要使用的对象了. 2)面向接口编程,使用者与具体类解耦,易扩展.替换实现者. 3)可以方便进行AOP增强.进行AOP的前提是有IOC 3. IOC容器做什么工作? IOC容器的工作:负责创建.管理类实例,向使用…
事务控制分类 编程式事务控制          自己手动控制事务,就叫做编程式事务控制. Jdbc代码: Conn.setAutoCommite(false);  // 设置手动控制事务 Hibernate代码: Session.beginTransaction();    // 开启一个事务 [细粒度的事务控制: 可以对指定的方法.指定的方法的某几行添加事务控制] (比较灵活,但开发起来比较繁琐: 每次都要开启.提交.回滚.) 声明式事务控制 Spring提供了对事务的管理, 这个就叫声明式事…
手写实现lOC和AOP 上一部分我们理解了loC和AOP思想,我们先不考虑Spring是如何实现这两个思想的,此处准备了一个『银行转账」的案例,请分析该案例在代码层次有什么问题?分析之后使用我们已有知识解决这些问题(痛点).其实这个过程我们就是在一步步分析并手写实现loC和AOP. 第1节银行转账案例界面 第2节银行转账案例表结构 第3节银行转账案例代码调用关系 第4节银行转账案例关键代码 TransferServlet package com.lagou.edu.servlet;import…
关于this指向可以了解我的另一篇博客:JavaScript中的this指向规则. 一.call与apply的使用 回顾call与apply的this指向: var value = "window"; var obj = { value:"obj" } fonction show(){ console.log(this.value); } show();//window show.call(obj);//obj show(null);//window 回顾call与…
python的paramiko源码修改了一下,写了个操作命令的日志审计,但是记录的日志中也将backspace删除键记录成^H这个了,于是改了一下代码,用字符串的特性. 字符串具有列表的特性 >>> a="hello world" >>> a[:-1] 'hello worl' 转义符 转义字符 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n…
WeMall微信商城源码报名插件Apply,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php namespace Addons\Apply\Controller; class AdminController extends InitController { public function __construct() { parent::__construct(); } public function index() {…
前几天打开自己的博客园主页,无意间发现自己的园龄竟然有4年之久了.可是看自己的博客列表却是空空如也,其实之前也有写过,但是一直没发布(然而好像并没有什么卵用).刚开始学习编程时就接触到博客园,且在博客园学习了很多的知识,看过很多人的分享.说来也惭愧,自己没能为园友们分享自己的所学所得(毕竟水平比较差). 过去的一年也是辗转了几个城市换了几份工作(注定本命年不太平?).八月份来到现在所在的公司(OTA行业),公司是做互联网的,所以可能大家的前端都屌屌的?之前一直从事.NET开发(现在在这边也是),…
SOFARPC源码解析系列: 1. 源码分析---SOFARPC可扩展的机制SPI 2. 源码分析---SOFARPC客户端服务引用 3. 源码分析---SOFARPC客户端服务调用 4. 源码分析---SOFARPC服务端暴露 5.源码分析---SOFARPC调用服务 6.源码分析---和dubbo相比SOFARPC是如何实现负载均衡的? 7.源码分析---SOFARPC是如何实现连接管理与心跳? 8.源码分析---从设计模式中看SOFARPC中的EventBus? 9.源码分析---SOFA…
在看这篇文章时,笔者默认你已经看过AQS或者已经初步的了解AQS的内部过程.   先简单介绍一下ReentantLock,跟synchronized相同,是可重入的重量级锁.但是其用法则相当不同,首先ReentrantLock要显式的调用lock方法表示接下来的这段代码已经被当前线程锁住,其他线程需要执行时需要拿到这个锁才能执行,而当前线程在执行完之后要显式的释放锁,固定格式 lock.lock(); try { doSomething(); } finally { lock.unlock();…
一.应用场景 曾几何时,社交媒体已经驻扎到了几乎每个人的生活中.看看你身边的朋友,有几个不玩朋友圈的?就算他不玩朋友圈,那也得玩微博吧.再没有底线,也得玩QQ空间. 不过,作为程序员的我们,没事还是少上这些社交媒体为妙.反而,我们应该去考虑--如何实现这些社交媒体的开发呢? 我相信一定有不少朋友跟我一样,思考过这个问题,今天我就把自己的成果分享给大家,不一定完美,但求抛砖引玉,请大家多指教! 二.运行效果 下面是我做好的PC端和安卓端的运行界面.让大家先有一个直观的了解.后面我会进一步分享我设计…
http://www.cocoachina.com/ios/20160307/15501.html 什么?又要测试包! 做iOS开发几年了,每天除了码代码,改Bug之外,最让我烦恼的莫过于测试的妹子跑过来:“刚才的Bug都改完了吧,再打个包吧”.然而对于这个自己应尽的义务我已经烦透了,先不说要配置各种参数什么的,光是用xcode打包时候clean代码,验证证书就让我焦头烂额,时不时还要翻个墙甚至要手机开个热点才能打包成功.每次打包顺利的话,也要7~8分钟,每天n个包,想早点完成任务准时下班想都别…
通过阅读源码发现,HashSet底层的实现源码其实就是调用HashMap的方法实现的,所以如果你阅读过HashMap或对HashMap比较熟悉的话,那么阅读HashSet就很轻松,也很容易理解了.我之前也写了一篇关于hashMap源码阅读的文章,可以点击这里查看. 使用过HashSet的都清楚它保存的元素是不可以重复的,其实HashSet的元素都是保存在HashMap的key中的,而HashMap的key是没有重复的. 构造函数 /** * Constructs a new, empty set…
视频通过以下四个方面介绍了HASHMAP的内容 一. 什么是HashMap Hash散列将一个任意的长度通过某种算法(Hash函数算法)转换成一个固定的值. MAP:地图 x,y 存储 总结:通过HASH出来的值,然后通过值定位到这个MAP,然后value存储到这个MAP中的HASHMAP基本原理 1. KEY 是否可以为空?可以,Null当成一个Key来存储 2. 如果Hash KEY重复了会覆盖吗?会覆盖,但返回旧的值 3. HASHMAP什么时候做扩容?put 的时候,阀值高于或等于0.7…
最近这段时间系统性的学习了 BP 算法后写下了这篇学习笔记,因为能力有限,若有明显错误,还请指正. 什么是梯度下降和链式求导法则 假设我们有一个函数 J(w),如下图所示. 梯度下降示意图 现在,我们要求当 w 等于什么的时候,J(w) 能够取到最小值.从图中我们知道最小值在初始位置的左边,也就意味着如果想要使 J(w) 最小,w的值需要减小.而初始位置的切线的斜率a > 0(也即该位置对应的导数大于0),w = w – a 就能够让 w 的值减小,循环求导更新w直到 J(w) 取得最小值.如果…
1.Mybatis组成 动态SQL Config配置 Mapper配置 2.核心源码分析 Configuration源码解析 SqlSessionFactory源码解析 SqlSession源码解析 SqlSessionManager源码解析 3.手写Mybatis框架 Mybatis是什么? Mybatis是一种半自动ORM框架,前身是iBatis,源于“Internet”和“abatis”的组合,除了POJO和映射关系之外,还需要编写SQL语句:   Mybatis映射三要素: POJO 映…
1.什么是HashMap 2.源码分析 3.手写实现 4.不足 一.什么是HashMap hash散列 将一个任意长度通过某种算法(hash函数算法)换成一个固定值 map: 地图x,y 存储 总结: 通过HASH出来的值,然后通过值定位到map,然后value存储到这个map中 二.源码分析 HashMap在源码中的位置 Hash冲突 三. 手写实现 1.创建Map接口 public interface Map<K,V> { public V put(K k, V v); public V…
最新的Java架构师完整资料,完整视频+源码+文档. 每一套都是一百多个G的资料,无密. JAVA架构师全套课程 咕泡学院互联网架构师第一期 咕泡学院互联网架构师第二期 咕泡学院互联网架构师第三期 博学谷javaee在线就业2.0加薪课(价值15000) 开课吧2019廖雪峰JavaEE企业级分布式高级架构师完整版 享学课堂JAVA互联网架构师VIP 蚂蚁金服微服务互联网架构第一期-Java高端培训视频教程 蚂蚁金服微服务互联网架构第二期-Java高端培训视频教程 蚂蚁金服微服务互联网架构第三期…
上一篇文章我们手写了一个Redux,但是单纯的Redux只是一个状态机,是没有UI呈现的,所以一般我们使用的时候都会配合一个UI库,比如在React中使用Redux就会用到React-Redux这个库.这个库的作用是将Redux的状态机和React的UI呈现绑定在一起,当你dispatch action改变state的时候,会自动更新页面.本文还是从它的基本使用入手来自己写一个React-Redux,然后替换官方的NPM库,并保持功能一致. 本文全部代码已经上传GitHub,大家可以拿下来玩玩:…
本文节选自<Spring 5核心原理> 前面我们已经完成了Spring IoC.DI.MVC三大核心模块的功能,并保证了功能可用.接下来要完成Spring的另一个核心模块-AOP,这也是最难的部分. 1 基础配置 首先,在application.properties中增加如下自定义配置,作为Spring AOP的基础配置: #多切面配置可以在key前面加前缀 #例如 aspect.logAspect. #切面表达式# pointCut=public .* com.tom.spring.demo…
当学习成为了习惯,知识也就变成了常识. 感谢各位的 点赞.收藏和评论. 新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn 文章已收录到 github 仓库 liyongning/blog,欢迎 Watch 和 Star. 简介 专栏的第一篇,主要介绍专栏的目的.规划.适用人群,以及准备工作和扫盲的基础知识. 前言 最近在准备一些 Vue 系列的文章和视频,之前 Vue 的源码也读过好几遍,但是一直没写相关的文章,所以最近就计划写一写. 目标 精通 Vue 技术栈的源码原理,这是这系…
手写Java HashMap核心源码 上一章手写LinkedList核心源码,本章我们来手写Java HashMap的核心源码. 我们来先了解一下HashMap的原理.HashMap 字面意思 hash + map,map是映射的意思,HashMap就是用hash进行映射的意思.不明白?没关系.我们来具体讲解一下HashMap的原理. HashMap 使用分析 //1 存 HashMap<String,String> map = new HashMap<>(); map.put(&…
简介 avalon是国内 司徒正美 写的MVVM框架,相比同类框架它的特点是: 使用 observe 模式,性能高. 将原始对象用object.defineProperty重写,不需要用户像用knockout时那样显示定义各种属性. 对低版本的IE使用了VBScript来兼容,一直兼容到IE6. 需要看基础介绍的话建议直接看司徒的博客.在网上搜了一圈,发现已经有了avalon很好的源码分析,这里也推荐一下:地址. avalon在圈子里一直被诟病不够规范的问题,请各位不必再留言在我这里,看源码无非…
  体育馆综合会员管理系统源码  2014-7-11 [VS2010]功能介绍:本系统适用于羽毛球馆,台球馆,乒乓球馆,棋牌室,篮球馆等综合体育馆,可同时使用.本系统功能非常强大,包含体育馆内餐厅,超市收费等与一身的综合管理系统内部包含进销存系统(商品条码系统生成),短信发布系统,记次消费功能,会员管理系统,报表统计.导出打印等功能 ZYW纵向叠方块的游戏源码  2014-7-11 [VS2010]本源码是一个向上叠方块的小游戏源码.源码非常简单,但是游戏难度可不低哦~  1.按回车或者空格键重…
闲逛github发现一个javascript原生实现的小游戏,源码写的很清晰,适合想提高水平的同学观摩学习.读通源码后,我决定写一系列的博客来分析源码,从整体架构到具体实现细节来帮助一些想提高水平的朋友.源码地址为:https://github.com/keenwon/flappy-pig 需要提醒大家的是,我的分析模式是,先给出源码,加上注释让大家通读一遍,然后分解源码逐步分析. 下载了作者的源码后先看一下目录结构: 其中作者使用了Grunt进行了打包,会使用的grunt的小伙伴一看这个目录肯…
上一篇链接  http://www.cnblogs.com/yangfengwu/p/8743502.html 直接上源码:注意源码有两部分,第一部分是一开始的时候写在模块内部的,另一部分是存在手机内部的,方便后期更新功能 看第一部分的源码 亲们可以直接把下面的第一部分(注意只下载第一部分就行)的程序下载到8266里面就可以用自己的APP实现远程控制 怎么下载看我以前的文章,LUA开发的 --[[ GPIO0-- GPIO1-- GPIO2-- GPIO3-- GPIO4-- GPIO5-- G…
前传  中间件的由来 redux的操作的过程,用户操作的时候,我们通过dispatch分发一个action,纯函数reducer检测到该操作,并根据action的type属性,进行相应的运算,返回state,然后更新view. 但是一个很重要的问题,reducer对于action会立即进行运算,并返回state,如果我们的操作是要获取服务端的数据,需要调用接口类似的异步操作呢?很明显这样操作不行.所以,middleware中间件诞生了,中间件就是处理reducer处理不了的问题,对reducer…
最近把 vue-cli@2.x 和 create-react-app 的源码都看了一遍.由于现在官方推荐使用 vue-cli@3.0 ,改动比较大,所以就不写关于 vue-cli 的了(据说是因为 vue-cli@2.x 创建项目时操作有点太复杂了,于是犹雨溪大大就借鉴了 create-react-app 的思想,搞出了个零配置的 vue-cli@3.0 ,有兴趣的小伙伴可以去自己看一下哈).这篇随笔只讲解 create-react-app 的实现,但是,因为 create-react-app源…