自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java全栈架构师学习路线图

随着自己的博客不断的产出,最近发现一个痛点,想找一篇自己的博客,很难找,及时有分类,但是觉得还不是很直观。因为最近应该会有一大批文章会产出(已经写好了一个系列,暂时还没有公布出来,再修改下统一发出来)。以后我的博客都会是一个系列一个版本,给大家爽到爆。为了给大家和自己一个好的体验,今天打算先把之前写的文章分类整理好,让你以后看我这一篇文章就能把你想要看的东西博客都能很轻松找到。JAVA篇 JAVA原理 JAVA集合 JAVA多线程 JAVA IO JVM

2020-07-06 17:05:06 2524 1

原创 Java面试总结

今天本着愉快的心情,面试了两家还不错的互联网公司,一家某未科技,某扑体育两家公司的环境和规模都是相当不错的,都是我想要去的公司,然而事与愿违,由于自己能力原因,和这两家公司说拜拜了。从哪跌倒就从哪爬起来,不让失败再一次发生,是时候做出改变了。加油,奥利给!!!那我就来简单的想一想今天都问了一些什么东西吧。及未科技:1.笔试题一套(挺基础的,但是题很多,三页,我做了接近50分钟) 选择:几个简单的string引用的题,多线程,IO流,看程序输出结果 简答题:结合jav...

2020-05-09 20:20:12 489 2

原创 java从菜鸟到巨佬的学习目标

工作一年多了,觉得自己还是很菜,就会简单的crud,啥数据结构,算法,计算机组成原理......这一切都不咋会。但是又不知道自己需要从哪学,从我一个室友给的建议,把你想要的学的列出来,然后一点一点去征服他们。这几天上班没啥事,想了想自己想要学和应该学的一些东西罗列出来了。记得每次面试,hr或者技术官都会问这么一个问题:"你未来的规划是啥"?很多人的回答其实都是啥架构师,大数据人工智能,高级工程...

2019-09-25 11:38:00 398 2

原创 JAVA IO模型

Netty

2023-02-01 21:02:15 144 1

原创 RPC通讯原理

2023-02-01 20:33:20 136

原创 Docker详解与部署微服务实战

Docker详解与部署微服务实战

2022-07-10 13:26:51 504

原创 Vue入门第四天

接口调用方式原生ajax基于jQuery的ajaxfetchaxios异步JavaScript的执行环境是「单线程」所谓单线程,是指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任务,这个任务执行完后才能执行下一个,它会「阻塞」其他任务。这个任务可称为主线程异步模式可以一起执行多个任务JS中常见的异步调用定时任何ajax事件函数promise主要解决异步深层嵌套的问题promise 提供了简洁的API 使得异步操作更加容

2021-09-08 10:07:56 254

原创 12个真实项目实战带你玩转Java并发编程

这篇博客,我会总结如下内容,满满的干货,篇幅可能会很长,做好心理准备 Immutable Object:不可变对象模式:在不引入锁的条件下,能保证访问共享变量时是线程安全的,缺点是会频繁的创建变量。 Guarded Suspension:保护性暂挂模式:将线程间的等待与唤醒规范化 week3 Two-phase Termination:两阶段终止模式:优雅的终止run方法的执行,让其有做一些收尾工作的可能 Promise:承诺模式:能够优雅的让当前线程,获取到另一个线程的

2021-09-08 09:46:50 1823 2

原创 Vue入门第五天

1.路由的概念路由的本质就是一种对应关系,比如说我们在url地址中输入我们要访问的url地址之后,浏览器要去请求这个url地址对应的资源。那么url地址和真实的资源之间就有一种对应的关系,就是路由。路由分为前端路由和后端路由1).后端路由是由服务器端进行实现,并完成资源的分发2).前端路由是依靠hash值(锚链接)的变化进行实现后端路由性能相对前端路由来说较低,所以,我们接下来主要学习的是前端路由前端路由的基本概念:根据不同的事件来显示不同的页面内容,即事件与事件处理函数之间的对应关系前端路

2021-08-30 15:47:52 242

原创 vue入门第三天

