240 发简信
IP属地:江西
  • 120
    关于mac安装windows后磁盘分区不能删除的解决办法

    之前用bootcamp安装了windows10,后来卸载了。但卸载之后磁盘分区仍然有Microsoft reserved 和BOOT CAMP两个分区仍然在磁盘里,且和OSX...

  • 120
    缓存穿透+缓存击穿+缓存雪崩

    前言 redis看上去很完美,但是世上没有毫无缺点的系统,redis也是如此。在一些高并发的系统中,redis可能会出现缓存穿透、缓存击穿和缓存雪崩这几个问题。接下来我们看看...

  • Redis数据类型和用途

    redis支持五种数据类型:字符串、哈希表、列表、集合和有序集合。 下面介绍这几种数据类型分别能实现哪些功能。 字符串(String) 锁 使用setnx实现。 setnx ...

  • 电脑壁纸看腻了,网上爬一波壁纸慢慢挑

    前言 爬虫是python最常用的功能之一了,虽然不能凭爬虫这一项技能出去找一份高薪工作,但是平时拿来娱乐一下还是挺不错的。 其实只要学会python的基础知识,那爬虫写起来就...

  • BeautifulSoup的用法

    此文档是根据BeautifulSoup4.4.0官方文档总结而来 BeautifulSoup中的对象 Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,...

  • 对象的内存分布和访问

    对象的内存布局 对象在内存中存储的布局分为3块区域:对象头、实例数据和对齐填充。 对象头包括两部分信息第一部分官方称作“Mark Word”,用于存储对象自身的运行时数据,如...

  • 类加载机制(2)-双亲委派模型

    类加载器 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类,...

  • Java内存结构

    运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。Java虚拟机所管理的内存包括如下几个部分: 程序计数器 程序计数器是一...

  • 类加载机制

    定义 虚拟机把描述类的数据从Class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 生命周期 ...

  • 优雅的创建线程池

    手动创建线程 平时开发中经常会碰到需要用异步方式来实现某个需求,这时首先会想到这种写法 或者用lambda简写 虽然这种写法可以实现需求,但是我们最好不要这样写,因为这种是不...

  • linux常用命令

    文件相关 find(文件查找) whereis(查找二进制程序) locate(查找,比find快) which(查找命令的path) vim(编辑文件) 命令模式(vim打...

  • volatile解析

    volatile是java提供的一种轻量级的同步机制,可以理解为一个变量的同步锁。相比于重量级锁synchronized而言,synchronized大部分时候都是锁的方法或...

  • CAS解析

    CAS:compare and swap,也有的叫做 compare and set;意思都差不多,翻译过来就是比较并交换或者比较并设值。 CAS包含三个值,内存地址(V),...

  • AQS详解

    解释 AQS:全称“AbstractQueuedSynchronizer”,直译过来是抽象的队列同步器,一般我们把它叫做AQS,java中大部分并发类都是通过它来实现线程同步...

  • synchronized详解

    synchronized详解 解释 synchronized是jvm级别的一种重量级锁,但是随着jdk对synchronized的不断优化,现在它已经变得没有我们想象的那么重...

  • ReentrantLock详解

    ReentrantLock详解 解释 ReentrantLock(重入锁),利用AQS实现的一种可重入锁,和synchronized功能类似,但是synchronized有的...