摘要: 虚拟机内存的各个部分 如上图所示,JVM运行时内存可以分为堆,栈,非堆。 栈 栈是线程私有的,里面主要包括了程序计数器(Program Counter), 虚拟机栈(VM Stack)和本地方法栈(Native Method Stack)。 程序计数器 可以看做是当前线程执行字节码的行号指示器,程序 阅读全文
posted @ 2022-03-10 17:11 rachel_aoao 阅读(39) 评论(0) 推荐(0) 编辑
摘要: HTTP的特点 HTTP = hypertext transfer protocol,即超文本传输协议。在网络分层模型里面有说到,HTTP是应用层协议。它的主要特点如下: 无状态 HTTP是建立在TCP协议上的,我们知道TCP协议是有状态的。有状态意味着内部存在一些数据结构去维护这个状态。而HTTP 阅读全文
posted @ 2022-03-10 11:31 rachel_aoao 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 基础 根据之前网络通信分层结构的介绍, 我们知道TCP是位于传输层的协议。为什么要分层,不就是为了“各司其职,更加灵活”嘛。应用层,负责制造数据出来;网络层,负责找到数据要发到的正确地方;而中间的传输层则是为了保证数据交到网络的“效率”。 TCP的定义:面向连接的,可靠的流式传输协议。以下我们将会围 阅读全文
posted @ 2022-03-09 17:15 rachel_aoao 阅读(143) 评论(0) 推荐(0) 编辑
摘要: OSI的七层 & TCP/IP的四层 我们常说的四七层,其实是说的OSI的七层模型和TCP/IP的四层模型,结构如下图所示: 主要需要知道的是HTTP是应用层协议,TCP/UDP是传输层协议,IP地址是网络层协议。 分层模型下的网络通信 数据在网络中传输,从应用端到应用端其实是经过以上层层结构的加工 阅读全文
posted @ 2022-03-09 10:38 rachel_aoao 阅读(204) 评论(0) 推荐(0) 编辑
摘要: # HTTP & HTTPS 有一个前提就是:在网络信道传输的数据是任何人都可以截获的。由于这个特性,再加上HTTP的明文传输,就有非常大的不安全隐患。如何保证安全?那是不是我把传输的明文数据加密, 在信道里是一堆看不懂的字节,然后让接收方解密就可以了呢?这仍然会存在一些问题,如: - 如何保证加解 阅读全文
posted @ 2022-03-08 14:15 rachel_aoao 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式 模式简述 Spring中的FactoryBean Product → BeanObject Concrete Products → e.g.如mybatis中的T MapperObject Creator → FactoryBean public interface FactoryBe 阅读全文
posted @ 2022-03-07 16:27 rachel_aoao 阅读(78) 评论(0) 推荐(0) 编辑
摘要: CURD insert db.collection.insertOne() db.collection.insertMany() db.fruits.insertOne({name:"apple"}) db.fruits.insertMany([ {name:"apple"}, {name:"pea 阅读全文
posted @ 2022-03-01 17:51 rachel_aoao 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 基础问题 线程和进程的含义及区别 线程 操作系统调度的最小单元,轻量级进程 进程 操作系统资源分配的基本单位,操作系统在运行一个程序的时候,会为其创建一个进程。 一个进程里可以创建多个线程,这些线程都拥有各自的计数器,堆栈和局部变量等属性,并且能够访问共享的内存变量。 每个进程都有独立的代码和数据空 阅读全文
posted @ 2022-02-28 18:54 rachel_aoao 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 概念 官方上说,Raft是一个共识算法(consensus algorithm)。我们一般喜欢把它叫做Raft协议。细品“共识”,“协议”,一定是有很多人参与才能叫做“共识”或者“协议”,要是一个人玩,想怎么玩就怎么玩。因此,Raft是一个让多方(一般就是多个服务器)都来遵守的一套“规则”,而这套规 阅读全文
posted @ 2022-02-24 19:57 rachel_aoao 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 原则 分库分表有一个前提:能不拆就不拆,能少拆就少拆,避免过度设计和过早优化,优先考虑升级硬件,索引优化,读写分离等等。因为拆分会带来开发和后期维护的成本。那为什么仍然需要分库分表呢?第一,某些系统还是需要依赖MySQL来保证金融级的事务。第二,MySQL本质是单机数据库,支持不了太大的数据量和高并 阅读全文
posted @ 2022-02-23 11:29 rachel_aoao 阅读(92) 评论(0) 推荐(0) 编辑