自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 终于有阿里大牛用五个模块把SpringCloud讲得明明白白了

Spring Cloud“微服务”应该是互联网圈内争论很久的一个话题,开发者对此的讨论也一直在继续,近些年,SpringCloud有碾压Dubbo的趋势,你怎么看呢?SpringCloud在近些年来受到国内不少开发人员的广泛关注,也是比较吃香的一个技术技能,如果一个程序员连SpringCloud都没有怎么了解过或者使用过,那么可能会有面临被时代淘汰的危机!SpringCloud是知名的微服务架构,包含了很多组件,每个组件又有各自的分工。那么你对SpringCloud了解有多少呢,知之甚少还是运用

2021-01-30 14:59:11 169

原创 有关性能优化这是我见过诠释最清楚的笔记了,不愧是阿里大牛私藏!

如果你是一位合格的程序员,那么你一定知道:在性能调优方面,没有任何灵丹妙药。任何性能决策,都要通过合理的性能测试来检验。本次分享的PDF就是三位老外合力所写,他们很用心地给大家展示了一个关于Java 性能优化得更完整的知识框架。借用PDF中的一句话:“要成为一名赛车手,你不必成为工程师,但是一定要有机械共鸣。”“机械共鸣”这一说法来自伟大的赛车手 JackieStewart,他曾 3次获得世界汽车联合会一级方程式锦标赛冠军。他相信最佳车手对机械如何工作有足够的理解,所以能与赛车协调一致。你不必熟读.

2021-01-30 14:55:27 84

原创 Spring动态代理时是如何解决循环依赖的?为啥用三级缓存?

前言在研究 『 Spring 是如何解决循环依赖的 』 的时候,了解到 Spring 是借助三级缓存来解决循环依赖的。同样在上一节留下了疑问:循环依赖为什么要使用三级缓存?而不是使用二级缓存? AOP 动态代理对循环依赖的有没有什么影响?本篇文章也是围绕上面的内容进行展开。笔记也在不断整理,之前可能会有点杂乱。循序渐进,看一看什么是循环依赖?先来回顾一下三级缓存的概念。singletonObjects: 一级缓存,存储单例对象,Bean 已经实例化,初始化完成。 early

2021-01-29 16:57:21 1329 3

原创 收藏=学会!阿里新产Java全栈笔记+2021面试指南全新开源,助力金三银四!

