- 博客(12)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 MySQL 内核原理分析(一)
学一个技术,我们先要 跳出来,看整体,先要在脑中有一个这个技术的全貌。然后再 钻进去,看本质,深入的研究细节。这样方便我们建立一个立体的知识网络。不然单学多个知识点,是串不起来的。不容易记住,理解也不会深刻。所以,我们先把 MySQL 拆解一下,看看内部有哪些组件,我们 Java系统执行一条SQL,MySQL的内部是如何运作,给我们返回结果的。我们先从我们访问数据库说起 我们想要查询数据库,首先得建立网络连接 MySQL 驱动负责建立网络连接,然后请求 MySQL 数据库 其实就是创建了一个数
2021-05-26 11:18:31
1575
6
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
24851
8
原创 storm总结
一、Storm到底是什么?1、hadoop与stormhadoop:离线批处理hadoop是离线批处理,每天将所有数据收集起来,第二天凌晨统一批量计算 分布式存,把9T数据分散在9台机器上存储,每台机器上存储1T 分布式计算,每台机器上就算那一部分的数据(1T),之后汇总起来 hadoop不能来一条算一条(不能实时计算)storm:实时计算来一条数据,就算一条,来一条,算一条2、storm的特点是什么?(1)支撑各种实时类的项目场景:storm做...
2021-05-27 21:45:33
305
2
原创 线程池原理解析
1、为什么要用线程池,线程池的作用(意义),如果使用线程池会有什么好处,说说你对线程池的了解?创建和销毁线程的代价是很大的,线程不像创建普通object对象那样,在堆中分配点内存就好了的,在new Thread的时候,是先分配内存,但是并没有创建线程,当调用线程的start方法的时候,会通过cpu指令创建一个线程。所以,频繁的创建线程、销毁线程的代价是很大的,会导致系统性能下降。还有,如果频繁创建线程,不加以管理,会导致系统线程过多,影响系统运行。如果用线程池,指定线程数量,线程池会帮助我们管.
2021-05-27 21:02:33
523
原创 HashMap源码总结
1、底层结构是 数组 + 单向链表 + 红黑树 (jdk8之后),之前是数组 + 链表底层是,用node节点组成的数组2、基于<key, value>对存储数据,数据会被封装成一个Node<K,V>节点,会存放它的hash值、key值、value值、next指针。3、几个关键参数初始容量默认加载因子是0.75;扩容临界值(容量*加载因子); 这个东西不只是干了这个事,还有另一个作用 在使用构造函数创建hashmap时,如果指定了容量,那构造函
2021-05-27 14:35:21
285
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
150
原创 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
119
原创 Java 并发编程总结
如果多线程编程想要保证原子性,那就必须使用锁了,让所有线程串行化去修改共享变量Java 中有两种方式可以加锁 一种是使用Java 内置的关键字 一种是实现了Lock接口的实现类 先介绍 Synchronzied Sychronzied 的使用: Synchronzied 平时使用的时候,有4种方式 1)Synchronzied 方法 如果加的普通的方法上,加锁的目标是对象 如果加到static方法上,加锁的目标是方法区的class类 ...
2020-07-18 17:43:35
4749
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
1785
1
原创 Ajax提交表单数据的几种方式
总结一下Ajax提交表单数据的几种方式第一种方式1.手工填写表单数据2.使用serialize( )函数提交3.使用jquery Form插件提供的ajaxSubmit()函数
2017-10-11 15:01:28
28502
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人