自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hotpots--火锅技术栈

为架构而生。

  • 博客(147)
  • 资源 (8)
  • 收藏
  • 关注

原创 note sth..

IO模式:对于一次IO操作数据会先被拷贝到操作系统内核缓冲区,然后从操作系统内核缓冲区再拷贝到应用程序内存空间。当一个IO操作发生时会发生两个阶段:1、等待数据准备,2、将数据从内核拷贝到进程中。因为这两个阶段Linux系统产生了五种网络模式方案:1、阻塞IO:在数据准备阶段,用户进程会被阻塞,一直等到数据的到来。知道数据到来并被拷贝到用户内存后该阻塞才会解除2、非阻塞IO:数据...

2019-10-31 15:04:37 2768 76

原创 springboot整合springdata jpa全能书

springboot整合springdatajpa

2023-02-23 10:46:39 748

原创 笔记2022-10-24

记录

2022-10-24 11:15:49 180

原创 代码问题排查与系统优化手册

软件工程领域存在一个共识:维护代码所花费的时间要远多于写代码。而整个代码维护过程中,最惊心动魄与扣人心弦的部分,莫过于问题排查(Trouble-shooting)了。特别是那些需要 7x24 小时不间断维护在线业务的一线服务端程序员们,大大小小的问题排查线上救火早已成为家常便饭,一不小心可能就吃成了自助餐 —— 竖着进躺着出,吃不了也兜不住。本文分享作者在服务端问题排查方面的一些经验,包括常见问题、排查流程、排查工具,结合实际项目中发生过的惨痛案例进行现身说法。

2021-12-30 10:47:51 572

原创 SQL数据库优化经验

简介:TDDL(Tabao Distributed Data Layer)是淘宝开源的一个用于访问数据库的中间件,集成了分库分表,主备,读写分离,权重调配,动态数据库配置等功能。本文以2007年TDDL初诞生时的视角,介绍TDDL是如何一步步设计成型的,希望能帮助同学们简单收获:常规数据库效率问题解决思路、TDDL框架设计基本思路以及分布式数据库设计思路等。时间倒转穿越回2007年年底一觉醒来,我还是照常去上班,走到西溪湿地附近,马路没有,高楼没有,有的是小山坡和金色的稻田。一番打听之后,才知.

2021-05-21 14:34:41 458 2

原创 SpringBoot源码分析-启动流程、解决循环依赖

SpringApplication.run(BootWebApplication.class, args);1、启动流程:SpringApplication类public ConfigurableApplicationContext run(String... args) 核心方法:public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch()...

2021-03-26 14:27:33 254

原创 分布式系统技术选型

服务注册中心Eureka: 官方已经不在维护了 (AP) Zookeeper (CA) Consul (CA) Etcd (CP) Nacos(AP)服务调用Ribbon:好像也要不维护的样子 Feign:不再维护 LoadBlance OpenFeign服务熔断Hystrix: 官方已经不在维护了 resilience4j sentienl服务网关Zuul 现在基本不维护 Spring Cloud Gateway Kong APISIX服务配置S...

2021-02-07 15:19:03 259

原创 线上故障快速排查手册

简介:有哪些常见的线上故障?如何快速定位问题?本文详细总结工作中的经验,从服务器、Java应用、数据库、Redis、网络和业务六个层面分享线上故障排查的思路和技巧。较长,同学们可收藏后再看。前言线上定位问题时,主要靠监控和日志。一旦超出监控的范围,则排查思路很重要,按照流程化的思路来定位问题,能够让我们在定位问题时从容、淡定,快速的定位到线上的问题。线上问题定位思维导图一 服务器层面1.1 磁盘1.1.1 问题现象当磁盘容量不足的时候,应用时常会抛出如下的异常信息:.

2021-01-08 10:33:25 569

原创 4大JVM性能分析工具详解,及内存泄漏分析方案

打开终端,查看:输入 diskutil list找到对应的磁盘名称,加载:sudo diskutil mount /dev/disk2s3输入密码加载完成sudo diskutil mount /dev/disk2s1Tuxera NTFS for Mac安装步骤:

2020-10-24 07:16:48 435 1

原创 JVM问题排查基本思路分析

