上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页
摘要: 一、跳表(SkipList) 对于单链表,即使链表是有序的,如果想要在其中查找某个数据,也只能从头到尾遍历链表,这样效率自然就会很低,跳表就不一样了。跳表是一种可以用来快速查找的数据结构,有点类似于平衡树。它们都可以对元素进行快速的查找。但一个重要的区别是:对平衡树的插入和删除往往很可能导致平衡树进 阅读全文
posted @ 2020-03-17 17:13 JMCui 阅读(1411) 评论(0) 推荐(1) 编辑
摘要: Clustered and Secondary Indexes(聚集索引和二级索引) Every InnoDB table has a special index called the clustered index where the data for the rows is stored. Ty 阅读全文
posted @ 2020-03-16 14:13 JMCui 阅读(2491) 评论(0) 推荐(1) 编辑
摘要: jps JVM Process Status Tool,显示指定系统内所有的 HotSpot 虚拟机进程。显示信息包括虚拟机执行主类名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)。 jps [-q] [-mlvV] [<hosti 阅读全文
posted @ 2020-03-15 22:41 JMCui 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 一、为什么要序列化? 1、一般情况下,只有当 JVM 处于运行时,Java 对象才可能存在,即这些对象的生命周期不会比 JVM 的生命周期更长。但在现实应用中,就可能要求在 JVM 停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java 对象序列化就能够帮助我们实现该功能。 阅读全文
posted @ 2020-03-07 17:51 JMCui 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 原子性 原子(atom)指化学反应不可再分的基本微粒,原子在化学反应中不可分割。原子操作指的是不可分割的整体,多线程的原子性指的是没有其他线程能够中断或检查正在原子操作中的变量。 从内存模型来看,直接保证的原子性变量操作包括 read、load、assign、use、store 和 write,我们 阅读全文
posted @ 2020-03-04 09:21 JMCui 阅读(955) 评论(0) 推荐(1) 编辑
摘要: 一、四层与七层负载均衡在原理上的区别 1.图示 2.概述 四层负载均衡工作在 OSI 模型中的四层,即传输层。四层负载均衡只能根据报文中目标地址和源地址对请求进行转发,而无法修改或判断所请求资源的具体类型,然后经过负载均衡内部的调度算法转发至要处理请求的服务器。四层负载均衡单纯的提供了终端到终端的可 阅读全文
posted @ 2020-03-01 08:17 JMCui 阅读(1135) 评论(0) 推荐(0) 编辑
摘要: 一、CopyOnWrite 思想 写入时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种通用优化策略。其核心思想是,如果有多个调用者(Callers)同时访问相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者修改资源内容时,系 阅读全文
posted @ 2020-02-28 14:40 JMCui 阅读(15613) 评论(3) 推荐(13) 编辑
摘要: 一、概述 最早看到 SPI 这个机制是在 "dubbo 实现" 中,最近发现原来也不是什么新东西,竟然就是 JDK 中内置的玩意,今天就来一探究竟,看看它到底是什么玩意! SPI的全称是 Service Provider Interface,它是一种服务发现机制,它通过在 classPath 路径下 阅读全文
posted @ 2020-02-25 21:03 JMCui 阅读(904) 评论(0) 推荐(0) 编辑
摘要: 一、概述 即时编译器(Just In Time Compiler),也称为 JIT 编译器,它的主要工作是把热点代码编译成与本地平台相关的机器码,并进行各种层次的优化,从而提高代码执行的效率。 那么什么是热点代码呢?我们知道虚拟机通过解释器(Interpreter)来执行字节码文件,当虚拟机发现某个 阅读全文
posted @ 2020-01-17 13:03 JMCui 阅读(1687) 评论(2) 推荐(0) 编辑
摘要: 一、概述 从前面 文章 中我们可以了解到,javac 的三个步骤中,程序员唯一能干预的就是注解处理器部分,注解处理器类似于编译器的插件,在这些插件里面,可以读取、修改、添加抽象语法树中的任意元素。因此,只要有足够的创意,程序员可以通过自定义插入式注解处理器来实现许多原本只能在编码中完成的事情。我们常 阅读全文
posted @ 2020-01-09 21:18 JMCui 阅读(2233) 评论(1) 推荐(1) 编辑
摘要: 一、概述 如今,基于物理机、Java虚拟机或者是非 Java 的其他高级语言虚拟机(HLLVM)的语言,大多数都遵循如下现代经典编译原理的思路,在执行前先对程序源码进行词法分析和语法分析处理,把源码转化为抽象语法树。对于一门具体语言的实现来说,词法和语法分析乃至后面的优化器和目标代码生成器都可以选择 阅读全文
posted @ 2020-01-08 09:35 JMCui 阅读(1496) 评论(1) 推荐(2) 编辑
摘要: 2019 年只剩下寥寥数日了,这是我感觉过的最快的一年了,感觉还在年初,转眼已到年末,再看看碌碌无为、一事无成的自己,唉!满是成年人的辛酸...果然出了社会以后,最难琢磨透的还是人情和人心呀!实在是自己太单纯了。 2019 年发生了几件值得纪念的事: 4月份,放弃了外面高薪的工作,选择降薪加入创业公 阅读全文
posted @ 2019-12-31 12:55 JMCui 阅读(448) 评论(0) 推荐(1) 编辑
摘要: 最近使用 Mybatis 遇到了一个奇怪的问题,前端传了一个数字字符串(type = "1") ,我做了如下判断: 就这样系统无情的告诉我这样无法被解析,原因是字符串和数字无法判断相等!Are you kidding me?我这明明写的是字符串呀! 后来,跟踪了下源码,发现 '1' 确实被直接当成数 阅读全文
posted @ 2019-12-30 00:21 JMCui 阅读(1307) 评论(0) 推荐(1) 编辑
摘要: 一、概要 "前面的文章" 介绍了对象的创建过程,其中第三步 —— 分配内存,只是简单的介绍了分配的方式 —— 指针碰撞、空闲列表,其实对象在堆上分配还大有文章嘞。 对象的内存分配,往大方向上讲,就是在堆上分配,对象主要分配在新生代的 Eden 区上,如果启动了本地线程分配缓冲,将按线程优先在 TLA 阅读全文
posted @ 2019-12-22 15:59 JMCui 阅读(968) 评论(0) 推荐(0) 编辑
摘要: 一、概述 1. 哪些内存需要回收 上篇文章 我们介绍了 Java 内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟着回收了。 而方法区和 Java 堆是线程共享的,我们只有 阅读全文
posted @ 2019-12-17 21:05 JMCui 阅读(521) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页