- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 【推荐】二叉树的递归与非递归遍历实现
对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就 是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历 中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍历 前序遍历按照“根结点-左孩子-右孩子”的顺序进行访问。 1....
2018-02-28 23:49:03 288
原创 redis cluster 性能探讨
一些总结:1. 多线程对同一个 Key 操作时, Redis 服务是根据先到先作的原则,其他排队(可设置为直接丢弃),因为是单线程。 2. 修改默认的超时时间,默认 2 秒。但是大部份的操作都在 30ms 以内。3. 对集群来说,3.1 一般来说普通的服务器都是 50K~100K 级别 GET 操作并发(每个核心)这个水平,根据具体的部署方法和配套工具,会有浮动 对本机的普通 Redis (非集群...
2018-02-28 17:41:09 1746
转载 redis cluster 添加 删除 重分配 节点
edis cluster配置好,并运行一段时间后,我们想添加节点,或者删除节点,该怎么办呢。一,redis cluster命令行查看复制打印?//集群(cluster) CLUSTER INFO 打印集群的信息 CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。 //节点(node) CLUSTER MEET <ip> <p...
2018-02-28 15:03:47 481
转载 Redis集群:集群常用命令及说明
Redis集群:集群常用命令及说明一、本文目的 介绍集群的基本情况及常用命令 二、集群的特点 3、集群优缺点三、集群客户端命令(redis-cli -c -p port)集群cluster info :打印集群的信息cluster nodes :列出集群当前已知的所有节点( node),以及这些节点的相关信息。节点cluster meet <ip> <port...
2018-02-28 11:54:06 10235
转载 注册邮箱验证激活技术
一.思路1.数据库加三个字段,state:(0:未激活,1:激活成功),ActiCode:(放激活码),token_exptime(过期时间,用来验证激活邮件是否过期)2.用户填写资料,点击注册,插入数据成功,state字段默认是0,同时生成一个ActiCode(用传过来的邮箱、密码、和当前时间加密形成)也存入数据库3.发送邮件。。。提示用户登录邮箱激活。。。邮件中带一个激活成功页的URL,URL...
2018-02-27 15:05:58 1159
转载 Apache Shiro: Java的安全框架
pache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了。具体的文章见下面的博客:http://jinnians...
2018-02-26 11:32:59 453
转载 推荐: Java lock 的内部实现 AQS
一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。 以下是本文的目录大纲:概述框架...
2018-02-12 16:04:03 483
转载 一个压长定式衍生出的一个角部攻防
压长定式也叫靠压定式,是一组定式的统称。选出其中一个被称为压虎的定式,来说明角里的常见变化。本文适合北京证书2级至2段水平的棋童.图01:基本定式。为便于叙述,本定式白棋先走,白15是此型的要点。或许会有人说黑12长有些软弱,应该走白13长的位置,这也是一个定式,但不是本文论述的范畴。 图02:实战中,不少小朋友甚至弈城中的成人棋友都会把白15走到本图挡角的位置。这步棋是错招,给黑方在白角里走出...
2018-02-11 19:08:58 2889
转载 推荐:分布式理论系列
从ACID到CAP到BASE2PC到3PC到Paxos到Raft到ISR复制、分片和路由副本更新策略负载均衡算法及手段RWN及Quorum与强一致性序本文主要讲述分布式系统开发的一些相关理论基础。一、ACID事务的四个特征:1、Atomic原子性事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程中,要么全部执行成功,要么全部不执行,任何一项失败,整个事务回滚,只有全部都执行成功,...
2018-02-10 12:35:57 1384
转载 推荐:分布式系统理论基础 - CAP
引言CAP是分布式系统、特别是分布式存储领域中被讨论最多的理论,“什么是CAP定理?”在Quora 分布式系统分类下排名 FAQ 的 No.1。CAP在程序员中也有较广的普及,它不仅仅是“C、A、P不能同时满足,最多只能3选2”,以下尝试综合各方观点,从发展历史、工程实践等角度讲述CAP理论。希望大家透过本文对CAP理论有更多地了解和认识。CAP定理CAP由Eric Brewer在20...
2018-02-09 23:29:28 366
原创 kafka 命令列表
kafka 基于0.8.0版本的命令用法:查看topic分布情况kafka-list-topic.sh# bin/kafka-list-topic.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 (列出所有topic的分区情况)# bin/kafka-list-topic.sh --zookeeper 192.168.197
2018-02-07 20:05:11 373
转载 Java8新特性——StreamAPI(一)
1. 流的基本概念1.1 什么是流?流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合。众所周知,集合操作非常麻烦,若要对集合进行筛选、投影,需要写大量的代码,而流是以声明的形式操作集合,它就像SQL语句,我们只需告诉流需要对集合进行什么操作,它就会自动进行操作,并将执行结果交给你,无需我们自己手写代码。因此,流的集合操作对我们来说
2018-02-01 20:13:48 300
转载 java的字节码增强的方式
1、修改字节码第一步要用的工具有ASM、javassist、cglib(基于ASM),用来修改字节码。2、加载新的字节码第二步,自定义ClassLoader来加载修改后的字节码3、替换原来的字节码或者替换掉原来的字节码,这里主要有两种技术:1、在JVM加载用户的Class时,拦截,返回修改后的字节码2、在运行时,使用Instrumentation.redefin
2018-02-01 16:41:53 1158
转载 JVM即时编译(JIT)
Java JIT(just in time)即时编译器是sun公司采用了hotspot虚拟机取代其开发的classic vm之后引入的一项技术,目的在于提高java程序的性能,改变人们“java比C/C++慢很多”这一尴尬印象。说起来是编译器,但此编译器与通常说的javac那个编译器不同,它其实是将字节码编译为硬件可执行的机器码的。图片来自于网络如上图可以看出,整个java应用程序
2018-02-01 16:12:09 246
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人