随笔分类 - 面试
摘要:今天,我们开始Java高并发与多线程的第四篇,锁。 之前的三篇,基本上都是在讲一些概念性和基础性的东西,东西有点零碎,但是像文科科目一样,记住就好了。 但是本篇是高并发里面真正的基石,需要大量的理解和实践,一环扣一环,环环相扣,不难,但是需要认真去读。 好了,现在开始。 第一部分,咱们要谈到java
阅读全文
摘要:【为什么要使用线程池】 传统线程创建方式的问题 反复创建线程系统开销比较大,每个线程创建和销毁都需要时间,如果任务比较简单,那么就有可能导致创建和销毁线程消耗的资源比线程执行任务本身消耗的资源还要大。 过多的线程会占用过多的内存等资源,还会带来过多的上下文切换,同时还会导致系统不稳定。 线程池的优点
阅读全文
摘要:【基本流程】 客户端发送请求,到DispatcherServlet(SpringMVC前端控制器,主要负责分发) DispatcherServlet根据请求的url信息调用HandlerMapping,解析请求对应的Handler 解析到对应的Handler(controller的实现类,也叫act
阅读全文
摘要:【 2 种线程实现方式的源码】 实现 Runnable 接口 public class RunnableThread implements Runnable { @Override public void run() { System.out.println('用实现Runnable接口实现线程')
阅读全文
摘要:衡量一个排序算法的优劣,我们主要会从以下 3 个角度进行分析: 1.时间复杂度,具体包括,最好时间复杂度、最坏时间复杂度以及平均时间复杂度。 2.空间复杂度,如果空间复杂度为 1,也叫作原地排序。 3.稳定性,排序的稳定性是指相等的数据对象,在排序之后,顺序是否能保证不变。 【冒泡排序】 冒泡排序最
阅读全文
摘要:【answer】 List是一个接口,而ArrayList是List接口的一个实现类。 ArrayList类继承并实现了List接口。 因此,List接口不能被构造,也就是我们说的不能创建实例对象,但是我们可以像下面那样为List接口创建一个指向自己的对象引用,而ArrayList实现类的实例对象就
阅读全文
摘要:【什么是递归】 在数学与计算机科学中,递归 (Recursion))是指在函数的定义中使用函数自身的方法,直观上来看,就是某个函数自己调用自己。 递归有两层含义: 递归问题必须可以分解为若干个规模较小、与原问题形式相同的子问题。并且这些子问题可以用完全相同的解题思路来解决; 递归问题的演化过程是一个
阅读全文
摘要:【问题描述】 在浏览器输入www.baidu.com,然后,浏览器显示相应的百度页面,这个过程究竟发生了什么呢? 【第一步,解析域名,找到主机】 正常情况下,浏览器会缓存DNS一段时间,一般2分钟到30分钟不等。如果有缓存,直接返回IP。 缓存中如果没有查到IP,浏览器会做系统调用,读取主机的hos
阅读全文

浙公网安备 33010602011771号