Story background  回望2018年12月,这也许是程序员们日夜不得安宁的日子,皆因各种前线的系统使用者都需要冲业绩等原因,往往在这个时候会向系统同时写入海量的数据,当我们的应用或者数据库服务器反应不过来的时候,就会产生各种各样诡异的问题,诸如表现出来就是系统变得巨卡无比,无法使用,或者周期性卡顿,令人发指,用户轻则问候系统全家,重则心脏病发。总而言之每天都脑壳疼!归根到底是我们的应用服务器或数据库服务器因为扛不住流量造成的系统BUG问题暴露,诸如OOM等,呈现出机器的三高,这里说的三高并

2020-10-20 10:44:22 554 1

原创 Java 的垃圾回收从头到尾

简介:之前上学的时候有一个梗,说在食堂里吃饭,吃完把餐盘端走清理的是 C++ 程序员,吃完直接就走的是 Java 程序员。确实,在 Java 的世界里,似乎我们不用对垃圾回收那么的关注。很多初学者不懂 GC,也能写出一个能用甚至还不错的程序或系统。阿里妹导读:之前上学的时候有一个梗,说在食堂里吃饭,吃完把餐盘端走清理的是 C++ 程序员,吃完直接就走的是 Java 程序员。确实,在 Java 的世界里,似乎我们不用对垃圾回收那么的关注。很多初学者不懂 GC,也能写出一个能用甚至还不错的程序..

2020-10-01 14:00:54 163

原创 AQS原理

前言Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会从应用层逐渐深入到原理层,并通过ReentrantLock的基本特性和ReentrantLock与AQS的关联,来深入解读AQS相关独占锁的知识点,同时采取问答的模式来帮助大家理解AQS。由于篇幅原因,本篇文章主要阐述AQS中独占锁的逻辑和Sync

2020-10-01 13:59:32 521

原创 Java“锁”事

前言Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:1. 乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。

2020-10-01 13:57:35 121

原创 玩转java面向函数编程lambda表达式Function,Consumer,Predicate,Supplier

