
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Redis只在两个地方用到了跳跃表,一个是实现有序集合键(zset),另一个是在集群节点中用作内部数据结构,除此之外,跳表在Redis里面没有其他用途。但是为什么用跳表而不用红黑树呢?猜想如下:**1)**在做范围查找的时候,平衡树比skiplist操作要复杂。在平衡树上,我们找到指定范围的小值之后,还需要以中序遍历的顺序继续寻找其它不超过大值的节点。如果不对平衡树进行一定的改造,这里的中序遍..
1.LVS的简介1.1 LVS是什么LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器,是一个虚拟的服务器集群系统。它是我们国家的章文嵩博士的一个开源项目,是中国国内最早出现的自由软件项目之一。1.2 LVS的作用一、LVS主要用于多服务器的负载均衡。二、它工作在网络层,可以实现高性能,高可用的服务器集群技术。三、它可把许多低性能的服务器组合...
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。 使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。设计模式的六大原则:总原则:开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓
今天打算整理之前写的一个插件功能上传到github,新建一个java项目,项目使用的是spring mvc框架,然后再调试页面的时候发现找不到静态资源文件,如下图所示: 于是我第一时间检查jsp上页面资源的路径:<link rel="stylesheet" type="text/css" href="css/amazeui.min.
今天在在本地测试spark程序,点击运行main方法,报了如下错误:(spark版本为2.1.1)org.apache.spark.SparkException: A master URL must be set in your configurationat org.apache.spark.SparkContext.<init>(SparkContext.scala...
java虚拟机是通过可达性分析算法来判定对象是否存活。当一个对象到GC Roots没有任何引用链相连,或者说从GC Roots到这个对象不可达时,这个对象将会被判定为是可回收的对象。在Java语言中,可作为GC Roots的对象包括下面几种:虚拟机栈(栈帧中的本地变量表)中引用的对象方法区中类静态属性引用的对象方法区中常量引用的对象本地方法栈中JNI(即一般说的Native方法)引用...
HotSpot 虚拟机在 JDK 1.7 之后提供了7款垃圾收集器,分别是:1.Serial收集器2.ParNew收集器3.Parallel Scavenge收集器.4.Serial Old收集器5.Parallel Old收集器6.CMS收集器7.G1收集器其中Serial、ParNew和Parallel Scavenge是新生代垃圾收集器,而Serial Old、Paralle...
在《java虚拟机规范》规范中,对本地方法栈和虚拟机栈的使用中规定了两个异常:stackoverflowerror与outofmemoryerror,那么,这种异常有什么区别呢?无论是本地方法栈,还是虚拟机栈,都是线程私有的,当一个线程启动的时候,jvm就会给这个线程分配一个栈,然后每当你调用一个方法的时候,jvm就会往这个栈压入一个栈帧,方法调用完毕,栈帧出栈。注意,一个栈能容纳的栈帧...
一、查看步骤cmd执行命令:java -XX:+PrintCommandLineFlags -version输出如下(举例):针对上述的-XX:UseParallelGC,这边我们引用《深入理解Java虚拟机:JVM高级特性与最佳实践》的介绍:也就是说,打开此开关,使用的垃圾收集器是:新生代(Parallel Scavenge),老年代(Ps MarkSw...
堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中。给堆内存分代是为了提高对象内存分配和垃圾回收的效率。试想一下,如果堆内存没有区域划分,所有的新创建的对象和生命周期很长的对象放在一起,随着程序的执行,堆内存需要频繁进行垃圾收集,而每次回收都要遍历所有的对象,遍历这些对象所花费的时间代价是巨大的,会严重影响我们的GC效率,这简直太可怕了。..







