最近碰到的异步处理的操作比较多,异步就是不等想要的结果返回执行接下来的其他操作,等异步结果返回后直接调用已经注册好的处理方法完成后续操作。异步的思想是非常棒的,相比轮询的方式而言,异步的实现方式无疑是高效并且优雅的。本文介绍了包括Future,AIO和有点类似于单机版的Map-Reduce的fork/join框架。
关于常用设计模式的一些思考
很早就接触了设计模式,今天在看一些文章的时候发现自己在学习理解设计模式的时候有些偏差。设计模式应该服务于特定的场景,并且是经过前人经验总结而来的代码解决思路,这种解决思路考虑的点在于如何能够让代码之间的耦合度更低并且减少冗余,使得代码耦合度更低的目的是为了程序更好的扩展,所谓的更好的扩展是指在功能的变动或者扩展的情况下尽可能触发较少的改动。所以在学习设计模式的时候,一个好的学习方式应该是模拟程序的扩展来比较在使用前人总结的设计模式和现有代码的不同之处,只有真正体会到其优点,才能尽得其精髓。
机器学习总结系列之逻辑回归
线性回归适合连续型的函数拟合任务(也就是回归任务),即对于不同的输入x,输出y所属于的域是一个连续的空间,而对于y是确定的离散的空间的分类任务,比如y只取0,1的二分类问题,仍然使用线性回归的直线拟合无法适应大量输入x而y只限制在0-1的情况,我们需要一种值域在0-1的函数来作为我们的假设函数。
机器学习总结系列之Introduction
人工智能在如今无疑是如日中天,它的各个子领域也因此得到了极大的发展,机器学习作为人工智能的一个子领域以赋予机器以人类特有的学习能力也得以大放异彩,它被应用在各个领域,典型的例子如个性化推荐,数据挖掘,垃圾邮件识别等等,机器学习算法和传统算法的不同之处在于传统算法研究的是如何解决一个有特定结果的问题,而机器学习算法则是挖掘数据中潜在的规律,然后对输入做出预测。按1959年Arthur Samuel的说法来说,机器学习领域研究的是如何赋予计算机解决不能被明确编程解决的问题的学习能力。
python和shell基础语法对比
python和shell都是我们经常使用的脚本语言,平时python主要用来写一些小型的任务,shell则在使用liunx系统部署任务的时候用的比较多,由于两者有一些相似之处,时间长了容易混掉,所以这里作文对一些基础的语法需求总结、比较、归纳,以为后用。
深入理解红黑树原理与实现
红黑树(RBTree)是一种相比平衡二叉树(AVL)平衡要求较低的的一种二叉搜索树,所谓平衡要求较低的意思是相比AVL树的每个节点的左右子树的高度差不能超过2,红黑树使用红黑两种颜色来标记二叉搜索树中的节点,并对这种着色进行限制,使得在插入删除操作后对不符合的情况必须进行调整来保持这样一种限制,从而实现自我平衡。我们先来看一下红黑树的定义,也就是着色限制
MyBatis之关联映射解析
ORM框架一个重要的技术点是处理对象间的关联映射,比如一对一,一对多的关系,和Hibernate不同的是,Mybatis的使用需要开发人员直接和SQL语句进行打交道,所以在处理关联映射的时候不论是文件配置还是实现原理都是大有不同的,本文致力于使用一个例子讲清楚不同关联映射关系的配置和使用方法,以及作者在使用过程中对不同的参数的作用的深入理解。
MyBatis之TypeHandler解析
MyBatis作为一个ORM框架,在实现对象到关系数据库映射的过程中,一个无法避免的问题就是Java类型和JDBC类型之间的相互转换,而TypeHandler的作用就在于此,其作用是实现Java类型向JDBC类型之间的转换。
idea使用maven构建mybatis程序遇到的几个问题
最近在学习Mabatis的使用,在使用idea maven构建mabatis程序的时候遇到了以往在非maven构建的问题,总结如下,以备后查。