自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (24)
  • 收藏
  • 关注

转载 HTTP原理

1. HTTP简介         HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。         在了解HTTP如何工作之前,我们先了解计算机

2016-04-19 13:20:21 622

转载 淘宝秒杀系统

一些数据:大家还记得2013年的小米秒杀吗?三款小米手机各11万台开卖,走的都是大秒系统,3分钟后成为双十一第一家也是最快破亿的旗舰店。经过日志统计,前端系统双11峰值有效请求约60w以上的QPS ,而后端cache的集群峰值近2000w/s、单机也近30w/s,但到真正的写时流量要小很多了,当时最高下单减库存tps是红米创造,达到1500/s。热点隔离:秒杀系统设计的第一个原则就是将

2016-04-18 22:36:00 1293

转载 top k问题

问题描述:有N(N>>10000)个整数,求出其中的前K个最大的数。(称作Top k或者Top 10)  问题分析:由于(1)输入的大量数据;(2)只要前K个,对整个输入数据的保存和排序是相当的不可取的。        可以利用数据结构的最小堆来处理该问题。        最小堆如图所示,对于每个非叶子节点的数值,一定不大于孩子节点的数值。这样可用含有K个节点的最小堆来

2016-04-18 21:07:29 274

原创 大数据面试题

1、海量日志数据,提取出某日访问百度次数最多的那个IP。  此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。  再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,

2016-04-18 20:58:37 854

转载 Trie树

一:概念     下面我们有and,as,at,cn,com这些关键词,那么如何构建trie树呢?从上面的图中,我们或多或少的可以发现一些好玩的特性。      第一:根节点不包含字符,除根节点外的每一个子节点都包含一个字符。      第二:从根节点到某一节点,路径上经过的字符连接起来,就是该节点对应的字符串。      第三:每个单词的公共前缀作

2016-04-18 16:15:13 271

转载 Linux命令分类

1.系统的关机、重启以及注销  shutdown -h now 关闭系统(1)   shutdown -h hours:minutes & 按预定时间关闭系统   shutdown -c 取消按预定时间关闭系统   shutdown -r now 重启(1)   init 0 关闭系统(2)   telinit 0 关闭系统(3)     reboot 重启(2)

2016-04-18 14:59:18 332

转载 数据库SQL优化总结

网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.

2016-04-18 13:25:11 319

转载 数据库表的垂直拆分和水平拆分

垂直拆分垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表通常我们按以下原则进行垂直拆分:把不常用的字段单独放在一张表;把text,blob等大字段拆分出来放在附表中;经常组合查询的列放在一张表中;垂直拆分更多时候就应该在数据表设计之初就执行的步骤,然后查询的时候用jion关键起来即可;水平拆分水平拆分是指数据表行的拆分,

2016-04-18 10:16:51 6325

原创 数据库优化的思路

1.SQL语句优化1)应尽量避免在 where 子句中使用!=或2)应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=03

2016-04-17 16:45:49 527

转载 mySQL数据库Sql语句执行效率检查--Explain命令

Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。Explain语法:explain select … from … [where ...]例如:explain select * from news;输出:+----+

2016-04-17 15:30:04 407

原创 背包问题

背包问题 背包问题是计算机科学里的经典问题。在最简单的形式中,包括试图将不同重量的数据项放到  背包中.以使背包最后达到指定的总重量。不需要把所有的选项都放入背包中。 举例来说,假设想要背包精确地承重20磅,并且有5个可以选择   放入的数据项,它们的重量  依次为11磅、8磅、7磅、6磅和5磅。对于选择放入的数据项数量不大时,人类很善于通过观察  就可以解决这个问题。于是

2016-04-15 23:38:58 484

转载 mybatis缓存

MyBatis缓存分为一级缓存和二级缓存一级缓存MyBatis的一级缓存指的是在一个Session域内,session为关闭的时候执行的查询会根据SQL为key被缓存(跟mysql缓存一样,修改任何参数的值都会导致缓存失效)1)单独使用MyBatis而不继承Spring,使用原生的MyBatis的SqlSessionFactory来构造sqlSession查询,是可以使用以

2016-04-15 10:41:15 1442

转载 优先级队列与堆排序