写在前面2021年的金三银四一眨眼也要到了,对于很多人来说是跳槽的好机会。可能很多人觉得大厂面试很难,但其实大厂面试远没有我们想的那么困难,只要做好知识的梳理, 针对性学习知道自己应该要学什么,要掌握什么,在学习过程中,举一反三,做笔记,做总结。摆好心态,做好准备,你也可以的。最近很多粉丝私信我说有没有对标金三银四面试干货,对此LZ特地从一位阿里老哥手里搞到一份Java全栈知识笔记与2020一线互联网面试真题总结,都已整理成PDF格式,下面就为大家展示出来,希望能对大家有所帮助。(文章篇幅有点长,还

2021-01-28 20:38:39 197 1

原创 Java并发包源码学习:阻塞队列实现之LBQ源码解析

LinkedBlockingQueue概述LinkedBlockingQueue是由单链表构成的界限可选的阻塞队列,如不指定边界,则为Integer.MAX_VALUE,因此如不指定边界,一般来说,插入的时候都会成功。LinkedBlockingQueue支持FIFO先进先出的次序对元素进行排序。类图结构及重要字段public class LinkedBlockingQueue<E> extends AbstractQueue<E> imp.

2021-01-28 13:47:02 130

原创 Java并发进阶:阻塞队列ArrayBlockingQueue源码解析

ArrayBlockingQueue概述ArrayBlockingQueue是由数组构成的有界阻塞队列,支持FIFO的次序对元素进行排序。这是一个典型的有界缓冲结构,可指定大小存储元素,供生产线程插入,供消费线程获取,但注意,容量一旦指定,便不可修改。队列空时尝试take操作和队列满时尝试put操作都会阻塞执行操作的线程。该类还支持可供选择的公平性策略,ReentrantLock可重入锁实现,默认采用非公平策略,当队列可用时,阻塞的线程都可以争夺访问队列的资格。阻塞队列通过Reentr

2021-01-28 13:45:53 109

原创 Java并发:阻塞队列BlockingQueue实现原理分析

本篇要点介绍阻塞队列的概述:支持阻塞式插入和移除的队列结构。 介绍阻塞队列提供的方法。 介绍BlockingQueue接口的几大实现类及主要特点。 以ArrayBlockingQueue为例介绍等待通知实现阻塞队列的过程。不会涉及到太多源码部分,意在对阻塞队列章节的全局概览进行总结,具体的每种具体实现,之后会一一分析学习。什么是阻塞队列阻塞队列 = 阻塞 + 队列。队列:一种先进先出的数据结构,支持尾部添加、首部移除或查看等基础操作。 阻塞:除了队列提供的基本操作之外,还提

2021-01-27 15:44:54 433

原创 JDK9模块化知识和规则入门

要使用Java9模块系统,首先需要理解它。在本教程中,我将向您介绍:模块的基本定义、内容和配置 Java9中封装的工作原理 如何定义接口 如何列出可用模块 java8和java9应用程序的比较 如何使用模块的基本规则 类路径和模块路径的区别现在,让我们来认识一下Java语言的新一等公民: Module 。定义Java9模块模块是代码、数据和资源的集合。它是一组相关的包和类型(类、抽象类、接口等),包含代码、数据文件和一些静态资源。例如,模块描述符module-info.ja

2021-01-26 14:27:15 434

原创 爱了爱了!阿里首推Java微服务架构实战宝典开源,SpringBoot/Cloud+Docker+RabbitMQ彻底玩转微服务!

Java微服务架构实战微服务架构的演进并非一蹴而就,过于保守或激进都不是解决之道。长期修行,苦练内功,或许才是微服务架构的前路方向。2020 年,微服务这一持续多年的话题热度依旧:以 Spring Cloud、Dubbo 为代表的服务框架依然在持续进化,并加速奔向云原生;Service Mesh 这一云原生、微服务双圈“网红”依然在迷雾中砥砺前行。对大多数企业而言,面对云原生和微服务技术的蓬勃发展,不免有些疑惑:一边是成熟演进的服务框架,一边是代表未来方向的 Service Mesh,企业的架构演进

2021-01-25 14:42:43 141

原创 不是吧?你又双叒叕挂科了?就这一次,把大学四年没学会的计算机组成与计算机网络全部搞清楚!

前言如果说编程是你出门买一趟菜。操作系统就是,保证你有腿能走过去,有车能开过去,去了能说话买东西。计算机网络,则是买回来菜烹饪的另一码子事了。计算机网络背景20世纪40年代以来,人们就梦想能拥有一个世界性的信息库。在这个信息库中,信息不仅能被全球的人们存取,而且能轻松地链接到其他地方的信息,使用户可以方便快捷地获得重要的信息。因此,互联网应运而生。图解网络包含HTTP常见面试题、IP基础知识全家桶、ping的工作原理、图解TCP三次握手和四次挥手面试题、图解TCP重传+滑动窗口+

2021-01-23 17:21:16 88

原创 全新演绎!终于有人整理出Spring Security全栈进阶笔记了!理论+源码+实战全有!

本篇文章包含Spring Security Java配置、Spring Security安全防护和源码导读。详细讲解OAuth2实战,并深入地剖析OAuth2核心源码!这份PDF可以分为一下四个部分:第1部分:Spring Security的基本配置。 第2部分:剖析Web项目可能遇到的安全问题,同时讲解如何使用Spring Security进行有效防护。 第3部分:详细介绍OAuth,并使用Spring Social整合Spring Security,实现QQ快捷登录。 第4部分:重点介绍S

2021-01-22 15:06:26 78

原创 字节三面:小伙子你先跟我说一说红黑树吧

2-3-4树定义所有的叶子节点都拥有相同的深度 节点只能是2-节点,3-节点,或者4-节点2节点 包含一个元素的节点,有两个子节点3节点 包含两个元素的节点,有三个子节点4节点 包含三个元素的节点,有四个子节点 所有节点都有至少两个子节点或没有子节点来解释一下性质和一些定义任意一个叶子节点(也就是没有子节点的节点)到根节点的距离一致 一个节点中可能包括1,2,3个元素,有2,3,4,个子节点,具体可以看下面的图 一个节点要么有至少两个子节点,要么没有节点关于子节点如何定义的2节点

2021-01-22 14:40:11 135

原创 MySQL数据库基础知识及优化

SQL语句基础知识及优化SQL语句主要分为哪几类 *数据据定义语言DDL(Data Definition Language):主要有CREATE,DROP,ALTER等对逻辑结构有操作的,包括表结构、视图和索引。 数据库查询语言DQL(Data Query Language):主要以SELECT为主 数据操纵语言DML(Data Manipulation Language):主要包括INSERT,UPDATE,DELETE 数据控制功能DCL(Data Control Language):主要

2021-01-22 14:13:50 75

原创 初级程序员涨薪神技!美团强推“SSM速成宝典”限时开源!

SSM框架这种教程的,在百度或者GitHub上一搜一大把,不过很遗憾,大部分你照着上面的流程做,是做不出来的,要么缺少包,要么配置文件漏了一个,要么本身就有问题。不仅浪费了你的时间,还会产生消极的作用,让你怀疑自己是不是基础不够好,或者这个知识是不是太难了。今天分享这份美团架构师的 SSM框架 开发笔记,就是在教会我们如何从0开始系统地学习这个框架!基础的重要性,想必大家都是知晓的;此份笔记也已然成为一线大厂实习生的第一节课,由于文章篇幅有限,我们长话短说吧!本文档分为SSM框架基础知.

2021-01-21 15:56:34 153

原创 Weblogic:内存溢出和内存泄漏问题的故障排查

OOM:由于java堆或本机内存中的内存耗尽而发生内存不足错误。在JVM中,当JVM由于堆内存不足而无法分配对象时,会抛出 OutOfMemoryError 错误,并且垃圾收集器无法提供更多的堆内存。内存泄漏:如果应用程序正在使用内存,而应用程序在使用完内存后没有释放内存,则会发生内存泄漏。内存泄漏可能发生在java堆或本机内存中,并且最终会导致内存不足的情况。故障排除请注意,并非所有以下项目都需要完成。有些问题只能通过以下几个项目来解决。故障排除步骤Java堆、本机内存和进程大小

2021-01-21 15:50:40 490 2

原创 Spring中使用的设计模式

创建型单例模式单例模式概念是一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。Spring中默认Bean创建可以认为是一种使用ConcurrentHashMap实现的特殊的单例模式@Beanprivate final Map<String, Object> singletonObjects = new ConcurrentHashMap<>(256);protected Object getSingleton(String beanName, bo

2021-01-20 13:50:05 190

原创 堪称完美!字节强推数据结构与算法进修指南:理论源码面试三飞

数据结构与算法数据结构是我们程序员大学专业里非常重要的一门核心基础课,计算机科学各个领域及各种应用软件都要使用相关的数据结构和算法。现在不管是面试还是工作我们都避不开数据结构与算法这个关。面试大厂不必多说,数据结构与算法是必问的(甚至有些中小厂还会甩几道题来考你)。工作工作中比如你做一些大型项目,需要选型的时候,你就需要结合现在的场景和数据结构、算法的特别,来选择一些适合当前场景下的数据结构和算法。一个不当的选择,在数据规模很大的情况下,可能比合理的选择会慢上几十倍甚至几百倍。如何才能学

2021-01-19 15:57:41 139 1

原创 涨薪秘籍再现!阿里2021最新高并发实战指南全新开源,差距不止一点点!

众所周知,出现了高并发,就代表着你的流量是十分巨大的,而设计高并发系统的魅力就在于我们可以发挥我们所学的知识对“对抗”大流量的冲击,从而给我们的用户一个更好的体验!我们设计的这些方案好似能操纵流量,让流量更加平稳得被系统中的服务和组件处理!今天开源的这份2021年Alibaba手册,就是在教会我们如何去设计一个高并发系统!由于文章篇幅有限,我们长话短说!需要的朋友一键三连之后直接添加小助理vx:bjmsb2020 即可基础篇业务层的扩展性数据库篇N...

2021-01-18 16:16:12 169

原创 SpringDataJPA的Audit功能,审计数据库的变更

1 数据库审计数据库审计是指当数据库有记录变更时,可以记录数据库的变更时间和变更人等,这样以后出问题回溯问责也比较方便。对于审计表记录的变更可以两种方式,一种是建立一张审计表专门用于记录,另一种是在数据库增加字段。本文所讨论的是第二种方案。那如何在新增、修改、删除的时候同时增加记录呢?如果每张表都单独记录,代码就会显得很冗余。更好的方式应该是做切面或者事件监听,当数据有变更时统一进行记录。2 Spring Data JPA审计Spring Data JPA为我们提供了方便的Audit功能,通

2021-01-18 13:30:25 315 1

原创 算法刷题时经常用到的前缀和思想

今天我们来说一下刷题时经常用到的前缀和思想,前缀和思想和滑动窗口会经常用在求子数组和子串问题上,当我们遇到此类问题时,则应该需要想到此类解题方式,该文章深入浅出描述前缀和思想,读完这个文章就会有属于自己的解题框架,遇到此类问题时就能够轻松应对。下面我们先来了解一下什么是前缀和。前缀和其实我们很早之前就了解过的,我们求数列的和时,Sn = a1+a2+a3+...an; 此时Sn就是数列的前 n 项和。例 S5 = a1 + a2 + a3 + a4 + a5; S2 = a1 + a2。所以我们完全

2021-01-18 13:28:43 316 1

原创 Github星标75K!阿里2021微服务参考指南也太香了

Spring Cloud Alibaba我们都知道Spring Cloud中的几乎所有的组件都使用Netflinx公司的产品,然后在其基础上做了一层封装。然而Netflinx的众多组件已经慢慢开始停止维护。这时候急需其他的一些替代产品,Spring Cloud Alibaba也就慢慢出现在人们的视线里,并且处于蓬勃发展的态势。依托Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将Spring Cloud应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系

2021-01-16 20:53:46 153

原创 阿里二面:JVM方法区和元空间的关系到底是怎样的

1|0前言  方法区是运行时数据区的最后一个部分:  从线程共享与否的角度来看:  大家可能在这里有些疑惑,方法区和元空间的关系到底是怎样的?请往下看,下面会为大家解惑。2|0栈、堆、方法区的交互关系  下面就涉及了对象的访问定位:Person:存放在元空间,也可以说方法区; person:存放在Java栈的局部变量表中; new Person():存放在Java堆中。3|0方法区的理解  《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一

2021-01-15 14:49:26 412 1

原创 53w字!阿里首推系统性能优化指南太香了,堪称性能优化最优解

性能优化我们都知道代码是系统的基石,没有良好的代码,系统架构就不牢固。但作为一般一个普通程序员,很少有机会参与系统架构级别的优化,甚至暂时不能理解架构上的调整。在开发新功能或审查组内的代码时,优化系统的方式主要是优化自己或他人写的代码。但是真实的情况是:且不说其他层次的优化,就一个代码优化很多入行没有多久的小伙伴甚至都还没入门,更别说啥实现高性能Java系统了。今天互联网雷锋(小编我)为大家带来的阿里性能优化指南,就从高性能、易维护、代码增强,以及在微服务系统中编写Java代码的角度来描述如何实现高

2021-01-14 14:30:01 99

原创 seata事务提交流程

Seata 是一款阿里开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案github地址:https://github.com/seata/seata。在分析 seata 事务二阶段执行流程之前,首先来看下XA的2PC 流程:对于 XA 来说,无论 Phase2 的决议是 commit 还是 rollback,事务性资源的锁都要保持到 Phase2 完成才释放。.

2021-01-13 14:25:03 294 1

原创 JDK、JRE、JIT、SDK、JVM的区别你是否了解?

JDK(Java Development Kit 开发工具包)JDK(java development kit)是JRE(Java运行时环境)的超集,它包含JRE所拥有的一切以及编译器、调试器等开发工具。JRE(Java运行时环境)JRE(Java运行时环境)提供JVM(Java虚拟机)运行的环境。JRE包含JVM、类库和其他文件,不包括编译器和调试器等开发工具。这意味着,您可以在JRE中运行代码,但不能在JRE中开发和编译代码。JVM(Java虚拟机)JVM(J..

2021-01-13 14:21:50 411 1

原创 太香了!Github星标百万,阿里首推JDK源码限时开源

写在前面:几乎所有的大神都会强调看源码,也强调源码的重要性;但是如何看源码,源码看什么?看了什么用?看了怎么用?困扰很多人,尤其是初学者。由浅入深看源码,探究多线程原理由浅入深看源码,探究多线程原理本手册的目的在于基于JDK 7和JDK 8,对整个Concurrent包进行全面的源码剖析。JDK 8中大部分并发功能的实现和JDK 7一样,但新增了一些额外特性。例如CompletableFuture、ConcurrentHashMap的新实现、StampedLock、LongAdd

2021-01-12 23:02:33 104 1

原创 慕了慕了!阿里金三银四面试指南全网首发!疫情闭关修炼必备!

不知道小伙伴们是否已经开始备战今年的金三银四的跳槽面试做准备了。最近阿里巴巴开源了一份Java程序员2021年金三银四面试指南(泰山版)里面涵盖了明年金三银四面试中会问到的一些知识点以及常问的一些面试题及解析。知识点涵盖了:高并发、设计模式、微服务、分布式、缓存、消息中间件、数据库、搜索引擎、负载均衡、数据结构与算法、大数据、Zookeeper等等内容。由于文章的篇幅有限,小编只能为大家展示目录,完整版已经为大家整理完毕。需要领取完整版的话麻烦一键三连文章,然后添加小助理vx:bjmsb2020

2021-01-12 21:05:06 101 1

原创 实践为主,理论够用!腾讯高工手码MySQL高阶宝典震撼开源,手慢无!

MySQL提到MySQL大家脑子里首先出现的肯定是MySQL优化,我们都知道mysql数据库优化是多方面的,原则是减少系统的瓶颈,减少资源的占用,增加系统反应的速度。一般我们是从MySQL 5.7版本的存储引擎增强,硬件、操作系统、配置参数优化、设计规范优化几个层面来全面优化MySQL服务器。但对于一个企业级的系统来说,优化MySQL服务器固然重要,但数据库系统的可用性也是不能抛开的。数据库系统一旦出现问题无法提供服务,所有系统都可能无法继续工作,而不像软件中部分系统出现问题可能影响的仅仅只是某个功

2021-01-12 14:04:37 115 1

原创 MySQL两阶段提交串讲

一、吹个牛#面试官的一句:“了解MySQL的两阶段提交吗?” 不知道问凉了多少人!这篇文章白日梦就和大家分享什么是MySQL的两阶提交到底是怎么回事!不管你原来晓不晓得两阶段提交,相信我!这篇文章中你一定能get到新的知识!在说两阶段提交之前,大家要了解undo-log、redo-log、binlog。先了解它们,才能更好的理解什么是两阶段提交二、事务及它的特性#在说两阶段提交事物之前,我们先来说说事务。一般当我们的功能函数中有批量的增删改时,我们会添加一个事物包裹这一系列的

2021-01-11 14:50:51 243 1

原创 腾讯消息队列CMQ部署与验证

环境架构图组件介绍组件监听端口CMP依赖VIP:准备工作3台8*16服务器安装文档: 物料包(组件物料包和python脚本) :https://cmq-1255613487.cos.ap-chengdu.myqcloud.com/install_cmq/CMQ-ALL.zip安装[192.168.1.66] 前端组件:#安装#[root@node_66 ~]# lsCMQ-1.0.2-软件包.tar.gzmk...

2021-01-10 18:49:49 1338 3

原创 常见数据库备份方式:MySQLbinlog数据恢复详解

数据备份有哪些种?#MySQL中数据备份的方式还是蛮多的,常见的有冷备份、逻辑备份、热备份、快照备份。什么是冷备份?所谓的冷备份,说白了就是在数据库停止运行的情况下,直接备份磁盘中MySQL用来存储数据的那些数据文件。在前面的文章中,白日梦跟大家分享过MySQL的表空间。看过那篇文章的同学都是知道,MySQL中的数据最终都存储在表空间中的。表空间 == 表空间文件。其实而所谓的空间,本质上对应着存在于操作系统磁盘上的肉眼能看到的物理文件。下面你可以看一下我的MySQL的表空间文件都是怎么

2021-01-10 18:47:30 276 3

原创 面试官:Java OOM都有哪些,说出几种?

Key TakeAwaysStackOverflowError: 调用栈过深,导致线程栈占用大小超过-Xss(或者是-XX:ThreadStackSize)的限制 OutOfMemoryError: Java heap space:堆内存不够用,无法分配更多内存,就会抛出这个异常。 OutOfMemoryError: unable to create native thread:这个在创建太多的线程,超过系统配置的极限。如Linux默认允许单个进程可以创建的线程数是1024个。 OutOfMemo

2021-01-08 18:41:15 304

原创 「Kafka核心设计与实践原理」-生产者原理

生产者流程配置生产者客户端参数及创建响应的生产者实例 构建待发送的消息 发送消息 关闭生产者实例参数配置必要参数配置bootstrap.servers: 该参数用来指定生产者客户端连接Kafka集群所需的broker地址清单,格式:host1:port1,host2:port2 key.serializer&value.serializer: broker端接收的消息必须以字节数组(byte[])的形式存在。其他参数配置properties.put(Produc.

2021-01-07 22:36:49 161

原创 细节拉满!美团首推“百万级”Redis进阶笔记究竟有什么魅力

Redis相信大家现在项目里面都会用到一个技术——Redis。毫不夸张的说Redis作为现在最受欢迎的NoSQL数据库之一,不管是项目还是面试都会有所涉及!我们都知道在项目中使用redis,无非是从性能和并发两个角度出发。在很多面试场景中一般也会出现这么一个问题:Redis能用来干什么?缓存?分布式锁?但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,好像并不是非要使用redis。但真的是这样吗?并不是!Redis是现在互联网技术领域使用最为广泛的存储中间件,

2021-01-05 14:48:32 168

原创 面试官:小伙子我们先来详细的好好聊一聊NIO的三大组件

NIO是啥?NIO是Java从JDK1.4开始引入的一系列改进版输入输出处理手段,也就是New IO,简称NIO,也有说法叫NonBlocking IO,是同步非阻塞式的IO模型,准确地说它支持阻塞非阻塞两种模式。本篇主要介绍NIO提供的三大组件的概念及使用:Buffer,Channel,Selector。BufferBuffer可以理解为是一个容器,用于存储数据,本质是个数组,存储的元素类型是基本类型。无论是发送还是读取Channel中的数据,都必须先置入Buffer。java.n

2021-01-04 21:11:22 77

空空如也

空空如也

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

TA关注的人

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