- 博客(1006)
- 资源 (2)
- 收藏
- 关注

原创 Java面试复习体系总结(2021版)
Java面试复习体系总结(2021版)一、Java基础内容Java基础(一):Java集合框架(超详细解析,看完面试不再怕)Java基础(二):迭代器(Iterator)(含使用方法详解)Java基础 (三):LinkedList(含使用方法详解)Java基础(四):ArrayList(含使用方法详解)Java基础(五):HashSet(使用方法详解)Java基础(六):HashMap(使用方法详解)Java基础(七):栈 Stack(使用方法详解)
2021-01-14 11:43:47
212
3

原创 微软最新开源工具PowerToys,让你的win10更加好用!!
前言我偶尔用来听一些有声节目,前几天听到一个节目讲到萨提亚·纳德拉这个现任CEO,依靠他准确的把握方向使得本来错过移动互联、定位失败、逐渐显露出颓势的微软重新获得了生机,市值也一度达到新高。的确,作为一名开发者,对于微软的潜移默化之中的转变关注更为密切。无论是操作系统,还是开发工具,我们都无法离开这个全球最大的电脑软件提供商。如果3年前提到开源、免费,我肯定无法联想到微软。近几年,我逐渐的开始感受到微软已经从当初那个僵化、远离用户的公司开始变得贴近用户、拥抱潮流和变化。Windows 10加入Lin
2020-06-25 11:18:47
19533
1

原创 Linux命令大全(排版清晰!!持续更新!!非常详细)
前言最近在使用Linux的时候,发现有很多命令不太会。在csdn查阅命令大全的时候,发现很多文章都没有很好的排版,于是写一篇文章,希望能够帮助到大家!一、基本操作命令首先先来几个热键,非常方便,一定要记住Tab按键—命令补齐功能Ctrl+c按键—停掉正在运行的程序Ctrl+d按键—相当于exit,退出Ctrl+l按键—清屏1.1 关机和重启1.关机命令:shutdown****其他****关机命令:halt,poweroff取消定时关机命令:shutdown -c2.重启命令:reb
2020-06-24 00:00:16
30298
81

