自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (26)
  • 收藏
  • 关注

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

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

2020-01-12 15:09:37 3008 11

原创 好久没写文章

好久没写文章。

2024-06-14 15:27:47 405

原创 如何解决幂等问题!

幂等性

2023-06-06 20:20:32 227

转载 BeanUtils.copyProperties的11个坑

BeanUtils.copyProperties的11个坑

2023-05-29 10:38:24 5496

原创 SpringMVC工作流程及拦截器实现原理

SpringMVC拦截器实现原理,过程中也讲解了SpringMVC工作流程。

2022-01-07 10:50:46 1012

转载 Spring Boot中注解@ConfigurationProperties的三种使用场景

在Spring Boot中注解@ConfigurationProperties有三种使用场景,而通常情况下我们使用的最多的只是其中的一种场景。本篇文章带大家了解一下三种场景的使用情况。场景一使用@ConfigurationProperties和@Component注解到bean定义类上,这里@Component代指同一类实例化Bean的注解。基本使用实例如下:// 将类定义为一个bean的注解,比如 @Component,@Service,@Controller,@Repository.

2021-09-06 20:00:37 477

转载 如何快速的掌握一个项目?

前言开发人员经常会面临下面一些场景:1、新人入职,需要学习已有系统,作为 landing 的一部分,如何学习?2、被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手?3、同事离职或转岗,需要把系统交接给你,怎么去接?内心 os:这是一口锅吗?这样的场景多了,就需要去梳理常见问题以及应对方法,方便后续遇到类似场景可以快速应对。本文总结熟悉系统主要分三部分:业务学习、技术学习、实战。每部分会梳理一些在学习过程中需要解答的问题,这些问题随着经验的积累需要逐步补

2021-08-21 17:57:00 401

原创 MySQL 连接的使用

JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。 LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。 RIGHT JOIN(右连接):与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。INNER JOINMySQL的INNER JOIN(也可以省略 INNER 使用 JOIN,效果一样)MySQL LEFT JOINMySQL left join 与 ...

2021-08-14 14:21:29 105

转载 HashMap中tableSizeFor

static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >>> 16; return (n < 0) ? 1...

2021-08-03 15:21:59 221

转载 MySQL 字符串和数值比较、字符串与字符串比较

一、字符串与数字比较MySQL字符串和数字比较的坑:比较时会把字符串类型转成整数类型,从首字母开始,遇到非数字类型后终止。原文:Comparison operations result in a value of 1 (TRUE), 0 (FALSE), or NULL. These operations work for both numbers and strings. Strings are automatically converted to numbers and numbers t

2021-07-17 16:43:50 1713

转载 Navicat使用技巧

Navicat Premium 常用功能讲解1.快捷键1.1. F8 快速回到当前对象列表1.2. Ctrl + q 打开查询界面1.3. Ctrl + d 快速修改当前的表结构1.4. Ctrl + r 运行当前查询界面里面的 sql 语句1.5. Ctrl + shift + r 运行当前选中的 sql 语句2.快速查看表结构2.1.右键表信息->选择对象信息2.2.右键表信息->选择对象信息->选择 DDL信息3.工具...

2021-06-01 22:30:51 1052

原创 Linux下安装Redis

下载地址:http://redis.io/download,下载最新稳定版本。

2021-05-30 16:12:10 155

转载 IDEA 使用Git图文详解

一、配置git路劲:或二、克隆项目或填写克隆路径及输出路径三、上传项目到git仓库1、在你的idea里新建git仓库,这是新建本地仓库,等会会同步到线上git仓库2、新建后如果文件名不是绿色的表示没有加入到git索引中3、将需要上传的文件按照下图方式add4、添加后,相应的文件名会变成绿色5、然后commit项目,提交项目,这里是先提交带本地仓库6、然后push...

2021-05-23 15:21:08 489

原创 杂记整理

Spring1、@Resource和@Autowired的区别 两者都是用来实现依赖注入的,区别在于前者默认基于byname注入,后者默认基于bytype注入。2、@ConfigurationProperties的使用 该注解通常和@Component、@Bean、@EnableConfigurationProperties其中之一一块使用 同时注释到Bean上,初始化Bean时(@Compon...

2021-05-23 15:08:38 114

原创 idea中的一些常用快捷键

1. 删除光标所在行代码idea快捷键: Ctrl+Xeclipse快捷键: Ctrl+D2. 复制光标所在行代码,或者鼠标选中的代码idea快捷键: Ctrl+Declipse快捷键: Ctrl+Alt+上下键3. 切换代码大小写idea: Ctrl+Shift+Ueclipse: Ctrl+Shift+X(大写) Ctrl+Shift+Y(小写)4. 关闭当前代码窗idea: Ctrl+F4eclipse: Ctrl+W5. 快速定位到上一次编辑的位置idea: C

2021-05-11 22:47:28 441

原创 SpringBoot启动时序图

2020-11-19 19:57:54 2088

原创 JVM体系脑图

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

2020-11-13 16:09:46 129

原创 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 2426 1

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

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

2020-11-04 15:06:25 551

原创 Java线程调试详细教程

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

2020-10-19 11:22:04 1389 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 450 1

转载 ZooKeeper-介绍与核心概念

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

2020-08-12 11:26:34 108

转载 SpringCloud常见面试题及答案

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

2020-08-11 14:30:54 734

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

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

2020-07-28 09:36:43 244

原创 JAVA SPI详解

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

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

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

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

2020-07-07 15:22:32 625

原创 分布式中的脑裂问题

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

2020-07-07 10:47:41 1047 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 184

转载 HashMap中的hash函数

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

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

原创 HashMap常见面试题

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

2020-06-18 17:43:36 361

原创 Java中的运算符

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

2020-06-17 20:48:11 142

原创 简单介绍阻塞队列BlockingQueue

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

2020-06-15 15:29:45 115

原创 线程池讲解之ThreadPoolExecutor

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

2020-06-08 20:11:43 206

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

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

2020-06-04 10:07:15 197

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

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

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

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

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

2020-05-08 15:48:24 155

原创 教你如何阅读Spring源码

2020-04-30 18:01:50 1996 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 298

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

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

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

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

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

2020-01-10 11:29:20 3079

MemoryAnalyzer-1.11.0.20201202-win32.win32.x86_64

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

2021-01-15

SPI示例代码及实现方式

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

2020-07-27

教你阅读Spring源码资源.zip

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

2020-04-30

设计模式思维脑图

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

2019-05-30

Spring.xmind

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

2019-05-30

Redis.xmind

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

2019-05-30

java集合体系思维脑图

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

2019-04-02

java面试题

java面试题,不错!

2019-04-02

超大文本编辑器

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

2018-12-04

PMP官方中文版

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

2018-12-04

超详细Oracle教程

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

2018-12-04

Java常用8大排序算法

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

2018-08-02

webservers接口联调工具包含教程

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

2018-08-02

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

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

2018-08-02

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

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

2018-08-02

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

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

2018-08-02

java程序删除文件实例

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

2018-08-02

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

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

2018-08-02

java导出word之freemarker导出程序

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

2018-08-02

dos常用命令

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

2018-08-02

Oracle数据泵导入导出

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

2018-07-26

weblogic反序列化解决方案

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

2018-07-26

Excel函数宝典

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

2017-10-20

文件解压缩

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

2017-10-20

FTP远程上传下载文件

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

2017-10-20

HttpClient实现远程下载

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

2017-10-20

空空如也

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

TA关注的人

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