- 博客(136)
- 收藏
- 关注
原创 k-近邻算法 (KNN)
k-近邻算法采用测量不同特征值之间的距离的方法来进行分类。 将测试数据的每个特征与样本集中的数据对应的特征进行比较, 然后算法提取样本集中特征最相似的数据(最近邻)的分类标签。最后,选择k个相似数据中出现最多次的分类,作为新数据的分类。 可以看出,这个算法的重点便是选择合适距离算法来计算测试数据与样本数据之间的距离。 常见的距离算法诸如:编辑距离算法,欧式距离算法,ng...
2015-12-17 16:31:10
188
原创 数组双指针算法的研究
双指针算法在数组/链表操作中应用广泛,很多时候,为了完成某个目的,常常需要不断的循环检查数组或是链表,又或者需要拷贝出额外的存贮空间来保存中间结果。在其中的一些情况下,如果能够合理的应用数组双指针,则可以极大的减少算法的时间复杂度和空间复杂度。 根据初始双指针的位置,可以将之分为双头部指针,双尾部指针以及头尾指针. 今天我们就来看几个利用数组双指针算法的例子。 案例1:...
2015-07-14 16:59:28
322
原创 初识ThreadLocal
最近公司在进行Java开发人员的招聘活动,其中有一道面试题是这样的:“请简单描述一下ThreadLocal类的作用。” 结果发现有很多的面试者没有听说过ThreadLocal或者听说过却不知道这个类究竟是用来做什么的。 因此这里写一篇博客来介绍一下ThreadLocal这个类。 在我们日常的项目开发中,ThreadLocal并不是一个经常使用的类。它更多的是被用在诸如Spring,To...
2015-07-07 13:15:07
215
原创 摩尔投票法
摩尔投票法 提问: 给定一个int型数组,找出该数组中出现次数最多的int值。 解决方案: 遍历该数组,统计每个int值出现次数,再遍历该集合,取出出现次数最大的int值。 这算是一个比较经典的解决办法,其中可能会用到Map来做统计。如果不使用Map,则时间复杂度会超过线性复杂度。除此之外,也没有什么特别好的办法。 今天在leetcode上遇到这样一道题目,...
2015-06-30 20:13:46
467
原创 Less is just less
2011年,苹果公司在乔布斯老爷子的带领下,推出了一款划时代的产品,iphone4。 它与之前的所有手机都是如此的不同,极致简约,功能强大,符合每个人对完美手机的梦想。 至此整个移动行业被重新洗牌。而移动互联网的时代,也正式宣告到来。 移动端的互联网是如此的不同,以至于业界将其拆分为独立领域,与传统的互联网分庭抗礼,各占半壁江山。 仅仅过去五年,你已经很难再看到一身职业装,...
2015-03-25 14:47:56
165
原创 (转)Case Class和模式匹配
(转自:http://www.tuicool.com/articles/amEBva) 本专题侧重介绍Scala的case class和pattern matching(模式匹配),这俩个两个程序结构对于处理树结构的数据非常有帮助。Scala的case class使得对对象进行模式匹配变得非常方便,简单的来说,Scala的case class就是在普通的类定义前加case这个关键字,然后...
2015-01-20 13:30:17
393
原创 (转)最长回文字串算法
来自(http://blog.163.com/zhaohai_1988/blog/static/2095100852012716105847112/) 最长回文子串 最长回文子串是最初我在网易笔试的时候遇见的,当时天真的把原字符串S倒转过来成为S‘,以为这样就将问题转化成为了求S和S’的最长公共子串的问题,而这个问题是典型的DP问题,我也...
2015-01-18 14:30:18
170
原创 [转]App特质的延迟初始化
一个同事的问题,下面的代码运行时引用的外部变量TestClosure.count没有初始化:object TestClosure extends App { val words = Array("a","ab","abc") val count = 10 val cnt = words.map{word => (word, count)} c...
2015-01-15 17:31:10
168
原创 项目沉思录 - 1.1
1.1 团队缺什么 (团队结构) 什么样的团队才能算是优秀的团队?关于这个问题,真是仁者见仁。但一个为人认知的基本规则是,十个个最优秀的员工,并不能组成一个优秀的团队。 那么一个优秀团队里面究竟应该具备什么样的性质呢? 首先,团队的人数应当受到限制。作为基层管理者,需要至少做到一定程度上的微观管理。然而微观管理是一件很费时费力的事情,即使是最优秀的管理人员,也能难对一...
2013-03-19 14:13:21
149
原创 项目沉思录 - 1.0
团队建设 1. 招聘 1.1 团队缺什么 (团队结构) 1.2 一山不容二虎 1.3 化学反应催化剂 1.4 球队的非卖品(围绕核心球员建队) 2. 日常工作 2.1 你的位置 2.2 使用催化剂 2.3 互补结对 2.4 警戒线 2.5 奖罚机制 2.6 工作标准及模板 2.7 以人为本 3. 员工晋升...
2012-07-14 08:33:59
167
原创 项目沉思录 - 0
我常常会回忆起我职业生涯初期的两个项目: 其中一个庞大,复杂,项目开发人员数量多。项目中每个人似乎都很忙,可却又不完全清楚自己的职责。系统哪怕最边角处作出一点细微的变动,都有可能导致无法预计的结果。人员在不停地变换,每天都有人因为忍受不了无休止的加班而离职。而新员工仅仅经过简单的培训,就开始上岗编码,并被委以重任。项目经理热爱技术,曾经在开会时,花两个小时时间给整个团队讲关于数据库的新技术。同时项...
2012-07-12 16:30:10
144
原创 简单工作流引擎
从公司的一个项目中挖出来的工作流引擎的代码,虽然是一个很简单的模型,但却包含了不凡的思想。 对于数据流处理的代码来说,这样的结构有助于将来的维护和扩展。 使用起来也很简单,继承相应的step,实现业务逻辑,并在启动加载的时候将所有的step拼装起来就可以了。 代码很简单,直接贴出来给大家看了: public interface FlowStep { /** * E...
2012-07-06 16:58:43
202
原创 Always clean the ThreadLocal variables.
Any variable stored in ThreadLocal are per thread as we knew, but most people does know that even the thread has been expeired or dead, it's copy of the variable in ThreadLocal won't disappear. I ...
2012-05-24 09:16:38
211
JBoss的安全
最近做了一个JBoss安全的项目,对JBoss安全的内容有了一些了解,这些了解仅限于开发阶段,在这里记录下来,免得忘记了。照着JBoss Admin Guide关于Security的章节来写,不然太乱了。有些就直接翻译过来了。安全在Java中具备两种意思,1.客户端:这个应用是从哪里来的,我允许它做些什么。2.服务端:谁在执行这个应用,我允许他做些什么。这篇文章里面只讨...
2012-05-24 08:54:17
132
原创 STRUTS2 源码 - Logging System
看了STRUTS2的源码,了解了它的logging系统,觉得还是蛮有意思的,用到了很多设计模式。 先看类结构图: 1. 工厂方法模式这个就不说了,直接明了。 2. 伪单例模式LoggerFactory是个抽象方法,同时里面也包含了对于LoggerFactory的伪单例实现。为什么是伪单例,因为看起来像是单例模式,但其实你也可以创建多个实例: ...
2012-05-24 08:51:52
158
原创 Log4j 代码学习 - Factory
我们最早提到,Log4j的初始代码在LogManager的静态块中。里面包含了许多初始化工作的代码,我们来看一下: static { Hierarchy h = new Hierarchy(new RootLogger(Level.DEBUG)); repositorySelector = new DefaultRepositorySelector(h); ....
2012-05-17 08:47:13
245
原创 Log4j 代码学习 - Appender
在上一篇文章里,我们故意遗漏了一个重要的接口,AppenderAttachable: public interface AppenderAttachable { public void addAppender(Appender newAppender); public Enumeration getAllAppenders(); public Appender g...
2012-05-16 09:09:17
333
原创 Log4j 代码学习
最近闲来无事,正好手头上有Log4j的代码,于是就拿来学习了下。 想来这个小工具也用了很多年了,但是从来没有真正的去了解过内部机制,经过一番学习后,发现结构还是蛮不错的,里面有很多东西值得学习。 总的来说,Log4j的代码我认为可以分为这几大部分: 1. 产品Logger2. 附件Appender3. 仓储Repository4. 生产工厂Factory5. 配置管...
2012-05-15 14:58:07
124
原创 存储中间计算结果的动态规划算法
public class RodCutting { public static void main(String[] args) { int n = 5; int[] prices = new int[]{1, 4, 5, 6, 8}; long start = System.currentTimeMillis(); System.out.println(cu...
2012-04-18 15:50:48
305
原创 The process framework
1. Process groupsInitiating, Planning, Executing, Monitoring&Controlling, Closing 2. The relationships between phasesSequential relationship means when your project has phases that happen ...
2012-02-16 13:54:37
132
原创 Organizations, constraints, and projects
1. What is a project expediter and project coordinator.A project expediter just record the status and not managing the project.A project coordinator is like a expediter, except that coordinator ty...
2012-02-13 13:31:12
137
原创 Introduction to PMP
1. What you need to be a good project manager? a. Knowledge All the tools and techniques in the PMBOK. b. Performance Keeping your nose tothe grindstone and doing good work to make a deliv...
2012-02-06 14:24:25
174
原创 java7中的ThreadLocalRandom(转)
今天早上看到一个关于java7中的ThreadLocalRandom的用法的帖子,说是比Math.Random()速度要快一倍,转过来学习一下 : When I first wrote this blog my intention was to introduce you to a class ThreadLocalRandom which is new in Java 7 to gene...
2012-01-20 09:08:31
303
原创 You are buying a purse? You are not really buying the purse
The China Premium. Fake Prestige Sells Tickets.Posted by Dan on December 09, 2011Spoke with a client the other day, who for reasons that will soon become apparent, I am not going to name. This...
2011-12-13 09:59:55
267
原创 (转)追MM与23种设计模式
1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向...
2011-11-16 14:13:02
134
原创 (转)Java 参数列表
下面的讨论以Windows平台的Sun MicroSystem实现的java5虚拟机为蓝本,其他操作系统或其他公司实现的虚拟机参数会有部分不同,但大部分含义都和Windows上的类似。Java5与以前版本相比,虚拟机参数大部分保持了向前兼容,同时也增加了一些新的参数,本文将对这些参数的作用作详细描述,使虚拟机能更符合运行环境的需要,获得更好的性能和稳定性。Java在运行已编...
2011-11-05 19:48:03
116
原创 (转)TOMCAT源码分析
TOMCAT源码分析(启动框架)前言: 本文是我阅读了TOMCAT源码后的一些心得。 主要是讲解TOMCAT的系统框架, 以及启动流程。若有错漏之处,敬请批评指教!建议: 毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, 是不那么容易掌握TOMCAT的框架的。 所以得实践、实践、再实践。 建议下载一份TOMCAT的源码, 调试通过, 然后单步跟踪其启动过程。 如果有不明白的地方,...
2011-10-17 16:06:46
94
java写的四则运算器
本打算做一个从RE到NFA的转换器,思路已经理清了,但是在动手做的时候,遇到了很多问题,有些技术难点都遗忘了,包括如何定义闭包,如何利用递归来实现。 于是回头重新拾起这些技术,边学边思考,做了个四则运算器练练手,为着那个大目标做准备。 基本的思路是这样的: 根据输入的四则运算表达式,生成一棵二叉树,树的根节点是操作符,而子树可能是叶子节点,即数字。也可能是另一个运算表...
2011-08-19 22:19:18
198
原创 Tomcat 源码学习 之 Http11ConnectionHandler
Class Nameorg.apache.coyote.http11.Http11ConnectionHandlerInheritanceHandlerRelated ClassesHttp11ProtocolRequestGroupInfoHttp11ProcessorFunctionalityMaitainance ...
2011-07-14 11:31:36
389
原创 Tomcat 源码学习 之 JIoEndpoint(转)
本来想自己写的,结果在网上找到别人写的,概括的非常详细,就直接转过来了: Tomcat中提供了多种处理Socket的实现:JIoEndpoint、AprEndpoint和NioEndpoint。其中JIoEndpoint是最常见的一种实现方式。 JIOEndpoint中的线程有3部分:Socket侦听线程、监控线程和Executor。 Socket侦听线程该线程由内部类...
2011-07-13 13:48:41
294
原创 Tomcat 源码学习 之 Connector
类名org.apache.catalina.Connector.Conector继承关系LifecycleMBeanBase关联类ProtocolHandlerAdapterAbstractEndPointHandlerProcessor实现功能监听Request,assgin给恰当的Processor,返回Res...
2011-07-12 10:14:00
124
Tomcat 源码学习 之 StandardService
类名org.apache.catalina.core.StandardService继承关系LifecycleMBeanBaseService关联类ContainerConnectorExcecutor实现功能管理子组件 分析从这节开始,我们就真正进入了对开发人员来说至关重要的一些...
2011-07-07 15:57:02
162
Tomcat 源码学习 之 AprLifecycleListener
类名org.apache.catalina.core.AprLifecycleListener继承关系LifecycleListener关联类org.apache.tomcat.jni.Libraryorg.apache.tomcat.jni.SSL实现功能检查是否具有 APR/native 库,如果有则将其加载 ...
2011-06-30 16:52:13
1230
原创 Tomcat 源码学习 之 StandardServer
类名StandardServer继承关系LifecycleMBeanBaseServer关联类NaingResourcesPropertyChangeSupportService实现功能管理Service及全局的resources 分析 在catalina类中管理及维护的Server实例,...
2011-06-29 14:59:44
221
原创 Tomcat 源码学习 之 Catalina
类名Catalina继承关系 无关联类StringManagerServerDigester实现功能读取配置文件,加载Tomcat关键类Server状态管理 分析 要分析Catalina...
2011-06-12 18:06:48
103
原创 Tomcat 源码学习 之 Bootstrap
类名Bootstrap继承关系 无关联类CatalinaClassLoaderFactoryMBeanServer实现功能创建Tomcat的classLoader机制代理Catalina方法调用初始化全局变量CATALINA_HOME_PROP 和 CATALINA_BASE_...
2011-06-08 09:57:37
129
原创 Tomcat整体架构图(转)
从前辈那里转过来的:[img]http://dl.iteye.com/upload/attachment/493761/73429d4f-c9ca-304f-8db0-4cfd43ee1280.jpg[/img]
2011-06-06 10:35:19
90
原创 一种简单并且统一的处理异常的办法
之前做的一个项目中,有一些对异常处理的封装,如果抛出的异常是项目特定的异常,则直接抛出。如果不是,则进行一个封装。 现在的做法是这样的:[code="java"]catch (InputValidationFault ive) { throw new InputValidationFault(ive.getMessage(), "");} catch (InputLimit...
2011-06-04 12:21:45
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人