自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL 内核原理分析(一)

学一个技术,我们先要 跳出来,看整体,先要在脑中有一个这个技术的全貌。然后再 钻进去,看本质,深入的研究细节。这样方便我们建立一个立体的知识网络。不然单学多个知识点,是串不起来的。不容易记住,理解也不会深刻。所以,我们先把 MySQL 拆解一下,看看内部有哪些组件,我们 Java系统执行一条SQL,MySQL的内部是如何运作,给我们返回结果的。我们先从我们访问数据库说起 我们想要查询数据库,首先得建立网络连接 MySQL 驱动负责建立网络连接,然后请求 MySQL 数据库 其实就是创建了一个数

2021-05-26 11:18:31 1443 6

原创 JVM运行原理及优化

我们写好的代码,是要通过JVM才能运行的 JVM 想要执行一个类,首先要加载类,在加载类之前,需要先编译成字节码class 文件 然后就执行类的加载过程,JVM 加载类的话,需要类加载器 类加载器是分层级的,遵循双亲委派机制, 最上层是Bootstrap ClassLoder,加载java的核心类库,加载java安装目录下的lib目录的class文件 第2层是Ext ClassLoder,加载一些java的其他类库,加载java安装目录下的lib/ext目录下的class 第三层...

2020-07-05 16:50:22 24549 8

原创 storm总结

一、Storm到底是什么?1、hadoop与stormhadoop:离线批处理hadoop是离线批处理,每天将所有数据收集起来,第二天凌晨统一批量计算 分布式存,把9T数据分散在9台机器上存储,每台机器上存储1T 分布式计算,每台机器上就算那一部分的数据(1T),之后汇总起来 hadoop不能来一条算一条(不能实时计算)storm:实时计算来一条数据,就算一条,来一条,算一条2、storm的特点是什么?(1)支撑各种实时类的项目场景:storm做...

2021-05-27 21:45:33 288 2

原创 线程池原理解析

1、为什么要用线程池,线程池的作用(意义),如果使用线程池会有什么好处,说说你对线程池的了解?创建和销毁线程的代价是很大的,线程不像创建普通object对象那样,在堆中分配点内存就好了的,在new Thread的时候,是先分配内存,但是并没有创建线程,当调用线程的start方法的时候,会通过cpu指令创建一个线程。所以,频繁的创建线程、销毁线程的代价是很大的,会导致系统性能下降。还有,如果频繁创建线程,不加以管理,会导致系统线程过多,影响系统运行。如果用线程池,指定线程数量,线程池会帮助我们管.

2021-05-27 21:02:33 508

原创 HashMap源码总结

1、底层结构是 数组 + 单向链表 + 红黑树 (jdk8之后),之前是数组 + 链表底层是,用node节点组成的数组2、基于<key, value>对存储数据,数据会被封装成一个Node<K,V>节点,会存放它的hash值、key值、value值、next指针。3、几个关键参数初始容量默认加载因子是0.75;扩容临界值(容量*加载因子); 这个东西不只是干了这个事,还有另一个作用 在使用构造函数创建hashmap时,如果指定了容量,那构造函

2021-05-27 14:35:21 273 1

原创 LinkedList源码总结

LinkedList源码总结1、LinkedList 底层是基于双向链表实现的2、LinkedList的每条数据都会被封装成Node<E>private static class Node<E> { E item; Node<E> next; Node<E> prev; //构造方法 Node(Node<E> prev, E element, Node<E> next) { this.item = element; t.

2021-05-27 14:25:41 137

原创 ArrayList源码总结

ArrayList源码总结1、底层基于数组实现2、创建ArrayList如果不指定大小,会先创建一个大小为0的Object[ ]数组 ,第一次添加数据时,会扩容成ArrayList的 默认大小default_capacity:10;3、创建时如果指定大小,直接创建指定大小的Object[ ]数组4、add()对 size+1,去判断数组是否满了,如果满了就调用 grow()方法扩容,扩容大小为,原数组大小 + 原数组大小右移一位。也就是扩容到原来的1.5倍 ...

2021-05-27 14:23:39 105

原创 ByteTCC 分布式事务框架总结

使用背景框架底层原理电商项目落地方案 这个方案是老师架构课的电商部分,老师会写代码带着我们把方案落地到项目中

2021-05-26 11:13:49 551

原创 Java 并发编程总结

如果多线程编程想要保证原子性,那就必须使用锁了,让所有线程串行化去修改共享变量Java 中有两种方式可以加锁 一种是使用Java 内置的关键字 一种是实现了Lock接口的实现类 先介绍 Synchronzied Sychronzied 的使用: Synchronzied 平时使用的时候,有4种方式 1)Synchronzied 方法 如果加的普通的方法上,加锁的目标是对象 如果加到static方法上,加锁的目标是方法区的class类 ...

2020-07-18 17:43:35 4719 3

原创 Eureka 源码总结

Eureka1、Eureka 是为微服务提供服务注册和发现的产品2、为什么要用eureka多个服务间,如订单中心调用库存中心,如果没有eureka,那订单中心就要写死一个URL来访问库存中心接口。这期间,如果商品中心又加了一台机器呢?那订单中心岂不是要加一个URL然后轮询去调用,所以才会用eureka提供服务注册和发现3、使用场景4、Eureka有两类一类是 eureka-server ,一类是 eureka-client ,eureka-server是单独一个服务,专门用来发现

2019-07-05 22:29:41 1760 1

原创 MySql的函数和事件(navicat界面操作)

Mysql自动更新数据,使用事件和函数实现

2017-10-17 17:18:27 23262 5

原创 Ajax提交表单数据的几种方式

总结一下Ajax提交表单数据的几种方式第一种方式1.手工填写表单数据2.使用serialize( )函数提交3.使用jquery Form插件提供的ajaxSubmit()函数

2017-10-11 15:01:28 28448 1

空空如也

空空如也

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

TA关注的人

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