自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (26)
  • 论坛 (1)
  • 收藏
  • 关注

原创 Java中ReentrantLock是如何保证可见性?

正如官网上所说的ReentrantLock与sync的语义是一致的,也就是说ReentrantLock也具有一致性、可见性、原子性。通过阅读ReentrantLoc源码可知,lock()和unlock()主要通过volatile修饰的state状态操作的。我想问的是:ReentrantLock 是如何保证共享属性的可见性的?如下代码x变量怎么保证可见的? int x = 0; Re...

2020-01-12 15:09:37 955 9

原创 SpringBoot启动时序图

2020-11-19 19:57:54 101

原创 JVM体系脑图

想要非图片格式的文件,回复即可。

2020-11-13 16:09:46 8

原创 HashMap扩容时数据迁移实现的亮点(ConcurrentHashMap类似)

首先让我们看一下扩容代码: final Node<K,V>[] resize() { Node<K,V>[] oldTab = table; int oldCap = (oldTab == null) ? 0 : oldTab.length; int oldThr = threshold; int newCap, newThr = 0; if (oldCap > 0) {

2020-11-13 15:54:52 219

原创 NoSQL非关系型数据库主要分类

非关系型数据库是相对于关系型数据库(Oracle、MySQL、Sqlserver等)而言,非关系型数据库的特点:存储非结构化的数据,比如文本、图片、音频、视频。 表与表之间没有关联,可扩展性强。 保证数据的最终一致性。遵循 BASE(碱)理论。 Basically Available(基本 可用); Soft-state(软状态); Eventually Consistent(最终一致性)。 支持海量数据的存储和高并发的高效读写。 支持分布式,能够对数据进行分片存储,扩缩容简单。对...

2020-11-04 15:06:25 47

原创 Java线程调试详细教程

在多线程环境中,我们往往会遇到一些棘手的问题,怎么规定合适的线程顺序进行调试?怎么能让线程按照自己的想法执行?下面我们讲解一下解决方法。(本博客使用Eclipse,Idea工具也有对应的方式就不做赘述了)代码(仅两个类进行演示)package com.debug;public class DebugRunning implements Runnable { private String context; public DebugRunning(String context) {.

2020-10-19 11:22:04 172 1

原创 Java诊断工具-Arthas-这篇文章就够了

Arthasgithub :https://github.com/alibaba/arthas Arthas 是Alibaba开源的Java诊断工具,采用命令行交互模式,是排查jvm相关问题的利器。下载安装curl -O https://alibaba.github.io/arthas/arthas-boot.jarjava -jar arthas-boot.jar# 然后可以选择一个Java进程常用命令具体每个命令怎么使用,大家可以自己查阅资料 ...

2020-10-14 14:52:16 62 1

转载 ZooKeeper-介绍与核心概念

原创ZooKeeper入门实战教程(一)-介绍与核心概念个人感觉博主对zookeeper的核心概要讲解的比较透彻易懂。

2020-08-12 11:26:34 29

转载 SpringCloud常见面试题及答案

1. 什么是 spring cloudspring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。2. spring cloud 断路器的作用是什么?在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一

2020-08-11 14:30:54 339

转载 springBoot手动装配,自动装配 实例

转载地址:https://blog.csdn.net/qq_36285943/article/details/105717131本篇文章推荐先跟着实例敲一遍代码。手动装配或是自动装配其本质是将对象注入容器中(IOC),主要差别仅仅是实现方式而已。

2020-07-28 09:36:43 35

原创 JAVA SPI详解

SPI是什么?SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。 SPI的作用就是为这些被扩展的API寻找服务实现。使用场景数据库驱动加载接口实现类的加载 JDBC加载不同类型数据库的驱动日志门面接口实现类加载 SLF4J加载不同提供商的日志实现类Spring Spring中大量使用了SPI,比如:...

2020-07-27 16:32:45 64 1

原创 分布式系统经典问题深度分页

分布式文件系统必定面对的问题:深度分页问题:如何在数据分片存储的情况下, 获取前1000个文档?答案:先从每个分片上获取前1000个文档, 然后由处理节点聚合所有分片的结果之后,再排序获取前1000个文档。此时页数越深,处理的文档就越多,占用的内存就越大,耗时就越长。这就是深度分页问题。为了尽量避免深度分页为题,ES通过设定index.max_result_window限定最多到10000条数据。在设计分页系统时,有一个分页数十分重要:total_page=(total + p.

2020-07-07 15:22:32 158

原创 分布式中的脑裂问题

什么是脑裂问题?在分布式系统中有一个经典的网络问题。当一个集群在运行时,作为master节点的node1的网络突然出现问题,无法和其他节点通信,出现网络隔离情况。那么node1自己会组成一个单节点集群,并更新cluster state;同时作为data节点的node2和node3因为无法和node1通信,则通过选举产生了一个新的master节点node2,也更新了cluster state。那么当node1的网络通信恢复之后,集群无法选择正确的master。如何解决脑裂问题?解决方案也很简单

2020-07-07 10:47:41 319 1

原创 Java知识点之杂记

这篇文章记录了一下Java知识点,后续会持续增加!~~~一、位运算中的与运算package com;/** * @author tzp * @created 2020年6月17日 下午7:28:52 * @类描述:位运算中与运算(&),运用 */public class ANDOperation { public static void main(String[] args) { //判断奇偶性 judgeOdevity(12); } /** * @.

2020-06-24 09:28:59 58

转载 HashMap中的hash函数

1. 什么是 hash 函数hash 函数,即散列函数,或叫哈希函数。它可以将不定长的输入,通过散列算法转换成一个定长的输出,这个输出就是散列值。需要注意的是,不同的输入通过散列函数,也可能会得到同一个散列值。因此我们不能使用散列函数来获取唯一值。2. HashMap 为什么要使用 hash 函数Java 的 HashMap 中使用的是数组 + 链表的结构,但在保存时,一个 K - V 键值对应该被存放到数组的哪个位置?通常我们都会想到:按照存入顺序存放。但是,按照这种策略,在取值时势必需要遍历

2020-06-18 19:44:08 74 1

原创 HashMap常见面试题

谈一下HashMap的特性?HashMap以键值对的方式存储,允许null键和null值。 非线程安全 底层由hash表实现,无序

2020-06-18 17:43:36 163

原创 Java中的运算符

Java中的运算符分为四类:算数运算符:+ - * / % ++ --关系运算符:> >= == <= < !=逻辑运算符:&& & || | ! ^位运算符:& | ~ ^ >> << >>>算数运算符和关系运算符比较简单不进行赘述了!~~~逻辑运算符:注意:逻辑运算符操作的都是boolean类型的变量,而且结果也是boolean...

2020-06-17 20:48:11 34

原创 简单介绍阻塞队列BlockingQueue

阻塞队列:当队列元素为空时,阻塞所有提取元素的线程。当队列元素满时,阻塞所有添加元素的线程。BlockingQueue接口的主要常用实现类:ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue等。ArrayBlockingQueue:由数组实现的有界阻塞队列,其队列大小在初始化时就已经确定。其线程安全主要通过一个ReentrantLock对象保证。LinkedBlockingQueue:由链表实现的无界(Inte..

2020-06-15 15:29:45 48

原创 线程池讲解之ThreadPoolExecutor

ThreadPoolExecutor核心参数: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, Blocki

2020-06-08 20:11:43 52

原创 Spring MVC执行流程及简单问题

流程1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet通过HandlerAdapter处理器适配器调用处理器。5、 执行处理器(Controller,也叫后端控制器)。6、 Controller.

2020-06-04 10:07:15 91

原创 Spring的BeanFactoryPostProcessor接口看这篇文章就够了

BeanFactoryPostProcessor接口是在spring容器加载完BeanDefinition之后,在bean实例化之前执行的,用来改变BeanDefinition属性的。BeanDefinition类就是配置的Bean定义,例如:<bean id = "springListener" class = "com.SpringListener" />什么叫做在spring容器加载完BeanDefinition之后?什么又叫做在bean实例化之前执行的?要解答这个问题就..

2020-06-02 15:15:45 105 1

转载 平衡二叉树、B树、B+树、B*树 理解其中一种你就都明白了

本篇文章转载自知乎的文章:连接地址。从网上找了几篇关于B树的知识,整体感觉这篇文章不错。

2020-05-08 15:48:24 76

原创 教你如何阅读Spring源码

2020-04-30 18:01:50 201 1

原创 Linux常用命令

绝对路径: 如/etc/init.d 当前目录和上层目录: ./ ../主目录: ~/切换目录: cd查看当前进程: ps执行退出: exit查看当前路径: pwd清屏: clear退出当前命令: ctrl+c 彻底退出执行睡眠 : ctrl+z 挂起当前进程 fg 恢复后台查看当前用户 id: "id":查看显示目前登陆账户的 uid 和 gid 及所...

2020-01-21 11:20:57 106

原创 什么是乐观锁和悲观锁?

乐观锁:对于并发间操作产生的线程安全问题持乐观状态,乐观锁认为竞争不总是会发生,因此它不需要持有锁,将比较-替换(CAS)这两个动作作为一个原子操作尝试去修改内存中的变量,如果失败则表示发生冲突,那么就应该有相应的重试逻辑。悲观锁:对于并发间操作产生的线程安全问题持悲观状态,悲观锁认为竞争总是会发生,因此每次对某资源进行操作时,都会持有一个独占的锁,就像 synchronized、Reentr...

2020-01-12 15:27:10 160 1

转载 为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?

Java提供的锁是对象级的而不是线程级的,每个对象都有锁,通过线程获得。简单的说,由于wait,notify,notifyAll都是锁级别的操作,所以把他们定义在object类中因为锁属于对象。如果wait, notify 和 notifyAll 这些方法在 thread 类里面会有什么问题?wait方法仍然可以使当前线程挂起,但问题是挂起后怎么被其他线程唤醒(唤醒线程时需要知道要唤...

2020-01-10 11:29:20 626

MemoryAnalyzer-1.11.0.20201202-win32.win32.x86_64

结合arthas生成的dump,分析工具

2021-01-15

SPI示例代码及实现方式

SPI示例,演示SPI如何动态使用第三方实现方式的,以及第三方jar包的实现方式。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2020-07-27

HttpClient实现远程下载

通过HttpClient实现远程下载,本例子通过java代码实现

2017-10-20

FTP服务器搭建详细教程(包含软件)

FTP详细搭建教程,包含软件及详细操作教程。简单易学。

2018-08-02

Redis.xmind

详细介绍redis相关知识:基本概念、与memecache的对比,数据结构、复制、sentinel、持久化、事务、集群、慢查询日志等

2019-05-30

超大文本编辑器

超大文本编辑器,简单实用,速度快,推荐实用。

2018-12-04

教你阅读Spring源码资源.zip

调试代码+Spring包+jdk包,调试代码简单易懂且通过一些例子进行说明源码主要功能。Spring包中不需要的可以不用导入项目,

2020-04-30

Java常用8大排序算法

Java常用8大排序算法,包含每种算法详细介绍,及代码如何实现。

2018-08-02

Java实现远程接口访问,webservers配置

Java实现远程接口访问,webservers配置,详细介绍了如何实用webservers实现远程接口访问功能

2018-08-02

java集合体系思维脑图

java集合体系思维脑图,主要介绍了map、conllection、juc集合

2019-04-02

Oracle数据泵导入导出

通过数据泵(expdp、impdp)导出Oracle表、库等详细,已经经过验证

2018-07-26

java导出word之freemarker导出程序

java导出word之freemarker导出程序 ,java工程,能正常执行,很好的入门实例

2018-08-02

FTP远程上传下载文件

无需安装,就可以实现FTP服务器,实现远程上传下载功能

2017-10-20

java程序删除文件实例

java程序删除文件实例,适合初学者实用。并且已经验证。

2018-08-02

webservers接口联调工具包含教程

webservers接口联调工具包含教程,简单实用,含教程。

2018-08-02

PMP官方中文版

PMP中文教材,高清,带目录,做项目管理人员首选就读教材。

2018-12-04

设计模式思维脑图

设计模式思维脑图介绍了23中设计模式,包过实现原理等

2019-05-30

weblogic反序列化解决方案

解决weblogic反序列化安全问题,文档中有详细的操作步骤,已经验证

2018-07-26

Spring.xmind

Spring思维脑图详细介绍了spring的架构:ioc、aop、事务、基本概念。

2019-05-30

本地SVN安装与其服务器搭建详细教程包含所有软件

Java实现远程接口访问,webservers配置,包含所需所有软件及详细教程

2018-08-02

文件解压缩

通过java代码使用文件的压缩和解压缩,超级使用,推荐

2017-10-20

Excel函数宝典

Excel函数宝典,包括Excel中所有使用技巧教程,超级使用,推荐各行使用

2017-10-20

超详细Oracle教程

本教材非常适宜刚开始工作或刚毕业的人员阅读,内容浅显易懂,涉及所有重点知识面,且教材篇幅不长。

2018-12-04

java程序读取表的字段及类型实例

java程序读取表的字段及类型实例,包含代码,可执行。

2018-08-02

java面试题

java面试题,不错!

2019-04-02

dos常用命令

windows dos命令大全,已经验证,非常实用的资料,可供学习。

2018-08-02

程序员何去何从?

发表于 2020-11-17 最后回复 2020-11-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除