JAVA开发
文章平均质量分 94
卡拉叽里呱啦
这个作者很懒,什么都没留下…
展开
-
MySQL日志/索引/锁/事务特性的理解
文章目录前言关于日志RedoUndo关于索引分页查询的优化方式&原理子查询优化根据某个字段排序后分页先选出主键,再通过主键查询位置计算优化索引对关联查询的影响关于锁乐观锁和悲观锁MySQL加锁范围上锁单点上锁如果记录不存在提高数据库的并发度关于事务的ACID特性一致性隔离性持久性前言最近对数据库进行了系统的学习,结合了一些面试问题,在春招理解的基础上,对一些摸棱两可,又很难(在中文博客里)找到相关资料的问题进行了更深入的探究,并进行汇总,特此写下关于日志innodb的日志主要有redo和un原创 2021-09-03 10:33:13 · 240 阅读 · 0 评论 -
ConcurrentHashMap增删扩容的解读
前言太久没看jdk,今天面试被问到ConcurrentHashMap(下面可能会简称为chm)的扩容原理,只能含糊的答出来一些,翻了翻自己的笔记,似乎当时看了(而且印象里之前看的时候就感觉网上讲得很清晰的文章很难找),但是也没有特别地整理这一块的内容。因此这里特地对它进行整理。主要包括put、get、扩容。jdk1.8之前和之后的区别之前看《java并发艺术》这本书的时候,对chm的印象是,将一个map划分为16个段,并发修改时只会对各自段加锁,这样就可以大大提高并发性能了。jdk1.8之后就不是这原创 2021-09-01 19:54:01 · 666 阅读 · 0 评论 -
volatile可见性和指令重排的理解
前言前几天被问到volatile关键字的作用,因为太久没复习java并发这边的知识,所以只含糊的答出了可见性和禁止指令重排这两点。这两天在复习一些java多线程相关的知识,又看到了volatile变量,看到了以前的笔记,突然对它的可见性、禁止指令重排序、进程间通信这些比较生涩的概念有了更深的理解,而能把这一块讲透的文章也比较少,特此记录下来volatile关键字定义回放我们都知道volatile关键字有两大作用使变量可见:每次v写都会写回主存;每次v读都会从主存里读,因此线程一定能读到最新的值(原创 2021-08-05 18:55:29 · 186 阅读 · 0 评论 -
走进Dubbo——使用Docker部署运行
前言从这里开始,我们讲如何将dubbo部署在docker内,docker-compose的demo也已经上传。我们为什么要使用Docker?当我告诉你,只需要安装好docker,然后解压demo,敲入一个命令,dubbo就能跑起来,不需要额外下载zookeeper,甚至我在mac下打包的,win下也能跑,linux下也能跑,心动吗(当然这和java的跨平台特性也分不开)?其实我自己就没有下zookeeper,而是直接用docker跑的,因为我厌倦了电脑上多出一堆乱七八糟的图标,跑代码之前还要进入乱七八原创 2021-06-23 14:26:21 · 2602 阅读 · 0 评论 -
走进Dubbo——编写二方包、服务提供者和消费者
前言从这一章开始搭建Dubbo环境,也就是使用者最期待的干货——如何编写一个Dubbo版的HelloWorld程序?为了演示方便,更重要的是为了方便Bean的管理等资源,特地引入Springboot帮我们搭建Web环境。本文分为二方包的编写、Springboot环境搭建、服务提供方编写、服务消费者编写四个部分。首先说明,二方包、服务提供者、服务消费者都需要单独打包,也就是位于三个不同的项目中。demo源码已经上传,二方包的编写我们从最简单的过程开始。二方包的编写很简单,新建一个maven项目,原创 2021-06-23 13:24:40 · 677 阅读 · 0 评论 -
走进Dubbo——使用Maven打包项目
前言其实从这里开始,就和dubbo关系不大了。但是一个项目真正运行起来,不是在idea中点运行就好了,而是要打包成单独的文件,然后使用java命令运行。如果不形成打包的闭环,就不知道怎么部署应用,那我们的项目就只是处于开发阶段,还用不到生产环境第一次打包首先,配置好maven。包括环境变量等,直到在自己的终端(win下为cmd)中输入mvn有反应为止。进入项目根目录,敲入mvn package,就会自动生成jar包啦~Tipsmaven有几大常用命令,和打包有关的一般要使用两个,一个叫clean原创 2021-06-23 12:52:07 · 985 阅读 · 0 评论 -
走进Dubbo——RPC框架简介
前言dubbo是阿里开源的分布式rpc框架,在许多中小企业的微服务化过程中发挥着核心作用。但是想把dubbo运行起来也不是那么简单的,这几天我想搭个dubbo环境玩玩,一路受阻。相信前来了解rpc的同学都有一定的java编程基础,也知道为什么用rpc,本文只教为什么用和怎么用。本文的目标和大致文章内容是:介绍rpc框架、rpc框架的特点以及使用rpc框架一般的编程步骤给出一个源码demo,让大家对照着来了解dubbo的使用方法(未发)从pom开始配置springboot,配置dubbo环境,编原创 2021-06-22 22:07:59 · 560 阅读 · 0 评论 -
Java中自动清理资源的方式(虚引用的作用)
介绍了Java中自动清理资源的三种方式,着重介绍了try-with-resource机制和虚引用&Cleaner机制的原理和使用方式原创 2021-06-18 20:14:58 · 919 阅读 · 1 评论 -
《深入理解JVM 第三版》 读书笔记
2 Java内存区域与内存溢出异常2.2 运行时数据区域2.2.1程序计数器程序计数器占用空间较小,可以看作当前 线程执行字节码的行号。因此是线程独立的。如果执行的是native方法,则该计数器为空。2.2.2 java虚拟机栈描述java方法的执行内存模型。每个方法执行都会创建一个栈帧(stack frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。方法调用和执行完成的过程,伴随着栈帧入栈和出栈的过程。每个局部变量空间为32bit,其中double和long占用两个slo原创 2021-03-15 22:16:46 · 474 阅读 · 0 评论 -
《MyBatis技术内幕》读书笔记
前言看这本书的初衷,只是想大概了解一下MyBatis的工作方式,大概了解一下原理。这本书是从源码出发进行讲解的,对每个模块都进行了细致的介绍。在现阶段,个人对源码分析不是那么感兴趣,因为通常源码分析都是从已经很熟悉源码的人的角度出发,像cpu似的疯狂进入xx函数,这个函数又进入了xx函数,强调了很多细节问题,感觉在做十字绣,但是却没法对框架的构造有整体的把握当然,从分析源码的角度看,这本书还是挺好的,各个模块也是平行的,铺开来用不同的章节讲,脉络也比较清晰——只不过,我想把仅有的时间用来了解更有趣的知原创 2021-01-27 09:18:52 · 128 阅读 · 0 评论 -
《Netty权威指南》读书笔记
前言这本书虽然主要是在讲Netty,但是Netty也不过是对JDK NIO类库的封装,提供了一系列实用的类库简化NIO编程:Handler和pipeline机制:提供一系列消息编解码工具类,方便处理半包消息,用户也可以添加自己的消息处理程序,对消息进行编解码。这些编解码Handler可以添加到pipeline中,实现对消息的分布处理,也便于后期维护和添加功能;线程池机制:可以通过参数配置,灵活调整单线程、多线程、主从多线程Reactor线程模型,适应不同场景下的需求提供SslHandler,集成了S原创 2021-01-26 22:12:58 · 302 阅读 · 0 评论 -
《Redis设计与实现》 读书笔记
前言Redis对我来说是比较神秘的存在,我大概只知道它是一个内存数据库,可以缓存一些易变的、需要频繁读写的数据(比如传感器数据,传输非常频繁,因此可以存储在Redis内,达到一定容量后统一写入数据库)。在实践中,Redis也大抵上是如此,一般用来做缓存。除此之外,由于Redis采用网络进行通信,因此可以非常方便地将其应用于分布式场景中。再加上Redis本身就支持集群等特性,所以,Redis很适合用来做分布式缓存。这本书对Redis的实现原理讲解得比较多,但是对应用层面则基本没有提及。所以如果想要知道R原创 2021-01-21 19:56:34 · 207 阅读 · 0 评论 -
《MySQL技术内部 InnoDB存储引擎》读书笔记
前言完结,撒花!这本书是我看过最枯燥的书,也是难得我需要配合度娘来查找概念来理解书中概念的书。这本书对INNODB的方方面面进行讲解,事无巨细,经常看着就会迷失方向,不知何为重点。而且书中在前面对许多重要概念都一笔带过(可能是因为作者希望每一章都独立成册,不要有太多的前后关联性,但是这样真的对初学者不太友好……),到了很后面的章节才解释(比如ACID的概念),因此特地设立了第0章用于讲解可能遇到的关键术语。此外,对于一些难以理解的概念(比如next-key locking),还是配合了知乎之类的回答来理原创 2021-01-14 21:30:03 · 723 阅读 · 0 评论 -
《深入分析Java Web技术内幕》读书笔记
前言这本书,我看了一天,但是整理了三天。从这本书里我深刻地认识到,看书学习很愉快,但是复习考试很痛苦:)这三天发生了什么呢?主要是从第9章开始,讲解Servlet Tomcat Jetty Spring等框架时,我在想,到底要呈现多少内容在笔记上?似乎本书是挑了一些关键的流程进行展现,但是没有上下文又有点难以理解。所以我在纠结,我应该深究到什么程度,应该了解哪些内容……终归来说,这本书整理Java Web技术中几乎要用到的所有原理,甚至包括IO 中文编码 JMM class文件等内容。信息量有点大,的原创 2021-01-14 21:12:55 · 411 阅读 · 0 评论 -
《图解HTTP》读书笔记
前言这是博文的前言,也是读书笔记的后记。本来只打算草草看看查漏补缺,但是实际上从这本书还是学到了非常多知识点,对HTTP有了比较系统的了解。这本书本身非常可爱,图很多,有点像Head First系列的书(但是相比来说,还是HF更可爱一点)。从这本书上,我学到了哪些呢(括号内为对应章节)?以前不太明白的零碎的知识,比如URL&URI(1.7),网关隧道(5.2),DOM是什么(10.2.2),XML有什么好处(10.4.1);HTTPS、SSL的加密过程,如何保证密钥安全传输(7.2);H原创 2021-01-11 10:58:15 · 802 阅读 · 0 评论 -
《JAVA并发编程的艺术》读书笔记
1.前言自从上次写文章已经过去了大半年了,感觉刚过去的2020年还是有挺多变化的。比如,我最终还是选择成为一个开发人员。既然选择了做开发,那也要做一个好的开发。这半年,读了挺多的书,成长还是挺快的。现在再看半年前写的代码,不忍直视呀。自己看书比较喜欢做笔记,这个系列还是希望可以发扬光大一下,对于自己来说,就是一个复习的过程;对于看文章的人来说,可以相互交流相互讨论,增强理解。之所以选这本书的读书笔记作为“首发”,是因为这本书的笔记算是做得比较像样的。对于之前的笔记,需要自己再重新整理之后发出来。对于原创 2021-01-08 19:03:49 · 202 阅读 · 0 评论