六游的博客小站
Golang中的反射与接口详解
发布于: 2019-09-26 更新于: 2019-09-26

反射

反射是许多强类型语言都会具有的功能,我们先看一下维基百科中对反射的定义

在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。

反射带给我们了一种在...

阅读更多
Channel&Select源码分析
发布于: 2019-08-27 更新于: 2019-08-28

Golang中使用了channel这个概念来实现了基于消息传递的并发,借用了CSP中channel与process这两个概念,其中process在Go语言中表现为Goroutine,各个Goroutine之间通过channel通讯来实现数据共享

在此篇文章中,我们首先会介绍Golang中channel的基本结构,以及结构中各个对象的用途。然后会介绍Golang中channel的接受、发送数据以及select的zero-case,one-case,multi-case等常...

阅读更多
Context初识、源码解析以及最佳实践
发布于: 2019-06-13 更新于: 2019-06-14

本篇文章将从Golang Context包的一些基本使用场景开始,逐步深入,从源码的角度来介绍一下Context的实现原理。最后会给出一些在使用Context时候的一些建议

初识Context

Context是Go1.7之后才出现的一个标准库,Context诞生的主要目的是为了...

阅读更多
SpringBoot自动配置与依赖详解
发布于: 2019-04-14 更新于: 2019-04-14

第一次使用SpringBoot,便为塔强大的自动配置而惊叹,开箱即用这样的特性对入门者实在是太友好了,通过官方的启动器生成的maven工程,pom文件中只有寥寥几行,这样用起来的确是比传统的Spring要轻松不少,但是每每通过项目的主入口类来启动整个项目的时候,心里面总不免产生这样的疑问:如此多的配置与依赖,SpringBoot是怎么样做到帮我们自动配置的呢?

MySQL主从数据库读写分离
发布于: 2019-03-31 更新于: 2019-03-31

什么是数据库读写分离

在业务量比较大时,我们经常会采用主从数据库读写分离的技术来降低我们主服务器的压力,降低服务器崩溃与数据丢失的可能性。下面来讲解主从数据库的核心理论知识。在Master主数据库中有一个BinaryLog日志文件,它会将我们所有的对数据库的操作记录下来,并且主数据库在...

阅读更多
Java的动态代理
发布于: 2019-03-24 更新于: 2019-03-31

什么是代理模式

代理模式的含义就是,存在一个代理类,代理类中持有真实对象的引用,以实现我们对真实对象的访问控制。代理模式有低耦合,外界无感知的优点。使用代理模式可以帮助我们简化许多需求的开发。比如说你需要对现有的业务代码加入日志记录与前置数据验证的功能,如果我们一个一个的去修改源码,就显得有点不够优雅...

阅读更多
梯度下降法
发布于: 2019-03-05 更新于: 2019-03-31

什么是梯度下降法

首先我们需要知道的一点是梯度下降法并不是某种特定的机器学习算法,一种基于搜索的最优化方法,我们可以通过梯度下降法来最小化一个损失函数。与之对应的是梯度上升法,是用来最大化一个效用函数的方法。

线性回归算法
发布于: 2019-03-04 更新于: 2019-03-31

LinearRegression的思想

线性回归是用来解决回归类问题的最简单最基础的算法,虽然简单,但是它也是之后逻辑回归,多项式回归等复杂算法的基础。我相信大部分人在高中都已经接触过简单的一元线性回归,那就先让我们从简单的一元线性...

阅读更多
K最近邻算法
发布于: 2019-03-03 更新于: 2019-03-31

KNN算法的基本思想


之所以选择KNN算法作为我学习的第一个机器学期算法,是因为这个算法的思想很简单,我可以快速的入门机器学习,并且借此算法了解到许多在机器学习经常会出现的概念。

首先从一个小例子来了解KNN...

阅读更多