之前用bootcamp安装了windows10,后来卸载了。但卸载之后磁盘分区仍然有Microsoft reserved 和BOOT CAMP两个分区仍然在磁盘里,且和OSX...
![240](https://upload.jianshu.io/users/upload_avatars/20603618/4b1cb3ab-8179-4828-87f2-2db10e1f4a01.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
之前用bootcamp安装了windows10,后来卸载了。但卸载之后磁盘分区仍然有Microsoft reserved 和BOOT CAMP两个分区仍然在磁盘里,且和OSX...
前言 redis看上去很完美,但是世上没有毫无缺点的系统,redis也是如此。在一些高并发的系统中,redis可能会出现缓存穿透、缓存击穿和缓存雪崩这几个问题。接下来我们看看...
redis支持五种数据类型:字符串、哈希表、列表、集合和有序集合。 下面介绍这几种数据类型分别能实现哪些功能。 字符串(String) 锁 使用setnx实现。 setnx ...
前言 爬虫是python最常用的功能之一了,虽然不能凭爬虫这一项技能出去找一份高薪工作,但是平时拿来娱乐一下还是挺不错的。 其实只要学会python的基础知识,那爬虫写起来就...
此文档是根据BeautifulSoup4.4.0官方文档总结而来 BeautifulSoup中的对象 Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,...
对象的内存布局 对象在内存中存储的布局分为3块区域:对象头、实例数据和对齐填充。 对象头包括两部分信息第一部分官方称作“Mark Word”,用于存储对象自身的运行时数据,如...
类加载器 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类,...
运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。Java虚拟机所管理的内存包括如下几个部分: 程序计数器 程序计数器是一...
定义 虚拟机把描述类的数据从Class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 生命周期 ...
手动创建线程 平时开发中经常会碰到需要用异步方式来实现某个需求,这时首先会想到这种写法 或者用lambda简写 虽然这种写法可以实现需求,但是我们最好不要这样写,因为这种是不...
文件相关 find(文件查找) whereis(查找二进制程序) locate(查找,比find快) which(查找命令的path) vim(编辑文件) 命令模式(vim打...
volatile是java提供的一种轻量级的同步机制,可以理解为一个变量的同步锁。相比于重量级锁synchronized而言,synchronized大部分时候都是锁的方法或...
CAS:compare and swap,也有的叫做 compare and set;意思都差不多,翻译过来就是比较并交换或者比较并设值。 CAS包含三个值,内存地址(V),...
解释 AQS:全称“AbstractQueuedSynchronizer”,直译过来是抽象的队列同步器,一般我们把它叫做AQS,java中大部分并发类都是通过它来实现线程同步...
synchronized详解 解释 synchronized是jvm级别的一种重量级锁,但是随着jdk对synchronized的不断优化,现在它已经变得没有我们想象的那么重...
ReentrantLock详解 解释 ReentrantLock(重入锁),利用AQS实现的一种可重入锁,和synchronized功能类似,但是synchronized有的...