原创 Ubuntu20.04安装之后的优化(更换国内源,安装VMtools,安装软件等)
文章目录简介更换国内源1.图形界面操作 - 适用于desktop版本2.终端操作-适用于Server & Desktop版本安装VMtools删除某些无用(不常用)软件更新系统软件安装简介在安装完Ubuntu之后,其实有很多可以优化的地方,来增加我们的使用体验,这里介绍一些优化的步骤。更换国内源介绍两种方法1.图形界面操作 - 适用于desktop版本在桌面右上角点击打开菜单,点击设置选项。在设置选项右侧下拉找到“关于”,点击 Software Updates。在Ubuntu软件
2020-06-02 16:03:04
9816
原创 基于阿里云ECS搭建云上博客!超详细图文步骤!
阿里云体验地址:https://developer.aliyun.com/adc/scenario/410e5b6a852f4b4b88bf74bf4c197a57?spm=a2c6h.15013979.J_7591448770.3.7f447077bJFVfd1. 创建资源请点击页面左侧的 云产品资源,在下拉栏中,查看本次实验资源信息;在资源下拉栏点击 免费开通 按钮,开始创建实验资源。2.连接ECS服务器在连接服务器之前,首先需要把你自己的ip地址加入安全组中,允许通过入网需求
2021-01-19 20:49:13
158
原创 免费获取ECS服务器,并且使用宝塔管理界面的方法!详细图文过程!
免费获取ECS服务器方法你也可以免费获取一个临时的ecs服务器,供自己测试。首先选择体验阿里云ECS博客搭建。网站如下:https://developer.aliyun.com/adc/scenario/fdecd528be6145dcbe747f0206e361f3?spm=a2c6h.15013979.J_7591448770.1.7f447077NAyF7i在此处获取资源以后,登录进入账户获取实例。点击更多,云盘和镜像,操作系统在镜像市场里选择宝塔即可...
2021-01-19 20:47:37
36
原创 使用宝塔面板将java项目部署到云服务器ECS!超详细图文步骤!
1、阿⾥云服务器搭建概览阿⾥云ecs服务器购买地址2、搭建详细流程1.购买时,如图选择按量付费2.如图选择CPU3.如图选择操作系统为 宝塔linux⾯板4.选择按使⽤流量 设置为80M (学⽣机⽆法设置)5.设置服务器密码6.配置安全组点击快速添加,添加对应的规则如图所示。7.在浏览器中输⼊ecs服务器的公⽹ip:8888, 根据提示⾃定义你的管理员账号和密码如果不存在账号密码⾃定义⻚⾯**,** 可以按照下图流程获取默认账户和密码。进⼊宝塔控制⾯板后 ,
2021-01-19 20:31:58
38
原创 JavaWeb项目:个人主页生成器网站(java+mysql+tomcat+vuejs,内附部署到云服务器ECS教程!以及采用Palor数据库的方法)
个人主页生成器本项目制作了一个个人主页的生成器。能够实现输入个人数据,生成一个在线网站供他人查看你的信息。项目地址https://github.com/ImViper/HomePage_Generator运行环境JavaWebMysql 8.0Tomcat 9.0.39VueJs阿里服务器ECS (非必须)阿里云数据库(非必须)效果展示填写信息界面生成界面如果想要采用polarDB数据库,将数据库部署到云上,请参考这个文章申请。之后修改代码中的数据库链接
2021-01-19 20:30:13
15
原创 云数据库polarDB搭建流程!超详细图文解析!2021最新版!
云数据库polarDB搭建流程步骤如下1、进入官网点击进入2、开始搭建先登录账号,然后如下图点击购买3、调整配置新用户免费试用2核8G一个月,如图点击更换节点规格 4、勾选服务协议勾选服务协议,点击去支付,进行0元试用。5、集群搭建成功点击管理控制台,开始使用。注意:开通成功需要等待10-15分钟6、进入控制台如图切换到地区控制台,即可观察到 #创建中# 的数据库集群列表7、设置集群白名单需要设置集群的IP白名单,并创建集群的初始账号,才能连接和使用该集群如图单击集群ID。在左侧导航栏,单击配
2021-01-19 20:26:15
18
原创 使用PolarDB数据库和阿里云服务器ECS搭建网站!超详细图文教程!实现外网访问个人网站并且能够处理高并发!
阿里云体验使用PolarDB和ECS搭建门户网站地址:https://developer.aliyun.com/adc/scenario/a7161434e6cd499e9e26f2e62d0242fb?spm=a2c6h.15013979.J_7591448770.9.7f447077NAyF7i使用步骤1.创建资源在页面左侧,单击 云产品资源 下拉菜单,查看本次实验资源。单击 免费开通 创建所需资源。资源创建过程需要1~3分钟。完成实验资源的创建后,您可以在 云产品资源 列表
2021-01-19 20:24:28
35
原创 国内大厂都在坐的DevOps是什么?DevOps方法和工具详细解析!
DevOps目前很多大厂如阿里、腾讯、百度、头条、滴滴、美团等公司内部都在做DevOps,那么DevOps是什么?为什么都对其趋之若鹜?DevOps应该怎么做?首先我们来讲讲DevOps是什么?DevOPs是一种方法论。DevOps=Developers+Operators,即开发团队和运维团队一体化,尽可能地为公司创造更多价值。现在流行的做法是将两个职能部门的人融合为一个职能部门,实现开发运维一体化,而早期的时候是两波人分别承担不同的职能,中期的时候是要求两波人密切配合、快速迭代,这中间的变化取决
2021-01-18 12:42:47
170
原创 Git提交push报错:HTTP 413 curl 22 The requested URL returned error 413 解决方案(超详细步骤)
Git提交push报错:HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large解决方案(超详细步骤)文章目录Git提交push报错:HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large解决方案(超详细步骤)前言错误解决方法1.检查现有 SSH 密钥2.生成新 SSH 密钥并添加到 ssh-agent
2021-01-18 12:18:40
314
1
原创 自然语言处理大作业-三种中文分词方法的性能对比与评分(附带完整源码,超详细报告文档,展示文档)
自然语言处理大作业-三种中文分词方法的性能对比与评分项目地址https://github.com/ImViper/nlp_Chinese_word_segmentation文档在doc文件夹里。自行fork或者star下载。需要环境python3numpy安装方法:pip3 install --user numpy scipy matplotlib或者使用Anaconda集成环境。项目结构类名作用dict_generator.py将标准数据集生成为json格
2021-01-18 10:40:44
67
1
原创 平行志愿录取系统 ——数据库大作业 (基于java+mysql+maven+vuejs+springboot,附带完整源码和超详细文档)
平行志愿录取系统 ——数据库大作业 (基于java+mysql+maven+vuejs+springboot,附带完整源码和超详细文档)本平行志愿录取系统是为了完成数据库工程的大作业。其中doc文件夹中附带软件工程文档,需要的可以参考一下。希望各位点赞,收藏!!项目直接按照环境配置部署好了之后就可以直接运行。建议提前学习一下maven、springboot的环境配置。不会的小伙伴可以在评论区留言,看到了会及时解答。开发环境JDK8MySQL5.7springboot2.3maven3.6.3
2021-01-18 10:38:28
35
原创 《软件工程》课程:期末复习提纲(超详细课本内容)
题型1.名词解析 10题2.简答 5题3.综合 2题重点看标记的,了解出小题,理解出小题或者大题,掌握出大题。结合课本:第一章概论1.2软件工程1.2.1软件工程定义(了解)写出其中一种。1.Friitz Bauer 在NATO会议上给出的定义软件工程是建立和使用一套合理的工程原则,以便获得经济的软件,这种软件是可靠的,可以在实际的机器上高效的运行。2.IEEE在软件工程术语汇编中的定义软件工程是:将系统化的、严格约束的、了量化的方法应用于软件的开发、运行和维护,即将工程化应用
2021-01-18 10:36:22
346
原创 原创 《深入理解 Java 虚拟机》阅读笔记3系列:Java运行期优化
运行期优化我们知道,Java 是解释执行的,可是解释执行毕竟还是有点慢的,这也使得 Java 一直被认为是效率低下的语言……,不过随着即时编译技术的发展,Java 的运行速度得到了很大的提升,在本篇文章中,我们将会对 Java 的运行期优化,也就是即时编译 (Just In Time, JIT) 时进行的优化进行详细的讲解,我们先来看看什么是即时编译。运行期优化即时编译HotSpot 虚拟机内的即时编译器运作过程为什么要使用解释器与编译器并存的架构?为什么虚拟机要实现两个不同的 JIT
2021-01-17 11:05:19
156
原创 原创 《深入理解 Java 虚拟机》阅读笔记3系列:虚拟机调优案例分析
虚拟机调优案例分析虚拟机调优案例分析高性能硬件上的程序部署策略服务系统经常出现卡顿(Full GC 时间太长)除了 Java 堆和永久代之外,会占用较多内存的区域从 GC 调优角度解决新生代存活大量对象问题(Minor GC 时间太长)高性能硬件上的程序部署策略补充:64 位虚拟机在 Java EE 方面,企业级应用经常需要使用超过 4GB 的内存,此时,32 位虚拟机将无法满足需求,可是 64 位虚拟机虽然可以设置更大的内存,却存在以下缺点:内存问题: 由于指针膨胀和
2021-01-17 11:04:41
57
原创 原创 《深入理解 Java 虚拟机》阅读笔记3系列:JVM常见参数设置
JVM 常见参数设置JVM 常见参数设置内存设置参数设置经验收集器设置参数内存设置参数-Xms:初始堆大小,JVM 启动的时候,给定堆空间大小。-Xmx:最大堆大小,如果初始堆空间不足的时候,最大可以扩展到多少。-Xmn:设置年轻代大小。整个堆大小 = 年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为 64M,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun 官方推荐配置为整个堆的 3/8。-Xss: 设置每个线程的 J
2021-01-17 11:04:13
58
原创 原创 《深入理解 Java 虚拟机》阅读笔记3系列:常用虚拟机性能监控工具
常用虚拟机性能监控工具常用虚拟机性能监控工具JDK 命令行工具补充:ps 命令 (Linux)JDK 命令行工具其中的重中之重是 jstat 命令!而它最常用的参数就是 -gcutil,使用格式如下:jstat -gcutil [pid] [intervel] [count]输出如下:S0:堆上 Survivor space 0 区已使用空间的百分比S1:堆上 Survivor space 1 区已使用空间的百分比E:堆上 Eden 区已使用空间的百分比O:堆上 O
2021-01-17 11:03:38
33
原创 《深入理解 Java 虚拟机》阅读笔记2系列:附录:实现Java类的热替换
实现 Java 类的热替换实现 Java 类的热替换什么是热替换及其实现原理实现简单的 Java 类热替换需求分析实现类加载器什么是热替换及其实现原理热替换是在不停止正在运行的系统的情况下进行类(对象)的升级替换;这要求虚拟机中要存在同一个类的两个不同版本。可我们知道,我们是无法将同一个类加载两遍的,想要实现这点,我们需要让虚拟机认为这是两个不同的类,即用两个不同的类加载器去加载这个类不同版本的 class 文件;因此,这个工作就不能由系统提供给我们的启动类加载器,扩
2021-01-16 11:10:55
59
原创 《深入理解 Java 虚拟机》阅读笔记2系列:基于栈的字节码解释执行引擎
基于栈的字节码解释执行引擎这个栈,就是栈帧中的操作数栈。解释执行先通过 javac 将代码编译成字节码,虚拟机再通过加载字节码文件,解释执行字节码文件生成机器码,解释执行的流程如下:词法分析 -> 语法分析 -> 形成抽象语法树 -> 遍历语法树生成线性字节码指令流指令集分类基于栈的指令集优点:可移植:寄存器由硬件直接提供,程序如果直接依赖这些硬件寄存器,会不可避免的受到硬件的约束;代码更紧凑:字节码中每个字节对应一条指令,多地址指令集中还需要存放参数;编译器实
2021-01-16 11:10:16
61
原创 《深入理解 Java 虚拟机》阅读笔记2系列:方法调用
方法调用Java 的方法的执行分为两个部分:方法调用:确定被调用的方法是哪一个;基于栈的解释执行:真正的执行方法的字节码。在本节中我们将对方法调用进行详细的讲解,我们知道,一切方法的调用在 Class 文件中存储的都是常量池中的符号引用,而不是方法实际运行时的入口地址(直接引用),直到类加载的时候,甚至是实际运行的时候才回去会去确定要被运行的方法的直接引用,而确定要被运行的方法的直接引用的过程就叫做方法调用。方法调用方法调用字节码指令解析调用分派调用静态分派(方法重载)变量
2021-01-16 11:09:40
166
原创 《深入理解 Java 虚拟机》阅读笔记2系列:虚拟机栈栈帧结构
虚拟机栈栈帧结构虚拟机栈栈帧结构局部变量表局部变量表的空间分配Slot 的复用操作数栈动态连接方法返回地址局部变量表存放方法参数和方法内部定义的局部变量;Java 程序编译为 class 文件时,就确定了每个方法需要分配的局部变量表的最大容量。最小单位:Slot;一个 Slot 中可以存放:boolean,byte,char,short,int,float,reference,returnAddress (少见);虚拟机可通过局部变量表中的 refe
2021-01-16 11:09:10
38
原创 《深入理解 Java 虚拟机》阅读笔记2系列:虚拟机的类加载机制
虚拟机的类加载机制虚拟机的类加载机制类加载的时机类的显式加载和隐式加载类加载的过程类的生命周期加载加载的 3 个阶段分类验证准备解析初始化类加载器如何判断两个类 “相等”类加载器的分类双亲委派模型类加载的时机JVM 会在程序第一次主动引用类的时候,加载该类,被动引用时并不会引发类加载的操作。也就是说,JVM 并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。那么什么是主动引用,什么是被动
2021-01-16 11:08:39
34
原创 《深入理解 Java 虚拟机》阅读笔记2系列:Class文件的组成结构
Class 文件的组成结构Class 文件是一组以 8 位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件中,中间没有任何分隔符。Java 虚拟机规范规定 Class 文件采用一种类似 C 语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:无符号数和表,我们之后也主要对这两种类型的数据类型进行解析。无符号数: 无符号数属于基本数据类型,以 u1、u2、u4、u8 分别代表 1 个字节、2 个字节、4 个字节和 8 个字节的无符号数,可以用它来描述数字、索引引用
2021-01-16 11:08:09
37
原创 《深入理解 Java 虚拟机》阅读笔记1系列:Java内存分配策略
Java 内存分配策略Java 内存分配策略优先在 Eden 区分配大对象直接进入老年代长期存活的对象将进入老年代空间分配担保新生代和老年代的 GC 操作新生代 GC 操作:Minor GC发生的非常频繁,速度较块。老年代 GC 操作:Full GC / Major GC经常伴随着至少一次的 Minor GC;速度一般比 Minor GC 慢上 10 倍以上。优先在 Eden 区分配Eden 空间不够将会触发一次 Minor GC;虚拟机参数
2021-01-16 11:07:37
35
原创 《深入理解 Java 虚拟机》阅读笔记1系列:垃圾收集(GC)
垃圾收集 (GC)垃圾收集(Garbage Collection,GC),它的任务是解决以下 3 件问题:哪些内存需要回收?什么时候回收?如何回收?其中第一个问题很好回答,在 Java 中,GC 主要发生在 Java 堆和方法区中,对于后两个问题,我们将在之后的内容中进行讨论,并介绍 HotSpot 的 7 个垃圾收集器。垃圾收集 (GC)判断对象的生死判断对象是否可用的算法引用计数算法可达性分析算法(主流)四种引用类型宣告对象死亡的两次标记过程方法区的回收
2021-01-16 11:06:56
35
原创 《深入理解 Java 虚拟机》阅读笔记1系列:OOM异常
OOM 异常 (OutOfMemoryError)OOM 异常 (OutOfMemoryError)Java 堆溢出Java 虚拟机栈和本地方法栈溢出方法区和运行时常量池溢出直接内存溢出Java 堆溢出出现标志:java.lang.OutOfMemoryError: Java heap space解决方法:先通过内存映像分析工具分析 Dump 出来的堆转储快照,确认内存中的对象是否是必要的,即分清楚是出现了内存泄漏还是内存溢出;如果是内存泄漏,通过工具查看泄漏对象到 G
2021-01-16 11:06:25
35
原创 《深入理解 Java 虚拟机》阅读笔记1系列:Java内存区域详解
Java 内存区域详解Java 内存区域详解JVM 运行时的数据区域程序计数器Java 虚拟机栈本地方法栈Java 堆方法区直接内存HotSpot 虚拟机堆中的对象对象的创建(遇到一条 new 指令时)对象的内存布局对象的访问句柄访问直接指针访问JVM 运行时的数据区域首先获取一个直观的认识:总共也就这么 5 个区(直接内存不属于 JVM 运行时数据区的一部分),除了程序计数器其他的地方都有可能出现 OOM (OutOfMemoryErro
2021-01-16 11:06:08
40
原创 JVM春招面试复习系列:探秘HotSpot虚拟机对象
Java是面向对象的静态强类型语言,声明并创建对象的代码很常见,根据某个类声明一个引用变量指向被创建的对象,并使用此引用变量操作该对象在实例化对象的过程中,JVM中发生了什么呢?(1)下面从最简单的代码进行分析,利用javap -verbose- p命令查看对象创建的字节码● new : 如果找不到Class对象,则进行类加载加载成功后,则在堆中分配内存,从Object开始到本类路径上的所有属性值都要分配内存分配完毕之后,进行零值初始化在分配过程中,注意引用是占据存储空间的,它是一个变量,
2021-01-15 11:46:59
152
原创 JVM春招面试复习系列:探秘HotSpot虚拟机对象
Java是面向对象的静态强类型语言,声明并创建对象的代码很常见,根据某个类声明一个引用变量指向被创建的对象,并使用此引用变量操作该对象在实例化对象的过程中,JVM中发生了什么呢?(1)下面从最简单的代码进行分析,利用javap -verbose- p命令查看对象创建的字节码● new : 如果找不到Class对象,则进行类加载加载成功后,则在堆中分配内存,从Object开始到本类路径上的所有属性值都要分配内存分配完毕之后,进行零值初始化在分配过程中,注意引用是占据存储空间的,它是一个变量,
2021-01-15 11:45:08
149
原创 JVM春招面试复习系列:内存模型
0 相关源码内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行不同的JVM对于内存的划分方式和管理机制存在着部分差异结合JVM虚拟机规范,来探讨经典的JVM内存布局1 Program Counter Register (程序计数寄存器)Register 的命名源于CPU的寄存器,CPU只有把数据装载到寄存器才能够运行寄存器存储指令相关的现场信息,由于CPU
2021-01-15 11:40:55
158
原创 JVM春招面试复习系列:垃圾收集算法
Java会对内存进行自动分配与回收管理,使上层业务更加安全,方便地使用内存实现程序逻辑在不同的JVM实现及不同的回收机制中,堆内存的划分方式是不一样的这里简要介绍垃圾回收( Garbage Collection, GC)。垃圾回收的主要目的是清除不再使用的对象,自动释放内存.静态内存分配和回收在程序开始运行时由编译器分配的内存在被编译时就已经能够确定需要的空间,当程序被加载时系统把内存一次性分配给它,这些内存不会在程序执行时发生变化,直到程序执行结束时才回收内存.包括原生数据类型及对象的引用
2021-01-15 11:33:48
40
原创 JVM春招面试复习系列:垃圾收集器
使用分代垃圾收集器,基于以下观察事实(弱分代假设)大多数分配对象的存活时间短存活时间久的对象很少引用存活时间短的对象由此, HotSpot VM 将堆分为两个物理区空间,这就是分代(永久代只存储元数据, eg. 类的数据结构,保留字符串( Interned String))根据新生代和老年代各自的特点,我们应该分别为它们选择不同的收集器,以提升垃圾回收效率.1 新生代垃圾收集器1.1 Serial垃圾收集器一个主要应用于Y-GC的垃圾回收器,采用串行单线程的方式完成GC任务,其中“St
2021-01-15 11:28:55
35
原创 JVM春招面试复习系列:对象实例化
Java是面向对象的静态强类型语言,声明并创建对象的代码很常见,根据某个类声明一个引用变量指向被创建的对象,并使用此引用变量操作该对象在实例化对象的过程中,JVM中发生了什么化学反应呢?(1)下面从最简单的代码进行分析,利用javap -verbose- p命令查看对象创建的字节码● new : 如果找不到Class对象,则进行类加载加载成功后,则在堆中分配内存,从Object开始到本类路径上的所有属性值都要分配内存分配完毕之后,进行零值初始化在分配过程中,注意引用是占据存储空间的,它是一
2021-01-15 11:28:39
39
原创 JVM春招面试复习系列:JVM的栈上分配与逃逸分析(Escape Analysis)
1 逃逸分析JVM中较前沿的优化技术,它与类型继承关系分析一样,并非直接优化代码,而是为其他优化措施提供依据的分析技术。1.1 基本原理分析对象动态作用域,当一个对象在方法里面被定义后,它可能被外部方法所引用例如作为调用参数传递给其他方法,称为方法逃逸被外部线程访问譬如赋值给可以在其他线程中访问的实例变量,称为线程逃逸从不逃逸 =》方法逃逸 =》线程逃逸,称为对象由低到高的不同逃逸程度。如果能证明一个对象不会逃逸到方法或线程外(即别的方法或线程无法通过任何途径访问到该对象),或逃逸程度
2021-01-15 11:27:21
34
原创 Idea代码自动补全!插件推荐:Codota,再也不用担心写不出代码了。
前言最近,有小伙伴推荐给D哥一款IDEA插件,叫我一定得给大家分享一下,简直太好用了~这款插件解决的痛点:当你不知道一个类该怎么用的时候,它能帮你快速找到想要的实例代码。群里有不少同学说,“哇,太酸爽了,老大再也不用担心我写不出来代码了”。这款插件就是 Codota。基于AI技术,通过对大量开源的项目学习,帮助开发者提供更可靠的智能推荐,让编程变得更easy!官网:https://www.codota.com看官方发现,目前支持的语言很多,Java, Javascript, TypeScrip
2021-01-14 12:51:05
192
原创 春招面试复习:消息队列(七)-数据压缩
1 数据压缩意义Kafka使用数据压缩,最高可提升约几十倍吞吐量。数据压缩不仅可节省存储空间,还可用于提升网络传输性能。这种使用压缩提升系统性能的方法,不仅在MQ使用,日常开发也可。比如传输大量数据或要在磁盘、数据库中存储较大数据,这些情况下,都可考虑使用数据压缩提升性能,还能节省网络带宽和存储空间。2 数据压缩适用场景进程间通过网络传输数据是不是需要压缩?不压缩直接传输耗时: 传输未压缩数据的耗时使用数据压缩耗时: 压缩耗时 + 传输压缩数据耗时 + 解压耗时压缩快还是不压缩快呢?不好说。
2021-01-14 10:35:36
163
原创 春招面试复习:消息队列(六)- 异步编程妙用
0 异步的优势太多的线程会造成频繁的cpu上下文切换,你可以想象一下,假设你的小公司只有8台电脑,你雇8个程序员一直不停的工作显然是效率最高的。考虑到程序员要休息不可能连轴转,雇佣24个人,每天三班倒,效率也还行。但是,你要雇佣10000个人,他们还是只能用这8台电脑,大部分时间不都浪费在换人、交接工作上啦。异步编程是通过分工的方式,是为了减少了cpu因线程等待的可能,让CPU一直处于工作状态。换句话说,如果我们能想办法减少CPU空闲时间,我们的计算机就可以支持更多的线程。其实线程是一个抽象概念,我
2021-01-14 10:34:47
56
原创 春招面试复习:消息队列(五)- 消息积压解决方案
1 消息积压问题追溯系统某部分出现性能问题,来不及处理上游发的消息,导致消息积压。消息积压是正常现象,积压越来越多就需要处理了。就像一个水库,日常蓄水是正常的,但下游泄洪能力太差,导致水库水位一直不停的上涨,这个就不正常了。2 积压的开发警示防范于未然,平时使用MQ时,如何优化代码才能避免消息积压?若线上已出现积压,如何处理最好?3 性能优化性能的优化主要在生产者和消费者这俩业务逻辑。MQ自身性能,作为API使用者,无需过于关注。因大多MQ业务,MQ本身处理能力远大于业务系统。主流MQ的
2021-01-14 10:34:17
53
小米网页静态实现.rar
2020-06-26
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