自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大闲人柴毛毛

博观而约取,厚积而薄发

  • 博客(5)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 轻量级线程池的实现

写在前面最近因为项目需要,自己写了个单生产者-多消费者的消息队列模型。多线程真的不是等闲之辈能玩儿的,我花了两个小时进行设计与编码,却花了两天的时间调试与运行。在这里,我把我遇到的坑与大家分享。需求的由来一开始我需要实现一个记录用户操作日志的功能,目的是给商家用户提供客户行为分析的能力。要记录的信息包括客户的访问时间、IP、在网站上所做的操作等。其中,客户的地域信息是个重要的分析项,所以必须要把IP

2016-12-23 12:00:01 3392 1

原创 稳扎稳打JavaScript(四)——闭包

闭包是JS语言的又一大核心,如果要从内存角度充分理解闭包的话,建议大家先预习下先前的几篇讲博客: 稳扎稳打JavaScript(一)——作用域链 稳扎稳打JavaScript(二)——图解对象内存模型 稳扎稳打JavaScript(三)——创建对象的几种方式什么是闭包定义 闭包是一个能够访问其他函数作用域的函数。这句话看似拗口,如果读过先前的几篇博客,那理解起来应该不难。下面来解析一下这

2016-12-17 16:33:48 2347 2

原创 稳扎稳打JavaScript(三)——创建对象的几种方式

有了前面两篇文章的基础后,我们来谈一谈在JS中创建对象的几种方式。 建议大家先预习下先前的两篇博客: 稳扎稳打JavaScript(一)——作用域链 稳扎稳打JavaScript(二)——图解对象内存模型在JS中,创建对象的方式有很多,而且各有千秋,我们需要根据实际的业务需求选择不同的方式。1. 工厂模式这是创建对象最为简单的方式。1.1. 定义方式工厂模式的思想是:将对象构建的过程封装在一个

2016-12-17 09:57:46 2724 1

原创 稳扎稳打JavaScript(二)——图解对象内存模型

1. 什么是JS对象?在JS中,对象是一组无序属性的集合。其中,属性可以是基本数据类型、引用类型、函数。如下面这个对象的例子:var chai={ name : "柴毛毛", // 属性为基本数据类型 perosn : { // 属性为引用类型 address : "xxx", sex : "man" }, getName : func

2016-12-13 23:14:48 6632 2

原创 稳扎稳打JavaScript(一)——作用域链内存模型

几个概念在开始之前,先了解几个概念。1.1. 作用域作用域是指当前正在执行的代码能够访问到变量的范围;每个函数都有各自的作用域,存储函数所有的局部变量;1.2. 变量对象变量对象用于存储函数各自的局部变量;每个函数都有各自的变量对象,并且在函数执行时被创建;上文提到:“每个函数都有各自的作用域,用于存储函数的局部变量”,其实这句话并不严谨。作用域中存储的其实是变量对象的引用,而变量对象才

2016-12-10 13:43:03 5587 5

剑指offer算法实现java版——面试题19二叉树的镜像

分析:所谓“镜像”就是从镜子里看到的样子。我们可以画一棵二叉树,然后画出该二叉树的镜像。画完图之后我们会发现,所谓“二叉树的镜像”就是把二叉树中所有子树的左孩子和右孩子进行交换。因此需要遍历二叉树所有的结点,在遍历的同时交换非叶子结点的左右子树。遍历我们可以使用先序遍历,首先判断当前根结点是否为叶子结点,若非叶子结点,则交换左右孩子,然后再分别对左右孩子进行相同的操作。

2016-03-14

剑指offer算法实现java版——面试题21包含min函数的栈

实现一个栈,要求使用O(1)时间获取栈中最小值,O(1)执行pop、push操作。

2016-03-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除