在很多应用中,我们通常需要按照优先级情况对待处理对象进行处理,比如首先处理优先级最高的对象,然后处理次高的对象。最简单的一个例子就是,在手机上玩游戏的时候,如果有来电,那么系统应该优先处理打进来的电话。在这种情况下,我们的数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(Priority Queue) 。本文首先介绍优先级队

2016-04-14 15:19:03 382

原创 快排简单版本

快排的思想很简单,但是要手写,有些细节可能要想一阵子。看到一种相对于传统快排更简单的方式public class Quick { public static void quicksort(int arr[], int l, int r) { if (l < r) { int pivot = partition(arr, l, r); quicksort(arr, l, piv

2016-04-13 21:08:51 797

转载 MySQL行级锁、表级锁、页级锁详细介绍

页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了

2016-04-13 13:55:26 268

原创 京东2016实习生招聘-选举游戏

京东2016实习生招聘 C++开发工程师在线考试编程题30分2/2选举游戏Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Problem Description:小东和其他小朋友正在玩一个关于选举的游戏。选举是通过投票的方式进行的,

2016-04-12 19:57:06 633

转载 进程的生命周期

进程是一个动态的实体,从创建到消亡,是一个进程的整个生命周期。进程可能会经历各种不同的状态,一般来说有三种状态。+ 就绪态: 进程已经获得了除cpu以外的所有其它资源,在就绪队列中等待cpu调度+ 执行状态: 已经获得cpu以及所有需要的资源正在运行+ 阻塞状态(等待状态): 进程因等待所需要的资源而放弃处理器,或者进程本来就不拥有处理器,且其它资源也没有满足状态转换:

2016-04-12 10:59:58 1645

转载 通道技术

1.通道及其作用:通道是一个独立于CPU的专管输入/输出控制的处理机,它控制设备与内存直接进行数据交换。引入通道的目的是:使数据的传输独立于CPU,使CPU从繁重的I/O工作中解脱出来. 它有自己的通道指令,这些通道指令受CPU启动,并在操作结束时向CPU发中断信号。通道方式进一步减轻了CPU的工作负担,增加了计算机系统的并行工作程度。 2.双通道技术:

2016-04-12 10:31:26 8482

原创 nosql数据库不提供事务

NoSQL数据库不提供事务机制原因在于其分布式特点,一系列写操作中访问的数据可能位于不同的分区服务器,这样的事务就变成分布式事务,在分布式事务中实现原子性需要彼此协调,而协调是耗费时间的,每台机器在一个大事务过程中必须依次确认,这就需要一种协议确保一个事务中没有任何一台机器写操作失败。这种协调是昂贵的。像MongoDB, Cassandra, HBase, DynamoDB, 和 Ri

2016-04-11 19:14:53 1321

转载 操作系统进程调度算法

一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队

2016-04-11 15:31:42 512

原创 OOD六大原则

OOD基本上有6大原则,而实际上都是互补的,也就是说一些原则需要利用另一些原则来实现自己。6大原则如下:1) Open-Close Principle(OCP),开-闭原则,讲的是设计要对扩展有好的支持,而对修改要严格限制。这是最重要也是最为抽象的原则,基本上我们所说的Reusable Software既是基于此原则而开发的。其他的原则也是对它的实现提供了路径。2) Liskov Subs

2016-04-11 15:17:16 3428

原创 jvm工作模式

目前的Java虚拟机支持Client和Server两种运行模式。使用参数-client可以指定使用Client模式,使用参数-server可以指定使用Server模式。默认情况下,虚拟机会根据当前计算机系统环境自动选择运行模式。使用-version参数可以查看当前的模式,如下所示:./java -version  java version "1.7.0_40"  Java(TM) SE R

2016-04-11 11:02:46 669

转载 java反射原理

要想理解反射,首先得了解类的加载过程,看下图:           我们的源代码经过编译之后变成字节码,然后在JVM中运行时通过类加载器加载字节码在内存中生成Class类对象,这个Class类对象内包含有field对象(类的成员变量生成)、constructor对象(类的构造方法生成)和method对象(类的方法生成)。当我们拿到一个类或者对象的时候就可以通过反射对它们进行

2016-04-11 10:26:20 873

转载 游标

一,游标是什么?                 游标是一段私有的SQL工作区,也就是一段内存区域,用于暂时存放受SQL语句影响到的数据。通俗理解就是将受影响的数据暂时放到了一个内存区域的虚表中,而这个虚表就是游标。        二,作用是什么?                  1,大家都知道数据库中的事物可以回滚,而游标在其中起着非常重要的作用,由于对数据

2016-04-11 10:19:30 270

原创 寻找直方图中最大矩形

题目描述有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。测试样例:[2,7,9,4,1],5返回:14import j

2016-04-10 13:36:54 1092

原创 八皇后问题

题目描述请设计一种算法,解决著名的n皇后问题。这里的n皇后问题指在一个nxn的棋盘上放置n个棋子,使得每行每列和每条对角线上都只有一个棋子,求其摆放的方法数。给定一个int n,请返回方法数,保证n小于等于10测试样例:1输出:1import java.util.*; public class Queens { public int sum=0;

2016-04-08 15:26:07 344

转载 Spring MVC工作流程图

图一图二 Spring工作流程描述      1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;      2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象

2016-04-08 12:59:13 283

转载 java面试重点

1.Java基础     ArrayList,HashMap等集合框架类,重要基础类String等的处理。HashMap的底层存储结构等。    (也可以顺带考察下对接口,继承,重载重写的基本理解;以及异常处理的注意事项)。 2. 数据结构与算法   常见的查找算法及时间复杂度。   常见的排序算法及时间复杂度。    比较重要的数据结构,如链表,队列,栈的基本理解及大致实

2016-04-07 14:13:14 391

原创 100的阶乘有多少个零

100! = 100*99*98*97*...*2*1 先看看结尾零是如何形成的:结尾零当一个5的倍数与2的倍数相乘时就会形成。所以我们只要计算有几对(2,5),就能知道有几个结尾零。 先来数5因子有几个:在100内,5作为因子的数有5, 10, 15, 20, 25... 总共有20个。但是注意到25, 50, 75, 100都包含了2个5作为因子(25=5*5,

2016-04-06 17:04:14 6817

原创 java类实例化顺序

public class Initializing { public static void main(String[] args) { new TestSub(); }}class Sample { Sample(String s) { System.out.println(s); } Sample() { Syste

2016-04-06 10:17:10 410

转载 无状态类与静态类

黑格尔有句名言:存在即合理。以此为论据的话,静态类的使用必然有其合理性。不过物极必反,一旦代码过于依赖静态类,其劣化的解决则不可避免。这就好比罂粟作为一种草本植物,有其在药理上的价值,但如果肆无忌惮的大量使用,它就变成了毒品。什么是静态类所谓静态类指的是无需实例化成对象,直接通过静态方式调用的类。代码如下:12345

2016-04-05 09:18:42 1046

转载 Spring事务传播属性和级别

一、Propagation (事务的传播属性)Propagation :  key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用:PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。P

2016-04-04 22:51:37 685

原创 用递归逆序一个单链表

题目描述输入一个链表,反转链表后,输出链表的所有元素。public class HeapPrint { public static ListNode ReverseList(ListNode head) { if (head == null||head.next == null) { return head; } ListNode q = head.next;

2016-04-04 18:02:57 1058

转载 分布式系统数据一致性

在前面三篇文章中,介绍了关于分布式系统中数据一致性的问题,这一篇主要介绍CAP定理以及自己对CAP定理的了解。CAP定理是2000年,由 Eric Brewer 提出来的Brewer认为在分布式的环境下设计和部署系统时,有3个核心的需求,以一种特殊的关系存在。这里的分布式系统说的是在物理上分布的系统,比如我们常见的web系统。这3个核心的需求是:Consistency,Av

2016-04-03 23:16:32 496

原创 java volatile内存操作细节

在 java 垃圾回收整理一文中,描述了jvm运行时刻内存的分配。其中有一个内存区域是jvm虚拟机栈,每一个线程运行时都有一个线程栈,线程栈保存了线程运行时候变量值信息。当线程访问某一个对象时候值的时候,首先通过对象的引用找到对应在堆内存的变量的值,然后把堆内存变量的具体值load到线程本地内存中,建立一个变量副本,之后线程就不再和对象在堆内存变量值有任何关系,而是直接修改副本变量

2016-04-03 16:48:46 498 1

原创 java项目日志

工程目录结构 1. 导入如上 log下的对应jar包 2. 在src下新建log4j.properties文件,类容如(详细配置:http://www.cnblogs.com/suman/archive/2010/10/23/1858864.html ) [plain] view plain# 定义 DEBUG 优先级, R 为日

2016-04-03 14:19:47 852

转载 java atomic

http://ifeve.com/java-atomic/引言Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。Atomic包介绍

2016-04-02 16:07:46 455

转载 java Semaphore

Semaphore为并发包中提供用于控制某资源同时可以被几个线程访问的类实例代码:[java] view plain?// 允许2个线程同时访问          final Semaphore semaphore = new Semaphore(2);          ExecutorService executorService =

2016-04-02 15:53:20 714

原创 自己写一个java.lang.String

可以,但是即使你写了这个类,也没有用。这个问题涉及到加载器的委托机制,在类加载器的结构图(在下面)中,BootStrap是顶层父类,ExtClassLoader是BootStrap类的子类,ExtClassLoader又是AppClassLoader的父类这里以java.lang.String为例,当我是使用到这个类时,Java虚拟机会将java.lang.String类的字节码加

2016-04-02 11:07:59 1462

转载 Java字节码浅析

http://ifeve.com/javacode2bytecode/明白Java代码是如何编译成字节码并在JVM上运行的非常重要,这有助于理解程序运行的时候究竟发生了些什么。理解这点不仅能搞清语言特性是如何实现的,并且在做方案讨论的时候能清楚相应的副作用及权衡利弊。本文介绍了Java代码是如何编译成字节码并在JVM上执行的。想了解JVM的内部结构以及字节码运行时用到的各个内存区域

2016-04-02 10:30:49 322

SSM整合demo maven工程

Spring Mybatis Spring-MVC整合demo

2016-05-13

SS整合工程

Spring Mybatis Maven整合demo

2016-05-13

Spring Mybatis整合的小demo

Spring Mybatis整合的小demo,spring mvc还没有加入

2016-05-13

Spring Mybatis整合

Spring Mybatis整合的小demo

2016-05-12

AOP 动态代理demo

AOP 动态代理demo,AOP 动态代理demo

2016-03-30

Mybatis快速入门.pdf

Mybatis快速入门

2016-03-25

Mybatis用户指南

Mybatis用户指南

2016-03-25

PieTTy WinScp

PieTTy WinScp,linux远程操作必备,绿色版,免安装

2016-03-18

struts2.3.16.1依赖包

struts2.3.16.1依赖包

2015-11-27

lucene in action源码

lucene in action的源码,适合学习,适合初学者使用

2015-11-27

eclipse sublime主题插件

eclipse的黑色主题的插件,用起来比较保护眼睛

2015-11-26

spring 3.2.12源码

spring源码,3.2.12版本,适合需要进一步学习spring的人使用

2015-11-25

Mahout 单机demo

mahout 推荐算法,csv格式为user,item,score对应的是用户,项目,评分

2015-11-23

网络爬虫的简单demo

简单的网络爬虫,适合于特定的静态网站,一般不适合于动态网站

2015-10-12

自己动手写网络爬虫源码part2

自己动手写网络爬虫源码part2,跟part1一起解压

2015-09-28

自己动手写网络爬虫源码part1

自己动手写网络爬虫源码part1,大小限制,另一部分在另一个页面里,一起解压

2015-09-28

Java RMI demo多对象

RMI 的demo,多个对象。

2015-09-26

Java RMI demo

RMI demo,别人的代码整理的,先运行server再运行client

2015-09-26

Google MapReduce论文中文版

Google MapReduce论文中文版

2015-08-17

nodejs 操作mongodb实现好友功能

nodejs 操作mongodb实现好友功能,封装成了一个库,方便使用

2015-07-10

nodejs 操作mongodb,插查删改

nodejs操作mongdb的一个类文件,直接调用即可,没有做过大并发检验,只在本机上做了测试

2015-07-10

安卓录音机

触摸录音,录音时根据声音大小以dialog形式显示强弱

2015-06-25

2048 c语言

c写的2048

2015-06-17

空空如也

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

TA关注的人

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