组件组件 (Component) 是 Vue.js 最强大的功能之一组件可以扩展 HTML 元素,封装可重用的代组件注册全局注册Vue.component(‘组件名称’, { }) 第1个参数是标签名称,第2个参数是一个选项对象全局组件注册后,任何vue实例都可以用组件基础用<div id="example"> <!-- 2、 组件使用 组件名称 是以HTML标签的形式使用 --> <my-component></my-

2021-08-30 15:47:10 146

原创 vue入门第二天

Vue常用特性表单基本操作获取单选框中的值通过v-model <!-- 1、 两个单选框需要同时通过v-model 双向绑定 一个值 2、 每一个单选框必须要有value属性 且value 值不能一样 3、 当某一个单选框选中的时候 v-model 会将当前的 value值 改变 data 中的 数据 gender 的值就是选中的值,我们只需要实时监控他的值就可以了 --> <input type="radio" id="m

2021-08-26 15:16:48 188

原创 vue入门第一天

day01Vue 是什么?Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合使用Vue将helloworld 渲染到页面上指令本质就是自定义属性Vue中指定都是以 v- 开头v-cloak防止页面加载时出现闪烁问题 <style type="text/css"> /* 1、通过属性选择器 选择到 带有属性 v-cloak的标签 让他隐藏

2021-08-26 15:15:49 199

原创 Vue组件间的通信

下面的总结都将按照这个模型图去设计父传子的方式 :(Props)App组件:<template> <div> <Student name="carry" :age=26 sex="男"/> </div></template><script>import Student from './components/Student';export default { name:'App.

2021-08-17 22:47:39 249

原创 Spring的循环引用源码讲解

接着上一讲,我们今天就完整的分析一下Spring的循环引用什么是循环引用,就不用我多逼逼了,直接上代码,全程debug分析源码@Configuration@ComponentScan({"com.carry"})public class Appconfig {}@Componentpublic class X { @Autowired private Y y; public X() { System.out.println("x的构造方法"); }}@Co

2021-06-24 11:24:54 259

原创 Spring的Bean的实例化过程

前面已经把Spring的ioc流程分析的很详细了,我们今天就来分析一下spring的Bean的实例化过程。来看下spring是如何把一个bean给new出来,并且是如何填充属性的

2021-06-22 14:32:03 1298

原创 10种排序算法

1冒泡排序2选择排序3插入排序4希尔排序5.归并排序6.

2021-06-11 10:53:26 155 1

原创 Spring源码 @Import和@Configuration注解

接着上回的分析

2021-06-11 09:28:32 989

原创 Spring源码分析,ConfigurationClassPostProcessor

接着上一篇bean的BeanPostProcessor和BeanFactoryPostProcessor的分析

2021-06-07 19:46:55 143 2

原创 分库分表的落地实现:Sharding-jdbc

Sharding-jdbc的技术实现

2021-06-07 17:46:40 225

原创 Spring源码分析,bean的BeanPostProcessor和BeanFactoryPostProcessor的

第一讲Spring源码 BeanFactory的初探,我们已经对Spring的bean工厂和环境有了一个初步的认识,那我们今天就接着分析,refresh做了什么操作/** * 在创建 IOC 容器前,如果已经有容器存在,则需要把已有的容器销毁和 * 关闭,以保证在 refresh 之后使用的是新建立起来的 IOC 容器。它类似于对 IOC 容器的重启,在新建立 * 好的容器中对容器进行初始化,对 Bean 配置资源进行载入。 * @throws BeansException * @

2021-06-03 16:46:43 327 1

原创 Spring源码 BeanFactory的初探

看了Spring源码也有一阶段了,但是博客一直没有总结,因为源码这个东西,总结起来是真的难,想让别人看懂的博客更难。我也看了很多csdn上的一些别的Spring源码的博客,总觉得很多东西都讲的一知半解,大多数把一个方法复制过来,说下这个方法大致干啥就没了,很多重要的细节可能自己都没搞明白呢。我总结了他们写的源码博客的经验,打算来一个代码全程Debug的方式,很多重要的代码一行行解析的方式来记录。这样做的好处就是,别人看不到我的代码可以自己调试,不会无厘头吧。这个方式不好的地方就是,你需要把我的博客从第一篇看

2021-05-31 18:52:22 241 5

原创 抓包工具Charles的学习

1.Charles的使用场景我们在进行B/S架构的Web项目开发时,在前端页面与后台交互的调试的时候,通常使用在JSP中加入“debugger;”断点,然后使用浏览器的F12开发者工具来查看可能出错的地方的数据。或者使用HttpWatch来抓包分析。在开发移动端项目没有网页的情况下,就不能通过这种方式抓取数据进行分析了。这时可以使用Charles满足以上要求。Charles是一款Http代理服务器和Http监视器,当移动端在无线网连接中按要求设置好代理服务器,使所有对网络的请求都经过Charles客

2021-03-19 13:57:16 372 4

原创 PC寄存器和虚拟机栈

上篇我们学习了类加载子系统,这篇我们来介绍一下运行时数据区中的pc寄存器和虚拟机栈的细节内容介绍。1.程序计数器(PC寄存器)JVM中的程序计数器(寄存器Program Counter Register),Register的命名来源于CPU的寄存器,寄存器存储指令相关的信息。CPU只把数据装载到寄存器才能运行。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。1.1 作用PC寄存器是用来存储指向下一条指令的地址,即将要执行的指令代码。由执行引擎读取下一条指令。它是一块很小的内

2021-03-08 16:43:39 419

原创 高性能mysql学习专题

最近打算开始学习高性能mysql这本书,打算把这本书学习的东西沉淀下来,希望对大家能够有所帮助哦第一章:Mysql架构与历史第二章:Mysql基准测试第三章:服务器性能剖析第四章:Schema与数据类型优化第五章:创建高性能的索引第六章:查询性能优化第七章:Mysql高级特性第八章:优化服务器设置第九章:操作系统和硬件优化第十章:复制第十一章:可扩展Mysql第十二章:高可用性第十三章:云端的Mysql第十四章:应用层优化第十五章:备份与恢复第

2020-12-02 21:44:06 192 1

原创 Hadoop入门第一天

今天很高兴能够开始这个专题,从此就要了解一下BigData领域的东西了,看到下面这个截图,开心的像个孩子一样,加油,跟着carry来一步一步探索大数据的神秘面纱吧。1.从Hadoop框架讨论大数据生态1.1 Hadoop到底是个什么东西1.2 Hadoop的三大发行版本Hadoop三大发行版本:Apache、Cloudera、Hortonworks。Apache版本最原始(最基础)的版本,对于入门学习最好。Cloudera内部集成了很多大数据框架。对应产品CDH。Ho

2020-10-28 14:05:08 181

原创 RabbitMQ入门与使用

最近学习了Kafka相关的知识,打算再把RabbitMQ也了解一下,可以有个对比,有时间RocketMQ也去了解下,其实学多了MQ其实是大同小异,我们就进入今天的RabbitMQ的领域去探索一下吧。有想要在Linux上安装RabbiMQ的可以看下这篇博客,亲测可用,一路畅通无阻:https://blog.csdn.net/wang1988081309/article/details/97374677基本特性高可靠:RabbitMQ 提供了多种多样的特性让你在可靠性和性能之间做出权衡,包括持久化、

2020-07-15 23:29:50 271

原创 Kafka的实现原理

如果对kafka的基础知识了解不深,可以看下我的Kafka的基础知识入门,今天这篇博客是来讲解kafka的实现原理,需要有一定的kafka的前置知识,不然可能会很迷茫。从前面的整个演示过程来看,只要不是超大规模的使用kafka,那么基本上没什么大问题,否则,对于 kafka本身的运维的挑战会很大,同时,针对每一个参数的调优也显得很重要。据我了解,快手在使用kafka集群规模是挺大的,他们在19年的开发者大会上有提到这篇文章值得推荐一波:快手万亿级别 Kafka 集群应用实践与技术演进之路技术

2020-07-13 22:51:21 1666 5

原创 Kafka入门基础知识

什么是KafkaKafka是一款分布式消息发布和订阅系统,它的特点是高性能、高吞吐量。 最早设计的目的是作为LinkedIn的活动流和运营数据的处理管道。这些数据主要是用来对用户做用户画像分析以及服务器性能数据的一些监控所以kafka一开始设计的目标就是作为一个分布式、高吞吐量的消息系统,所以适合运用在大数据传输 场景。Kafka的应用场景由于kafka具有更好的吞吐量、内置分区、冗余及容错性的优点(kafka每秒可以处理几十万消息),让 kafka成为了一个很好的大规模消息处理应用的解决方案。

2020-07-11 18:26:34 1800

原创 Zookeeper基础知识原理篇

Zookeeper 的前世今生 Apache ZooKeeper 是一个高可靠的分布式协调中间件。它是 Google Chubby 的一个开源 实现,那么它主要是解决什么问题的呢?那就得先了解 Google Chubby Google Chubby 是谷歌的一个用来解决分布式一致性问题的组件,同时,也是粗粒度的分布 式锁服务。分布式一致性问题 什么是分布式一致性问题呢?简单来说,就是在一个分布式系统中,有多个节点,每个节点 都会提出一个请求,但是在所有节点中只能确定一个请求被通过。而.

2020-07-08 18:43:34 1224

原创 springBoot自动配置原理分析及自定义starter

现在java项目基本都是springboot项目构建的,我们本着他们提出的约定大于配置的思想,使用起来都特别简单,很多情况下我们主需要引入几个start的jar包,写几个注解就能用,可是你们知道这里面的原理吗?那我们今天就来分析一下springBoot的自动配置原理和start的原理,顺便再自己写一个start来加深印象。1.@Import是什么我们之前创建一个Bean可以使用@Configuration与@Bean这两个注解配合使用来将原来配置在xml文件里的bean通过java代码的方式进.

2020-07-05 22:46:36 475

原创 java序列化与反序列化

我的上一篇博客,介绍了通讯的原理,写了几个关于Socket的几个Demo,那么我们思考下,如何基于Socket进行对象的传输呢?之前又同学说建议我写博客代码的部分不要截图,直接贴代码,我今天就把代码贴上来吧。来看下我写的Demo吧(代码只是demo,连接啥的我没都没有关闭哦)。public class User { private String name; public String getName() { return name; } public void setName(St.

2020-06-30 15:30:25 275 1

原创 远程通讯协议原理

第一次挥手(FIN=1,seq=x)假设客户端想要关闭连接,客户端发送一个 FIN 标志位置为 1 的包,表示自己已经没有数据 可以发送了,但是仍然可以接受数据。发送完毕后,客户端进入 FIN_WAIT_1 状态。第二次挥手(ACK=1,ACKnum=x+1)服务器端确认客户端的 FIN 包,发送一个确认包,表明自己接受到了客户端关闭连接的请求, 但还没有准备好关闭连接。发送完毕后,服务器端进入 CLOSE_WAIT 状态,客户端接收到这 个确认包之后,进入 FIN_WAIT_2 状态,等待服务器端

2020-06-28 16:49:34 709 1

原创 java线程的中断的方式原理分析

虽然本篇是讲解线程的中断方式的,但是我还是想多讲解一个知识点,那就是线程的启动。只有启动才有中断的,我觉得这个线程的启动很有必要讲解的。线程的启动我们知道启动线程,也就是调用 start()方法去启动一个线程,当 run 方法中的代码执行完毕 以后,线程的生命周期也将终止。调用 start 方法的语义是 当前线程告诉 JVM,启动调用 start 方法的线程。但是它的原理我们知道吗?我们就来粗略的看一下吧。线程的启动原理很多同学最早学习线程的时候会比较疑惑,启动一个线程 为什么是调用 sta

2020-06-24 23:10:18 1156 2

原创 AQS的核心原理分析

之前已经写过一篇关于AQS的介绍了,基本概念我就不多逼逼了,我直接把我那篇文章复制过来。后面来根据java的源码分析这个AQS的内部实现。前言:这一部分的基础概念讲解,全部都是我之前的一篇博客:谈谈你对AQS的了解1.写在前面:这篇文章,我们来聊聊面试时一个比较有杀伤力的问题:聊聊你对AQS的理解?之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题。当时那位同学内心估计受到了一万点伤害。。。因为首先,很多人可能连AQS是什么都不知道。或者仅仅是听说过AQS这个名词,但是可能连

2020-06-21 23:25:17 4786 11

原创 七天带你入门Mybatis源码第四天,MappedStatement

有了前三讲的基础,我们知道mybatis的架构,mybatis的xml解析,Configuration的解析等知识的奠基。我们今天就来深刻探讨一下MappedStatement是个啥东西,有啥作用。我们现在来思考一下,看下这两个东西:我们写的一个接口和这个xml的mapper文件,是怎样结合起来的?我们只要用过mybatis,我们应该都知道mybatis有一个这样的一个流程:我们就从源码的角度来看待这个问题吧这个截图,我们在第三讲是有截图的,就是解析了XML之后,会得到这些参

2020-06-08 22:15:54 156

原创 七天带你入门Mybatis源码第三天,mybatis的Mapper生成

书接上回,第二讲我们看了xml的解析过程,也看了生成的Configuration对象里面的东西,但是有一个东西是需要我这边着重讲解的。那就是mapperElement(root.evalNode("mappers"));今天我们就来看下这个Configuration是怎样把我们的Mapper搞进去的。映射器(mappers)既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要来定义 SQL 映射语句了。 但首先,我们需要告诉 MyBatis 到哪里去找到这些语句。 在自动查找资源方面,J

2020-06-04 21:21:29 86

原创 七天带你入门Mybatis源码第二天,mybatis的Xml解析之XPathParser

有了昨天第一讲的mybatis的结构的猜想与设计,想必我们对mybatis的架构有了一个整体的了解,我们今天就来一步一步探索mybatis的源码解析。我们在第一讲的时候,mybatis的官网提供了两种方式,我们来看下这两种方式:xml方式:不使用xml的方式:看着这两种方式,我就有自己的疑惑了,这第一种和第二种有什么区别呢?我们看下第二种方式,就是自己手动创建一个TransactionFactory和数据源DataSource,然后给configuration(configura

2020-06-02 22:55:28 131

原创 七天带你入门Mybatis源码第一天,mybatis架构设计

前言:这是我最近学习的一个系列,Mybatis源码系列。打算把自己最近看的东西输出出来,和大家一起交流下。也算是对自己近期学习的一个总结吧。有很多人不理解为啥要看源码?他们认为看源码没有用,就是浪费时间,还有一些人认为看源码都是一些大佬看的东西等等。但是在我看来,我们学习源码,不是要扣清楚每一个算法的具体实现,而是清楚这个框架的整体架构的轮廓,是学习人家的编码设计风格,架构思想。俗话说的好,见多识广吧。我也会分享我看源码的方式和心得体会,也欢迎大家和我交流心得和体会。今天是mybatis源码的第一讲,我

2020-06-01 22:37:56 63

原创 java多线程原理之--进程与线程的原理分析

想必大家面试应该都会问过这样一个知识点:什么是进程,什么是线程?想必大家可能都会说的一个回答:进程是操作系统资源分配的基本单位,而线程是cpu调度和执行的基本单位。一个应用程序就是一个进程,一个进程可以有多个线程。。。。。。你要是这样回答,遇到一个菜逼面试官可能就混过去了,但是遇到一个资深的大佬,你可能就栽在这个问题上了(哈哈)那我们现在就从深层次的剖析这个问题,让这一个问题你可以在面试官面前,多吹十分钟,哈哈。我们来看下一个简单的计算机结构图吧:至于为啥会出现中间一层内存,可以

2020-05-18 20:59:17 248

原创 Redis分布式锁的实现

最近面试被问道了一些分布式锁相关的问题,今天打算好好把分布式锁的问题看一下1.先看一下简单的扣库存的例子这个是最基础的扣库存的例子,在并发问题下肯定是有问题的,有些人可能会说,加个syn或者lock锁不就好咯,但是这面我要说你想多了吧,syn和lock锁时线程级别的锁,我们现在的项目都是多个节点部署的,都是多进程的,你这个锁时没有用的,下面我们就要来看看我们分布式项目常用的分布式锁的实现来解决这个问题.2.学习redis的分布式锁,我们先学习这个命令setRedis Setnx(SE

2020-05-10 15:32:12 393

空空如也

空空如也

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

TA关注的人

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