摘要:
序列化和反序列化作为Java里一个较为基础的知识点,那你能说一下序列化和反序列化底层是如何实现的吗? 一、基本概念1、什么是序列化和反序列化(1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程;(2)序列化:对象序列化的最主要的用处就是 阅读全文
摘要:
一:关于Starter:Spring Boot秉承“约定大于配置”的开发方式,使得我们基于Spring Boot开发项目的效率变得十分高。相信使用过Spring Boot的小伙伴都会发现,当我们要用到某个Spring提供的组件时,只需要在pom.xml文件中添加该组件的starter依赖就能集成到项 阅读全文
摘要:
一:前言使用过springboot的同学应该已经知道,springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程。本文的目的就是一步步分析springboot的启动过程,分析springboot是如何帮我们简化这个过程的。 springboot帮我们做了什么通常搭建 阅读全文
摘要:
阿里的面试官问了个问题,如果corePolllSize=10,MaxPollSize=20,如果来了25个线程 怎么办?答案:当一个任务通过execute(Runnable)方法欲添加到线程池时:1、如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线 阅读全文
摘要:
一:什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行 阅读全文
摘要:
一. CyclicBarrier简介1:CyclicBarrier(可重用屏障/栅栏) 类似于 CountDownLatch(倒计数闭锁),它能阻塞一组线程直到某个事件的发生。2:与闭锁的关键区别在于,所有的线程必须同时到达屏障位置,才能继续执行。3:闭锁用于等待事件,而屏障用于等待其他线程。4:C 阅读全文
摘要:
1:概念原理:countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了。使用该API的时候,需要已知 阅读全文
摘要:
一:布隆过滤器简介: Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false pos 阅读全文
摘要:
1:IOC容器,其实就是一个map容器,项目启动的时候,扫描包下面有@Controller、@Service、@Compont等注解的类,通过反射实例化成对象,把这些类放在map对象中、key默认是类名首字母小写,value是实例。 2:注入的原理就是在map容器中取出该对象 3:urlMaping 阅读全文
摘要:
一:JVM运行时数据区:程序计数器、虚拟机栈、本地方法栈、堆、方法区(元空间) 1:虚拟机栈:存储当前线程运行方法所需的数据、指令、返回地址。 栈帧(用来执行方法):每个方法在执行的同时都会创建一个栈帧,栈帧划分为:局部变量表(八大基本数据类型、对象引用reference)、操作数栈、动态链接、返回 阅读全文