摘要: 一、什么是线程池? 一个线程池管理一组工作的线程,同时它还包括一个用于放置等待执行任务的任务队列(阻塞队列)。 二、线程池的工作原理 默认情况下,在创建线程池后,线程池中的线程数为0,当任务提交给线程池后处理策略如下: 1. 如果线程池中的数量小于 corePoolSize(核心线程池大小),即使线 阅读全文
posted @ 2018-08-29 17:48 110255 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 在Java中,有四种方式来实现同步互斥访问:synchronized 、 Lock 、wait() / notify() / notifyAll() 方法和 CAS(硬件CPU同步原语)。 一、synchronized 1. 同步代码块 表示线程在执行的时候会将object 对象上锁。(注意这个对象 阅读全文
posted @ 2018-08-27 15:30 110255 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 一、什么是分布式系统 分布式系统是建立在网络之上的系统。分布式系统背后是由一系列的计算机组成的,但用户感知不到背后的逻辑,就像访问单个计算机一样。 特征: 最开始一台服务器上存储着文件,数据,应用程序。随着流量的增多,瓶颈出现,应用程序需要更快CPU,数据库服务器要更大内存(缓存)和硬盘,文件服务器 阅读全文
posted @ 2018-08-21 16:06 110255 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 一、引言 1.什么是session Session 是服务器用来保存用户操作的一系列会话信息,由Web容器进行管理。最常见的,会把用户的登录信息、用户信息存储在 session 中,以保持登录状态。 2.session的创建 在会话开始时,分配一个唯一的会话标识 SessionID(sessioni 阅读全文
posted @ 2018-08-20 14:54 110255 阅读(4918) 评论(0) 推荐(0) 编辑
摘要: 一、HashMap (JDK8)put(K key, V value)底层实现 1. 首先判断这个hashmap是否为空,为空就初始化一个hashmap 2. 根据key 计算hashcode()值,和数组长度-1 进行&(等价于求余), 得到bucket的位置 3. 得到位置后 判断该处的值是否为 阅读全文
posted @ 2018-08-17 16:16 110255 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 一、什么是内存泄露 内存泄露是指一个不在被程序使用的对象或变量还在内存中占有存储空间。 1. 内存泄露主要有两种情况: (1). 在堆中申请的空间没有释放 (2.) 该对象已经不再使用,却还在内存中保留着 一般垃圾回收机制可以有效的解决第一种情况。 Java内存泄露主要是第二种情况。 在循环中不断创 阅读全文
posted @ 2018-08-15 17:57 110255 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 1、 题目: 一个文本文件中每一行中有一个URL,最多一万行,统计每一个URL的次数,输出到另外一个文件中,每一行前面是URL,后面是个数。 2、代码: 阅读全文
posted @ 2018-08-13 16:37 110255 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 1、什么是类加载机制? JVM把class文件加载到内存里面,并对数据进行验证、准备、解析和初始化,最终能够被形成被JVM可以直接使用的Java类型的过程。 生命周期包含:加载,验证,准备,解析,初始化,使用,卸载 7个阶段 加载:将class 文件加载到运行时数据区,方法区中 验证:进行一些安全校 阅读全文
posted @ 2018-08-13 11:28 110255 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 一、为什么使用Docker 软件开发最大的麻烦事之一,就是环境配置。很多人想到,能不能从根本上解决问题,软件可以带环境安装? 也就是说,安装的时候,把原始环境一模一样地复制过来。 目前有两个主流解决方案: 1. 虚拟机 虚拟机就是带环境安装的一种解决方案。它可以在一种操作系统里面运行另一种操作系统。 阅读全文
posted @ 2018-08-10 09:38 110255 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 转自https://www.cnblogs.com/ygj0930/p/6536048.html 阅读全文
posted @ 2018-08-09 17:28 110255 阅读(105) 评论(0) 推荐(0) 编辑