上代码: private static final Set<Object> setOs = Sets.newLinkedHashSet(); /** * Applies this function to the given argument. * * @param accountId ->id * @param judge...

2020-03-13 16:50:52 487

原创 面试经验

自我介绍 蚂蚁金服-内推的,面了3面技术 携程(offer)内推-只有一次视频面 美团成都提前批(收到offer) 中兴(一面挂) 滴滴(二面挂,现场面) 招银网络(offer,现场面) 华为(offer,现场面) 贝贝网 大疆(只记得3面) 自我介绍本人妹子,985硕士,211本科,专业都是软件...

2020-01-30 21:31:01 759

原创 SpringCloud架构

架构Eureka、Ribbon、Feign、Zuul就是优化并发冲突如果你基于Spring Cloud对外发布一个接口,实际上就是支持http协议的,对外发布的就是一个最最普通的Spring MVC的http接口feign,他是对一个接口打了一个注解,他一定会针对这个注解标注的接口生成动态代理,然后你针对feign的动态代理去调用他的方法的时候,此时会在底层生成ht...

2019-12-02 20:36:22 936 5

原创 synchoronized\Lock锁源码分析

owner 当前锁线程waitset 等待队列(o.wait())cxqEntryList 同步队列等待队列AQS加锁流程

2019-11-30 13:22:36 194

原创 I/O模型以及多路复用三种实现方式select、poll和epoll比较及区别

I/O过程:图图中明显忽略了很多细节,仅显示了涉及到的基本步骤。 注意图中用户空间和内核空间的概念。用户空间是常规进程所在区域。JVM 就是常规进程, 驻守于用户空间。用户空间是非特权区域:比如,在该区域执行的代码就不能直接访问硬件设备。 内核空间是操作系统所在区域。内核代码有特别的权力:它能与设备控制器通讯,控制着用户区域 进程的运行状态,等等。最重要的是,所有 I/O 都...

2019-11-26 15:29:02 2816

原创 java虚拟机(JVM)服务器Linux优化案例

当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容: > 优化前准备: 简单回顾JVM...

2019-11-19 14:19:46 402

原创 大数据技术栈

技术栈全貌大数据平台技术栈下面自底向上介绍各个层的主要项目。1 采集层和传输层采集层Sqoop在hadoop和关系型数据库之间转换数据。FlumeFlume是一个分布式的高可用的数据收集、聚集和移动的工具。通常用于从其他系统搜集数据,如web服务器产生的日志,通过Flume将日志写入到Hadoop的HDFS中。FlumeCanal数据抽取是 ETL...

2019-11-06 20:06:42 533

原创 Spring Boot启动流程

我们开发任何一个Spring Boot项目,都会用到如下的启动类从上面代码可以看出,Annotation定义(@SpringBootApplication)和类定义(SpringApplication.run)最为耀眼,所以要揭开SpringBoot的神秘面纱,我们要从这两位开始就可以了。SpringBootApplication背后的秘密虽然定义使用了多个Annotation...

2019-11-04 15:10:19 169

原创 Java虚拟机(JVM)- 类加载的详细过程

了解 类加载的过程,有利于在类初始化时进行一些功能操作 本文全面讲解类加载过程,希望你们会喜欢。总体过程:底层一点:JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这 五个过程。综述:...

2019-11-01 15:13:29 182 2

原创 java线程状态反观锁

java线程变化的状态转换图如下:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。3、运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。...

2019-10-31 20:00:38 96

原创 java混淆异常

1、运行时异常和非运行时异常(1)运行时异常都是RuntimeException类及其子类异常,"出现都是你的代码问题,你可以选择处理也可不处理,代码优化可以处理"。如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免...

2019-10-31 14:58:19 373

原创 groovy脚本跟java的一些差异

1、Default imports,默认情况下,导入下面的包:java.io. *java.lang。*java.math.BigDecimal中java.math.BigInteger中java.net.*java.util中.*groovy.lang.*groovy.util.*2、Multi-methods,groovy在运行时根据参数的类型选择要调用的方法,称为运行时调度...

2019-10-31 11:29:30 231

转载 正则表达式快速入门教程

本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :)别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎...

2019-09-24 20:18:26 442

转载 HTTPS整套加密机制实现

HTTPS,在我的概念中就是更安全,需要服务器配置证书,但是到底什么是HTTPS,为什么会更安全,整套流程又是如何实现的,在脑子里没有具体的概念。下文将为大家介绍HTTPS整套加密机制是如何实现的,让更多之前不清楚HTTPS加密到底是什么的同学有一个入门的理解。HTTP是什么样的?HTTP是属于应用层的协议,它是基于TCP/IP的,所以它只是规定一些要传输的内容,以及头部信息,然后通过T...

2019-08-14 17:22:11 2971

原创 Java8 Stream&Lambda表达式实例讲解

实例代码见文末。本篇文章主要内容:流基本的常用方法 一种特化形式的流——数值流 Optional 类 如何构建一个流 collect 方法 并行流相关问题 实例代码一. 一般方法首先我们先创建一个 Person 泛型的 ListList<Person> list = new ArrayList<>();list.add(new Person...

2019-07-16 16:51:09 3513

原创 分布式事务常用的解决方案

1、问题分布式事务了解吗?你们如何解决分布式事务问题的?2、分析只要聊到你做了分布式系统,必问分布式事务,你对分布式事务一无所知的话,确实会很坑,你起码得知道有哪些方案,一般怎么来做,每个方案的优缺点是什么。现在面试,分布式系统成了标配,而分布式系统带来的分布式事务也成了标配了。因为你做系统肯定要用事务吧,那你用事务的话,分布式系统之后肯定要用分布式事...

2019-05-26 22:43:16 657

原创 保证缓存与数据库的双写一致性解决方案

一般来说,就是如果你的系统不是严格要求缓存+数据库必须一致性的话,缓存可以稍微的跟数据库偶尔有不一致的情况,最好不要做这个方案,读请求和写请求串行化,串到一个内存队列里去,这样就可以保证一定不会出现不一致的情况串行化之后,就会导致系统的吞吐量会大幅度的降低,用比正常情况下多几倍的机器去支撑线上的一个请求。1、最初级的缓存不一致问题以及解决方案问题:先修改数据库,再删除缓存,如果删...

2019-05-12 22:19:45 705

原创 Hystrix执行流程

1、构建一个HystrixCommand或者HystrixObservableCommand一个HystrixCommand或一个HystrixObservableCommand对象,代表了对某个依赖服务发起的一次请求或者调用构造的时候,可以在构造函数中传入任何需要的参数HystrixCommand主要用于仅仅会返回一个结果的调用HystrixObservableCommand主...

2019-05-04 17:51:59 7270

原创 Linux IO模式及select、poll、epoll实现nio详解

注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。转自:https://segmentfault.com/a/1190000003063859同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO...

2019-04-21 12:27:19 5544 1

原创 lambda表达式拿泛型T的真实类型

1、通过接口类型stringConsumer的class是没有泛型T的2、应该从匿名内部类的class(也就是实现类)获取:解决办法1)自己实现接口2)通过lambda生成的匿名类class对象获取 /** * 拿泛型的T 类型 * interface Consumer<T> * @when 2019...

2019-04-18 21:34:32 5293

原创 红黑树算法Java实现

原理: /** * 红黑树性质四点: * <p> * 1、每个节点要么是红色,要么是黑色。 * 2、根节点必须是黑色 * 3、 红色节点不能连续(也即是,红色节点的孩子和父亲都不能是红色)。 * 4、对于每个节点,从该点至null(树尾端)的任何路径,都含有相同个数的黑色节点。 * 隐藏性质:左右子树高度差...

2019-04-17 23:04:26 3113

原创 Morris算法K叉树版本Java实现

算法详解:1. 如果当前节点的左子节点为空时,输出当前节点,并将当前节点置为该节点的右子节点;2. 如果当前节点的左子节点不为空,找到当前节点左子树的最右节点(该节点为当前节点中序遍历的前驱节点); 2.1. 如果最右节点的右指针为空(right=null),将最右节点的右指针指向当前节点,当前节点置为其左子节点; 2.2. 如果最右节点的右指针不为空,将最右节点右指...

2019-04-17 22:58:16 1639

原创 synchronized使用场景及区别

参考syn锁:https://www.cnblogs.com/lixuwu/p/5676143.html实例对象级别的锁和类对象级别的锁区别 一个锁的是类对象,一个锁的是实例对象。 若类对象被lock,则类对象的所有同步方法全被lock;若实例对象被lock,则该实例对象的所有同步方法全被lock 对象锁 1、实例对象级别的锁private final Object lock...

2019-03-17 20:04:28 5073

原创 spring 事务该不该加trycatch

spring 加trycatch不支持事物回滚TransactionAspectSupport.class原因:invoke方法:try {//执行事物:这里如果方法没有抛出异常继续执行result = invocation.proceedWithInvocation();} catch (Throwable var17) {//捕获到异常回滚this.completeTrans...

2019-03-08 22:50:33 3813

转载 BIO,NIO,AIO 总结

熟练掌握 BIO,NIO,AIO 的基本概念以及一些常见问题是你准备面试的过程中不可或缺的一部分,另外这些知识点也是我们学习 Netty 的基础。文章目录BIO,NIO,AIO 总结 1. BIO (Blocking I/O) 1.1 传统 BIO 1.2 伪异步 IO 1.3 代码示例 1.4 总结 2. NIO (New I/O) 2.1 NI...

2019-02-23 14:45:48 1653

原创 Java 工程师之路

主要版本 更新时间 备注 v1.0 2015-08-01 首次发布 v1.1 2018-03-12 增加新技术知识、完善知识体系 v2.0 2019-02-19 ...

2019-02-20 21:47:39 4421

转载 Java指针类:Unsafe

Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用。但由于Unsafe类使Java语言拥有了类似C语言指针一样操作内存空间的能力,这无疑也增加了程序发生相关指针问题的风险。在程序中过度、不正确使用Unsafe类会使得程序出错的概...

2019-02-15 21:10:51 632 2

技术必备基础知识.pdf

面试知识java文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、 Spring/Spring MVC 、 Spring Boot/Spring Cloud 、 Hibernate、MyBatis

2020-10-28

JAVA核心面试知识整理

【全面整理而且有用!10M大小的文档整理非常有用!适合面试的人群迅速找到工作】JAVA核心面试知识整理,基础之数据结构与算法设计模式多线程与并发JVM内核

2019-05-02

程序员面试金典(第5版)

程序员面试金典(第5版)

2018-03-04

爬虫依赖包

爬虫依赖包爬虫依赖包爬虫依赖包爬虫依赖包爬虫依赖包

2018-02-06

各大公司校招笔试面试计算机网络历年真题总结,总共上百页吧。其他类目可以查看我上传的资源

各大公司校招笔试面试计算机网络历年真题总结,总共上百页吧。其他类目可以查看我上传的资源

2017-12-27

各大公司校招笔试面试多线程和并发历年真题总结

各大公司校招笔试面试多线程和并发历年真题总结,总共上百页吧。其他类目可以查看我上传的资源

2017-12-27

JAVA基础面试笔试历年真题总结

2018届校招各大公司面试题目总结,总共86页,可以打印

2017-12-27

同花顺2018届校园招聘笔试题目2017年

同花顺2018届校园招聘笔试题目2017年同花顺2018届校园招聘笔试题目2017年

2017-10-01

空空如也

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

TA关注的人

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