2019-11-14 10:29
上一篇我们实现了使用梯度下降法的自适应线性神经元,这个方法会使用所有的训练样本来对权重向量进行更新,也可以称之为批量梯度下降(batch gradient descent)。假设现在我们数据集中拥有大量的样本,比如百万条样本,那么如果我们现在使用批量梯度下降来训练模型,每更新一次权重向量,我们都要使用百万条样本,训练时间很长,效率很低,我们能不能找到一种方法,既能使用梯度下降法,但是又不要每次更新权重都要使用到所有的样本,于是随机梯度下降法(stochastic gradient descent)便被提出来了。...
2019-11-14 10:29
上文说到,我们可以在 BeanPostProcessor 中对 bean 的初始化前化做手脚,当时也说了,我完全可以生成一个代理类丢回去。
代理类肯定要为用户做一些事情,不可能像学设计模式的时候创建个代理类,然后简单的在前面打印一句话,后面打印一句话,这叫啥事啊,难怪当时听不懂。最好是这个方法的前后过程可以自户自己定义。
小明说,这还不好办,cglib 已经有现成的了,jdk 也可以实现动态代理,看 mybatis 其实也是这么干的,不然你想它一个接口怎么就能找到 xml 的实现呢,可以参照下 mybatis 的代码。
...
2019-11-14 10:46
断断续续看了十来天,终于看完了,还是学到些东西,这本书还是不错的,各方面都有涉及。
补充了下之前不完善的JS 知识
笔记一般只记必要的东西。
Table of Contents
1. JavaScript 基础
1.1. JavaScript 简介
1.1.1. Web 脚本编程基础
1.2. 创建简单的脚本
1.2.1. 在 Web 页面里添加 JavaScript
1.2.2. 编写 JavaScript 语句
1.2.3. 变量
1.2.4. 操作符
1.2.5. 捕获鼠标事件
1.3. 使用函数
...
2019-11-14 10:49
本文收录在Python从入门到精通系列文章系列...
2019-11-14 10:32
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是软件开发中的一个热点,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性。
比如说三层的调用:UI => BLL => DAL,正常来说我们会在UI层调用BLL层某个类的某个方法,然后BLL层某个类的某个方法又会调用DAL层某个类的某个方法,可以说通常情况下我们都是这么干的;如果说UI调BLL、BLL调DAL是纵向的话,那么AOP就是横向的,AOP可以做到在调用BLL层或DAL层任意方法之前之后做一些统一的逻辑处理。
...
2019-11-14 10:13
你好,我是彤哥,本篇是netty系列的第二篇。
简介
本文将介绍linux中的五种IO模型,同时也会介绍阻塞/非阻塞与同步/异步的区别。
何为IO模型
对于一次IO操作,数据会先拷贝到内核空间中,然后再从内核空间拷贝到用户空间中,所以一次read操作,会经历两个阶段:
(1)等待数据准备
(2)数据从内核空间拷贝到用户空间
基于以上两个阶段就产生了五种不同的IO模式。
阻塞IO
从进程发起IO操作,一直等待上述两个阶段完成。
两阶段一起阻塞。
blocking-io
非阻塞IO
...
2019-11-14 10:45
二哥,我今年大二,看你分享的《阿里巴巴 Java 开发手册》上有一段内容说:“循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作符。”到底为什么啊,我平常一直就用的‘+’号操作符啊!二哥有空的时候能否写一篇文章分析一下呢?
就在昨天,一位叫小菜的读者微信我说了上面这段话。
我当时看到这条微信的第一感觉是:小菜你也太菜了吧,这都不知道为啥啊!我估计正在读这篇文章的你也会有同样的感觉。
但扪心自问,在我做程序员的前两年内,我也不知道为啥。遇到字符串拼接就上“+”号操作符,甭管是不是在循环体内。和小菜比起来,我当时可没他这么幸运,还有一位热心的“二哥”能够分享这份价值连城的开发手册。
...
2019-11-14 10:38
一、 SpringSecurity 框架简介官网:https://projects.spring.io/spring-security/...
2019-11-14 10:07
命周期决定了IServiceProvider对象采用怎样的方式提供和释放服务实例。虽然不同版本的依赖注入框架针对服务实例的生命周期管理采用了不同的实现,但总的来说原理还是类似的。在我们提供的依赖注入框架Cat中,我们已经模拟了三种生命周期模式的实现原理,接下来我们结合“服务范围”的概念来对这个话题做进一步讲述。
一、服务范围(Service Scope)
对于依赖注入框架采用的三种生命周期模式(Singleton、Scoped和Transient)来说,Singleton和Transient都具有明确的语义,但是Scoped代表一种怎样的生命周期模式,很多初学者往往搞不清楚。这里所谓的Scope指的是由IServiceScope接口表示的“服务范围”,该范围由IServiceScopeFactory接口表示的“服务范围工厂”来创建。如下面的代码片段所示,IServiceProvider的扩展方法CreateScope正是利用提供的IServiceScopeFactory服务实例来创建作为服务范围的IServiceScope对象。
...
2019-11-14 10:33
1 简介
本文介绍了作者所在团队在某次上线前测试发现问题、定位问题并修复上线的过程,最后给出几点经验总结,希望对大家有用。
2 过程
(1)今天需要上线,但昨晚才合并了所有分支,时间很紧迫。不幸的是,打包测试后发现有一个Springboot应用(模块R)启动失败,但进程没有死,一直在输出报错日志。
(2)Google了相关的报错日志,并没有找到相关信息。查看了模块R的代码变更,并没有什么改动,以为是环境问题;部署到其它环境后,发现问题依旧存在,而且这个问题从未出现过,基本排除环境问题,问题还是出在代码上。
...
2019-11-14 10:53
近年来随着交互界面的精细化,TypeScript越来越流行,前端的设计也越来复杂,而类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式。许多工具都能生成C#类图,有些工具也能生成TypeScript类图,如tsuml,但存在一些局限性。...
2019-11-14 10:57
人生苦短,我选Python
前文传送门
小白学 Python(1):开篇
小白学 Python(2):基础数据类型(上)
小白学 Python(3):基础数据类型(下)
小白学 Python(4):变量基础操作
小白学 Python(5):基础运算符(上)
小白学 Python(6):基础运算符(下)
小白学 Python(7):基础流程控制(上)
小白学 Python(8):基础流程控制(下)
小白学 Python(9):基础数据结构(列表)(上)
小白学 Python(10):基础数据结构(列表)(下)
...