摘要: Redis用到的底层数据结构有:简单动态字符串、双端链表、字典、压缩列表、整数集合、跳跃表等,Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包括字符串对象、列表对象、哈希对象、集合对象和有序结合对象共5种类型的对象。 1 简单动态字符串 re 阅读全文
posted @ 2017-07-01 21:54 luoxn28 阅读(3795) 评论(0) 推荐(1) 编辑
摘要: 1 Redis内存管理 Redis内存管理相关文件为zmalloc.c/zmalloc.h,其只是对C中内存管理函数做了简单的封装,屏蔽了底层平台的差异,并增加了内存使用情况统计的功能。 void *zmalloc(size_t size) { // 多申请的一部分内存用于存储当前分配了多少自己的内 阅读全文
posted @ 2017-07-01 11:20 luoxn28 阅读(1844) 评论(0) 推荐(0) 编辑
摘要: 1 Class对象 理解RTTI在Java中的工作原理,首先需要知道类型信息在运行时是如何表示的,这是由Class对象来完成的,它包含了与类有关的信息。Class对象就是用来创建所有“常规”对象的,Java使用Class对象来执行RTTI,即使你正在执行的是类似类型转换这样的操作。 每个类都会产生一 阅读全文
posted @ 2017-06-30 21:23 luoxn28 阅读(3609) 评论(0) 推荐(1) 编辑
摘要: MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情: MyBatis的主要设计目的就是让我们对执行SQL语句时对输入输出的数据管理更加方便,所以方便地写出SQL和方便地获取SQL的执行结果才是MyBatis的核心竞争力。 MyBatis的配置 MyBa 阅读全文
posted @ 2017-04-08 23:12 luoxn28 阅读(139605) 评论(7) 推荐(26) 编辑
摘要: Spring是一个轻量级的Java开发框架,其提供的两大基础功能为IoC和AOP,其中IoC为依赖反转(Inversion of Control)。IOC容器的基本理念就是“为别人服务”,那为别人服务什么呢?其中最重要就是业务对象的构建管理和业务对象之间的依赖绑定。 业务对象的构建管理:业务场景中, 阅读全文
posted @ 2017-03-26 23:15 luoxn28 阅读(2549) 评论(0) 推荐(0) 编辑
摘要: 如果计算一个表达式,比如 4+5+6*2,随着计算器的不同,简单的四功能计算器是30,许多科学计算器知道乘法的优先级高于加法,所以科学答案是21。典型计算顺序可以是计算4+5,存为临时变量a,再计算6*2,存为b,最后计算a+b可得出最后结果。这种操作顺序如下:45+62*+ 这种记法就是后缀表达式 阅读全文
posted @ 2017-02-12 16:03 luoxn28 阅读(4351) 评论(0) 推荐(0) 编辑
摘要: 设计模式,及软件设计中的“套路”。每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题解决方案的核心,这样,你就能一次又一次的使用该方案而不必做重复的劳动。设计模式大约有20多种,它们使人们可以更加简单方便的复用成功的设计和体系结构,提高系统维护的有效性。与设计模式密切相关的是6大设计原则, 阅读全文
posted @ 2017-01-15 22:20 luoxn28 阅读(1968) 评论(0) 推荐(10) 编辑
摘要: Dubbo服务的发展和作用: 首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后的常规方案演进历程。 其次,当服务越来越多之后,我们需要做哪些服务治理? 最后,是dubbo的架构图 注册中心的选择 dubbo支持多种类型的注册中心: Multicast注册中心 Z 阅读全文
posted @ 2017-01-02 19:55 luoxn28 阅读(8339) 评论(0) 推荐(0) 编辑
摘要: IO复用是Linux中的IO模型之一,IO复用就是进程预先告诉内核需要监视的IO条件,使得内核一旦发现进程指定的一个或多个IO条件就绪,就通过进程进程处理,从而不会在单个IO上阻塞了。Linux中,提供了select、poll、epoll三种接口函数来实现IO复用。 1、select函数 nfds参 阅读全文
posted @ 2016-12-26 23:40 luoxn28 阅读(6086) 评论(0) 推荐(1) 编辑
摘要: Linux下C程序都是main开始的,main函数的原型是: 其中argc是命令行参数的数目,argc是指向参数的各个指针所构成的数组。 进程终止 C程序中有3个函数用于正常终止一个进程,_exit和_Exit立即进入内核,exit则做一些清理工作后后进入内核,比如清理IO缓冲区数据,对于所有打开的 阅读全文
posted @ 2016-12-24 22:24 luoxn28 阅读(619) 评论(0) 推荐(0) 编辑
摘要: MySQL管理 用户管理 新建用户之后可以使用如下命令来删除用户: grant语句赋予用户相应的权限,通俗的讲,grant相当于以下sql语句: 如何查看用户的相应权限呢? 如何撤销用户对应的权限? 用户管理更新过后请使用FLUSH PRIVILEGES,否则可能会出现ERROR 1396错误。 表 阅读全文
posted @ 2016-12-17 20:57 luoxn28 阅读(2302) 评论(0) 推荐(0) 编辑
摘要: 线程是程序中完成一个独立任务的完整执行序列,即一个可调度的实体;进程相当于运行中程序的一种抽象。根据运行环境的调度者的身份,线程可分为内核线程和用户线程。内核线程,在有的系统上称为LWP(Light Weight Process,轻量级线程),运行在内核空间,由内核调度;用户线程运行在用户空间,由线 阅读全文
posted @ 2016-11-24 23:50 luoxn28 阅读(15286) 评论(0) 推荐(1) 编辑
摘要: 并发是一种能并行运行多个程序或并行运行一个程序中多个部分的能力。如果程序中一个耗时的任务能以异步或并行的方式运行,那么整个程序的吞吐量和可交互性将大大改善。现代的PC都有多个CPU或一个CPU中有多个核,是否能合理运用多核的能力将成为一个大规模应用程序的关键。 Java基础部分知识总结点击Java并 阅读全文
posted @ 2016-11-13 21:10 luoxn28 阅读(8181) 评论(0) 推荐(2) 编辑
摘要: 并发是一种能并行运行多个程序或并行运行一个程序中多个部分的能力。如果程序中一个耗时的任务能以异步或并行的方式运行,那么整个程序的吞吐量和可 交互性将大大改善。现代的PC都有多个CPU或一个CPU中有多个核,是否能合理运用多核的能力将成为一个大规模应用程序的关键。 线程基本使用 编写线程运行时执行的代 阅读全文
posted @ 2016-11-01 23:56 luoxn28 阅读(2569) 评论(2) 推荐(4) 编辑
摘要: 最近看到一个多线程面试题,有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC… 看到这个题目,首先想到的是解决方法是定义一个Integer类对象,初始化为0,由3个线程共享,如果Integer对象取余3之后等于0,则打印A,同时进行加1操作;如果Integer对象取 阅读全文
posted @ 2016-10-30 14:20 luoxn28 阅读(2010) 评论(0) 推荐(1) 编辑