随笔03 进程的上下文切换和线程的上下文切换的区别首先我们需要知道进程和线程的上下文切换做了什么: 切换页目录以及使用新的地址空间 切换内核栈和硬件的上下文 两种的区别就是进程有第一个操作,线程是没有的,第二个线程和进程都有 关于讨论两者的区别,需要知道进程和线程的在内存地址上的区别,进程是独立的地址空间,而进程里面的线程是连续的地址空间,同一个进程内的线程地址是共享的。 其实切换进程和线程最大的区别就 2021-04-18 #随笔
随笔02 https实现原理最近看的一篇面试总结,原作者写的有一丢丢问题,下面这篇讲的很清楚 深入理解https 在此之前,需要了解对称加密和非对称加密的原理和效率对比 对称加密,就是加密和解密用的同一把密钥,加密和解密速度快 非对称加密,加密用公钥,解密用密钥,公钥是公开的,但在解密的时候只有用相应的密钥才能解密,加密和解密速度慢。 https解决的http的三大问题: 明文传输,裸奔 消息的完整性无法 2021-04-16 #随笔
随笔01 ArrayList和LinkedList区别对于这两种数据结构的基础比较,如,线程安全问题、底层结构,空间占用问题我就不多说了,网上很多文档写的很清楚了,这里我详细的讲下自己对ArrayList和LinkedList在数据的查询,增加,删除和修改上的性能差异: 要分析在三种情况下的差异,首先要清楚两种容器它的底层实现是什么,ArrayList底层是数组实现的,连续的地址内存空间,也就是带索引;Li 2021-04-13 #随笔
Redis必知必会 Redis绝对是当下非常火热的一个NoSql数据库,在之前的博客中,我已经讲到了springboot集成redis的使用,今天在这里分享下Redis常问面试题 1.为什么使用Redis?在项目中使用Redis,主要考虑两个角度:性能和并发。如果只是为了分布式锁这些其他功能,还有其他中间件 Zookpeer 等代替,并非一定要使用 Redis。 性能: 如下图所示,我们在碰到需要执行耗时特别久,且 2021-04-02 #Redis
Spring必知必会 Spring中用到了哪些设计模式?单例模式Spring中的Bean默认情况下都是单例的。bean被声明为单例的时候,在处理多次请求的时候在Spring容器里只实例化出一个bean,后续的请求都公用这个对象,这个对象会保存在一个map里面。当有请求来的时候会先从缓存(map)里查看有没有,有的话直接使用这个对象,没有的话才实例化一个新的对象,所以这是个单例的。但是对于原型(prototype)bea 2021-03-26 #Spring
Java多线程必知必会 进程和线程的联系和区别**进程:**是程序在执行中进行资源分配和调度的基本单位 线程: 是进程的进一步划分,是进程的一个执行体,更小的独立运行的基本单位,亦称轻量级线程 举个栗子: 我们在使用QQ的时候假设是一个进程,那我们使用QQ的发短信,发文件,发说说等功能就可以说是线程。 进程和线程的区别: 进程是独立的地址空间,但同一个进程内的线程共享本进程的地址空间 同一进程的线程共享资源比如CPU 2021-03-24 #Java
Mysql必知必会 介绍MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 mysql架构图 myisam和innodbmyisam引擎是5.1版本之前的默认引擎,有如下特点: 不支持事务 只支持表级锁定 —>数据更新时锁定整个表,就说说对一个数据 2021-03-18 #Mysql
八大排序算法(下) 归并排序归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该方法采用经典的分治策略(分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各个答案拼接在一起,即为分而治之)。 实现思想 具体步骤 代码实现 12345678910111213141516171819202122232425262728293031323334353637383940414243444 2021-03-17 #算法
单例模式的多种实现方式 单例模式,顾名思义就是只有一个实例,并且它自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。下面我们来看下有哪几种实现方式吧。 单例模式分饿汉式和懒汉式,下面介绍下两种的具体写法: 饿汉式饿汉式就是在类加载的时候就已经创建实例,不管你用没用到,都创建。 好处:线程安全 坏处:浪费内存空间 123456789public class Hungry 2021-03-16 #Java
HashMap源码分析 1.HashMap介绍1.1 HashMap底层存储结构 HashMap最早出现在JDK1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,是非线程安全类,在多线程环境下可能会存在问题。 1.8版本的HashMap底层存储结构: 数组+链表+红黑树 1.2 HashMap类的定义先来看看HashMap类的定义: 12public class HashMap< 2021-03-04 #Java