最新博文

  • Redis的过期键删除策略以及内存淘汰策略

    Redis的过期键删除策略以及内存淘汰策略

    Redis的数据已经设置了TTL,不是过期就已经删除了吗?为什么还存在所谓的淘汰策略呢?这个原因我们需要从redis的过期策略聊起。一、Redis过期键策略redis键的过期时间都保存在过期字典中,过期键的删除策略有3种:定时删除:在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时...

    2020-10-10 38 Redis

    阅读全文
  • Redis五种常见数据结构的实现及使用场景

    Redis五种常见数据结构的实现及使用场景

    一、Redis对象底层数据结构Redis底层数据结构共有八种,如下表所示:编码类型编码所对应的底层数据结构REDIS_ENCODING_INT8字节的long长整型REDIS_ENCODING_EMBSTRembstr编码的简单动态字符串REDIS_ENCODING_RAW简单动态字符串RED...

    2020-10-06 55 Redis

    阅读全文
  • 数据库事务:隔离级别实现——MVCC与锁

    数据库事务:隔离级别实现——MVCC与锁

    这是数据库事务分享的第二篇,上一篇讲解了数据库事务并发会产生的问题,这篇会详细讲数据库如何避免这些问题,也就是如何实现隔离,主要是讲两种主流技术方案——MVCC与锁,理解了MVCC与锁,就可以举一反三地看各种数据库并发控制方案,并理解每种实现能解决的问题以及需要开发者自己注意的并发问题,以更好...

    2020-10-02 46 MySQL

    阅读全文
  • 深入理解Java内存模型

    深入理解Java内存模型

    注意这里是Java内存模型,不是Java内存结构,这两个就不是在同一级别上的东东,有些人会把Java内存模型误解为Java内存结构,然后在面试问到的时候很自信的答到堆,栈,GC垃圾回收,最后和面试官想问的问题相差甚远。本文我们就来学习一下JMM有关的基础知识吧!思维导图什么是JMM?JMM就是...

    2020-09-25 57 Java多线程与高并发

    阅读全文
  • docker网络模型

    docker网络模型

    一、docker网络基础知识Docker在启动时会创建一个虚拟网桥docker0,默认地址为172.17.0.1/16,容器启动后都会被桥接到docker0上,并自动分配到一个IP地址。使用ipaddr或ifconfig命令可以看到:Docker容器在创建的时候有四种网络模型,如果没有指定,默...

    2020-09-22 49 Docker

    阅读全文
  • 进程间通信的几种方式

    进程间通信的几种方式

    每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核。**进程间通信(IPC,InterProcessCommunication)**是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列...

    2020-09-16 39 操作系统

    阅读全文
  • 玩转Java8 Stream之IntStream

    玩转Java8 Stream之IntStream

    IntStream详解IntStream是特殊的Stream,但有一些操作符是IntStream独有的;话不多说,开始玩转IntStream吧。理论讲解构造IntStreamIntStream这个接口里提供了如下方法用于构造一个流:操作IntStream过滤操作filter()//根据条件过滤...

    2020-09-08 70 Java基础

    阅读全文
  • 面试之前你不得不知道的MySQL锁”事“

    面试之前你不得不知道的MySQL锁”事“

    mysql中的锁看起来是很复杂的,因为有一大堆的东西和名词:排它锁,共享锁,表锁,页锁,间隙锁,意向排它锁,意向共享锁,行锁,读锁,写锁,乐观锁,悲观锁,死锁。这些名词有的博客又直接写锁的英文的简写—>X锁,S锁,IS锁,IX锁,MMVC…锁的相关知识又跟存储引...

    2020-09-05 84 MySQL

    阅读全文
  • 操作系统-缓存算法(页面置换算法)

    操作系统-缓存算法(页面置换算法)

    缓存算法是指令的一个明细表,用于提示计算设备的缓存信息中哪些条目应该被删去。常见缓存算法包括FIFO、LFU、LRU、ARC、MRU。1、FIFOFIFO(FirstinFirstout),先进先出。其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么...

    2020-09-01 89 操作系统

    阅读全文
  • LFU缓存算法到底是怎么一回事?

    LFU缓存算法到底是怎么一回事?

    1、LFU算法是什么?LFU(LeastFrequentlyUsed)最近最少使用算法。它是基于“如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小”的思路。LFU和LRU算法的不同之处,LRU的淘汰规则是基于访问时间,而LFU是基于访问次数的。从实现难度上来说...

    2020-09-01 57 操作系统

    阅读全文
  • 从输入URL到页面加载完成期间经历了什么?

    从输入URL到页面加载完成期间经历了什么?

    作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~整个过程大致的的流程是:在浏览器地址栏输入某个网站的UR...

    2020-08-29 73 计算机网络

    阅读全文
  • Integer与int的比较

    Integer与int的比较

    如果面试官问Integer与int的区别:估计大多数人只会说到两点:Ingeter是int的包装类,注意是一个类;int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integeri=1;intii=1;i==ii为true还是为false?估计就有一部分人答不出来了,如果...

    2020-08-28 76 Java基础

    阅读全文
  • Java并发编程实践

    Java并发编程实践

    一、使用两个线程交替打印输出“1A2B3C…..26Z”具体描述:使用两个线程,一个输出字母,一个输出数字,交替输出1A2B3C……26Z1、LockSupport使用JUC下的LockSupport工具类我们可以精确的阻塞或唤醒一个线程,并且Lock...

    2020-08-06 103 Java多线程与高并发

    阅读全文
  • Hashtable源码分析

    Hashtable源码分析

    Hashtable是一个比较古老的Map实现类,从它的名称就可以看得出来,因为没有遵循Java语言的驼峰命名规范,这可能是开发者的疏忽导致的吧。它和HashMap很像,同属于散列表,都可以存储K-V键值对,并且都可以实现O(1)的查找时间复杂度。有以下特性:1、首先就是线程安全,这也估计算是唯...

    2020-08-02 97 Java集合与容器

    阅读全文
  • 十大经典排序算法(动图演示)

    十大经典排序算法(动图演示)

    十大经典排序算法(动图演示)0、算法概述0.1算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时...

    2020-08-01 117 数据结构与算法

    阅读全文
  • 关于HashMap几个刁钻的面试题,第四个我就跪了

    关于HashMap几个刁钻的面试题,第四个我就跪了

    HashMap刁钻面试题总结1、HashMap的数据结构是什么?答:在jdk1.7是采用了数组+链表;jdk1.8采用了数组+链表+红黑树,当链表长度大于等于的时候转化为红黑树,当红黑树的结点小于等于6的是时候就有红黑树转化为链表;2、为什么要采用数组+链表作为存储结构?首先要清楚一个基本的理...

    2020-07-28 129 Java集合与容器

    阅读全文
  • Maven入门必会必知

    Maven入门必会必知

    1、Maven是啥?Maven是Apache软件基金会唯一维护的一款自动化构建工具,专注于服务Java平台的项目构建和依赖管理。Maven是基于项目对象模型(POM)可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。2、Maven可以干啥?添加第三方jar包jar包之间的依...

    2020-07-27 114 Maven

    阅读全文
  • 面试前你必须知道的HTTP协议知识点(附常见GET、POST面试问题)

    面试前你必须知道的HTTP协议知识点(附常见GET、POST面试问题)

    1、什么是HTTP协议?HTTP协议是HyperTextTransferProtocol(超文本传输协议)的简称,是用于从万维网(WWW)传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内...

    2020-07-18 135 计算机网络

    阅读全文
  • 提升10倍生产力: IDEA集成Docker一键部署Spring Boot项目(war包部署)

    提升10倍生产力: IDEA集成Docker一键部署Spring Boot项目(war包部署)

    1、准备工作1.1在远程CentOS服务器上已经安装好了docker。可以参考:1.官方手册:https://docs.docker.com/install/2.我的笔记:手把手教你在Centos7上安装和使用Docker1.2配置docker远程连接端口图1.2.12375端口正在监听注意:...

    2020-07-16 193 Docker

    阅读全文
  • MyBatis源码学习—MyBatis结果处理器ResultSetHandler详解

    MyBatis源码学习—MyBatis结果处理器ResultSetHandler详解

    上一篇博文MyBatis源码学习—MyBatis数据仓库会话器StatementHandler详解我们通过Statement将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集ResultSet自动映射成实体类对象。这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中...

    2020-07-13 133 MyBatis

    阅读全文