摘要:
代码编译是由Javac编译器来完成,流程如下图1所示: Javac是一种编译器,能将一种语言规范转化成另外一种语言规范,通常编译器都是将便于人理解的语言规范转化成机器容易理解的语言规范,如C/C++或者汇编语言都是将源代码直接编译成目标机器码,这个目标机器代码是CPU直接执行的指令集合。这些指令集合 阅读全文
摘要:
1 List 常用的List包括ArrayList和LinkedList: ArrayList:底层采用数组实现,数据访问的复杂度为O(1),指定位置插入数据复杂度为O(n)。 LinkedList:底层采用链表实现,数据访问的复杂度为O(n),指定位置插入数据复杂度为O(1)。 2 Map 2.1 阅读全文
摘要:
1 需求 应用创建后,期望可以做到封装一次,到处执行。为此,有VM和Docker容器两种封装方案。 2 本质上的区别 VM:在宿主机器、宿主机器操作系统的基础上创建虚拟层,在虚拟层上创建虚拟机,每个虚拟机拥有虚拟化的操作系统、虚拟化的仓库,并且每个虚拟机中可安装应用。 Container(Docke 阅读全文
摘要:
1 消息队列的优势 1.1 异步 假设系统A需要直接调用系统B、C、D,其中,系统A是主要业务,B、C、D为非主要业务,系统A调用系统B的接口需要200ms,调用系统C的接口需要200ms,调用系统D的接口需要200ms,那么这次请求就需要600ms,如果加入一些其他的业务,执行时间可能会更长,多达 阅读全文
摘要:
1 什么是MySQL MySQL是一个关系型数据库管理系统,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。在 阅读全文
摘要:
1 背景 在使用mac的idea的过程中,偶尔会遇到突然回退功能不好用的情况,那么如何解决呢,参照下面方案。 2 解决方法 2.1 选择参数 2.2 选择Eclipse的快捷键 点击应用-->OK即可 阅读全文
摘要:
前面我们介绍了消息中间件的优势和选型,但是选择消息中间件时还需要考虑几个问题,支持的消息类型、如何保证消息不丢失、 消息幂等性的保证,下面我们逐个介绍: 1 常见消息类型 常见的消息类型包括无序消息、有序消息和延时消息三种。 1.1 无序消息 概念:无序消息即没有顺序的消息,具体的:producer 阅读全文
摘要:
1 IOC 概念:IoC(Inverse of Control,控制反转)是一种设计思想,用于将原本在程序中手动创建对象的控制权,交由Spring框架来管理。 IoC在其他语言中也有应用,并非 Spirng 特有。IoC容器是Spring用来实现IoC的载体,IoC容器实际上就是个Map用于存放各种 阅读全文
摘要:
1 概述 我们在设计数据库的过程中,往往要用到范式或反范式的设计模式。熟悉地掌握范式与反范式的要领,学会在实际开发中恰当地混合使用范式与反范式,才能设计出结构合理,执行高效的数据库。 2 特征 范式要求数据表中不存在任何的传递函数依赖,反范式则允许存在传递函数依赖 3 区别 存储:反范式有很多重复的 阅读全文
摘要:
1 概述 linux常见的五大进程间通信方式包括:共享内存、管道、消息队列、信号量、Socket。 2 共享内存 定义:将同一块物理内存映射到不同的进程的虚拟地址空间中,实现不同进程间对同一资源的共享。 特定:(1)不用从用户态到内核态的频繁切换和拷贝数据,直接从内存中读取就可以。 (2)共享内存是 阅读全文
摘要:
服务端资源占用情况分析主要包括CPU、IO、负载、内存、磁盘、网卡。只要有一个达到瓶颈说明服务端达到性能瓶颈。 1 CPU瓶颈 CPU使用率指的是除了空闲时间外的其他时间占总CPU时间的百分比,公式表示:CPU使用率=1-空闲时间/总CPU时间 当CPU利用率过高时,往往会出现服务器卡顿或者无响应的 阅读全文