知识体系
实战
扩展随笔
嗨客快报
深入技术细节
扩展更多知识点,击破各重难点。
计算机基础
单片机教程
单片机教程,将 CPU 芯片、存储器芯片、I/O 接口芯片和简单的 I/O 设备(小键盘、LED 显示器)等装配在一块印刷电路板上。
计算机基础
网络营销进阶
网页速度,如何提高网页速度,1. 控制网页大小 2. 代码瘦身(除去空白区域,除去注释,除去换行,把 css 和 js 代码改为外部文件或使用工具压缩 js 代码) 3. 尽量使用静态页面(没有后台数据库,不含程序和不可交互的网页)
计算机基础
网络营销教程
网络营销基础,百度快照的更新时间反应了搜索引擎对这个网站的抓取的频率。在一定程度上说明了网站的重要性。中国站长站( `http://whois.chinaz.com`) 可以查询域名的注册信息。
微信小程序
微信小程序上传照片
微信小程序上传照片功能教程,在微信小程序开发过冲中,上传图片是一个经常用到的功能。如果不使用一些公共的组件,想要在原生的微信开发者工具里面开发,需要我们单独的维护这样的功能。
微信小程序
微信小程序富文本编辑器内容展示
微信小程序富文本编辑器内容展示教程,在平时的信息展示中,我们需要将一篇文章或者博客在小程序里面展示。一般的操作是我们在电脑端对数据进行编辑。
微信小程序
微信小程序utils
微信小程序utils教程,稍微有一定编程基础的程序员都知道公共方法的重要性,它可以让我们的代码共用,减少代码的重复,使代码更加整洁。
微信小程序
微信小程序自定义组件
微信小程序自定义组件教程,自定义组件在微信小程序里面被使用的地方比较多的。如果在小程序的多个页面上面拥有相同的功能可以使用自定义模版方式,在各个页面里面引入。这样就可以使用一套代码开发,多处地方使用了。
微信小程序
微信小程序评论
微信小程序评论教程,在平时微信小程序的使用过程中,我们会遇到那种对某种观点发表评论的动作。或者对某种观点进行回复。我们可以使用 `input` 和 `button` 组件结合,来构造一个写回复的功能。
微信小程序
微信小程序搜索功能
微信小程序搜索功能教程,搜索在小程序中是比较常见的,要达到一个好的搜索功能,我们可以用 image 和 input 两个组件来制作查询功能。
微信小程序
微信小程序scroll-view
微信小程序scroll-view教程,`scroll-view` 是小程序里面的视图容器,它在官网文档 scroll-view在平时的开发过程中,我们会经常使用到该视图容器。
微信小程序
微信小程序TabBar
微信小程序TabBar教程,`Tab` 在小程序里面是一个常用的功能,它能够帮助用户快速的到某一个页面。在微信小程序里面,可以很方便的建立一个底部 `TabBar`。
微信小程序
微信小程序
微信小程序简介,微信小程序,小程序的一种,英文名 Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用 “触手可及” 的梦想。
Java工具类
Java拼音工具类
Java拼音工具类,在一些场景中,我们会遇到将中文汉字转换成拼音的操作,需要获取全部拼音,首字母等等。我们需要在 pom 文件里面引入下面 jar 包:
Java工具类
Java的Ip操作工具类
Java的Ip操作工具类教程,在 web 项目中,有的时候,我们需要获取相应的 ip 地址,然后对该 ip 地址做一些控制,比如 白名单啊,黑名单啊啥的,限制一部分 ip 做一些事情等等。
Java工具类
Java文件操作工具类
Java文件操作工具类,在平时编码过程中,对文件的操作时比较频繁的,下面我们总结了一些平时经常使用到的功能。可以将下面所有的方法都维护在一个类里面,在项目中当作公共类来使用。
Java工具类
Spring自定义验证器
Spring自定义验证器,在使用 Spring 在对 Controller 里面传过来的参数进行校验的时候,如果不想让某个 String 类型的字段为空,那么我们可以在对应的字段上面加 @NotBlank 注解。
Java工具类
Java日期操作工具类
Java日期操作工具类教程,在平时工作中,我们会经常遇到日期之间相互转换的问题。日期转换看起来简单,但是在实际编写过程中还是比较复杂的。
Java工具类
Java List转Map
Java List转Map教程,平时工作中,在很多场景下面会用到将 List 集合转换成 Map 对象的格式,提高效率。我们可以使用 Collectors.groupingBy 对指定的属性进行分组,转换成 Map 格式。
Java工具类
Java中PDF添加水印
Java中PDF添加水印,在 PDF 中添加水印需要依赖 `http://www.itextpdf.com/` 提供的 jar 包,我们新建 maven 项目
Java工具类
Java图片增加水印
Java图片增加水印教程,图片增加水印,可以使用 JDK 自带的原生方法来添加水印,如果是远程的图片,需要将远程图片下载到本地,然后对本地图片进行操作。
操作系统面试题
逻辑地址线性地址物理地址
逻辑地址线性地址物理地址,逻辑地址(Logical Address) ,是指由程序产生的与段相关的偏移地址部分。例如,你在进行 C 语言 指针编程中,可以读取指针变量本身值(& 操作)。
操作系统面试题
分段与分页机制
分段与分页机制,分段机制,什么是分段机制,分段机制就是把虚拟地址空间中的虚拟内存组织成一些长度可变的称为段的内存块单元。
操作系统面试题
局部性原理
局部性原理,什么是局部性原理,虚拟存储器的核心思路是根据程序运行时的局部性原理:一个程序运行时,在一小段时间内,只会用到程序和数据的很小一部分。
操作系统面试题
多级页表
多级页表,假设某计算机系统按字节寻址,支持 32 位逻辑地址,采用分页存储管理,页面大小为 4KB,页表项长度为 4B。4KB = 2<sup>12 </sup>B,因此页内地址要用 12 位表示,剩余 20 位表示页号。
操作系统面试题
操作系统页表
操作系统页表,什么是页表,页表是内存管理系统中的数据结构,用于向每个进程提供一致的虚拟地址空间,每个页表项保存的是虚拟地址到物理地址的映射以及一些管理标志。
操作系统面试题
操作系统快表
操作系统快表,什么是快表,快表(TLB - translation lookaside buffer),直译为旁路快表缓冲,也可以理解为页表缓冲,地址变换高速缓存。
操作系统面试题
中断与异常
中断与异常,在操作系统中引入核心态和用户态这两种工作状态后,就需要考虑这两种状态之间如何切换。操作系统内核工作在核心态,而用户程序工作在用户态。
操作系统面试题
软中断与硬中断
软中断与硬中断,中断的基本概念,中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件。
操作系统面试题
页面置换算法
页面置换算法,操作系统中的页面置换算法主要包括最佳置换算法(OPT,Optimal)、先进先出置换算法(FIFO)、最近最久未使用置换算法(LRU,Least Recently Used)。
操作系统面试题
内核态与用户态
内核态与用户态,概念,Linux 的设计哲学之一就是:对不同的操作赋予不同的执行等级,就是所谓特权的概念,即与系统相关的一些特别关键的操作必须由最高特权的程序来完成。
操作系统面试题
动态库与静态库区别
动态库与静态库区别,静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件;
操作系统面试题
Copy-on-write(写时拷贝)
Copy-on-write(写时拷贝),copy-on-write,写时拷贝,是计算机程序设计领域的一种优化策略,其核心思想是,当有多个调用者都需要请求相同资源时,一开始资源只会有一份。
操作系统面试题
系统调用
系统调用,计算机系统的各种硬件资源是有限的,在现代多任务操作系统上同时运行的多个进程都需要访问这些资源,为了更好的管理这些资源进程是不允许直接操作的。
操作系统面试题
进程调度算法
进程调度算法,处理机调度,定义,调度研究的问题是:面对有限的资源,如何处理任务执行的先后顺序。对于处理机调度来说,这个资源就是有限的处理机,而任务就是多个进程。
操作系统面试题
进程调度
进程调度,多道程序设计的目标是,无论何时都有进程运行,从而最大化 CPU 利用率。分时系统的目的是在进程之间快速切换 CPU,以便用户在程序运行时能与其交互。
操作系统面试题
线程的几种状态
线程的几种状态,线程也具有生命周期,主要包括 7 种状态,分别是出生状态、就绪状态、运行状态、等待状态、休眠状态、阻塞状态和死亡状态。
操作系统面试题
Linux进程状态
Linux进程状态,Linux进程状态教程,Linux 是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。
操作系统面试题
线程间同步方式
线程间同步方式,各个线程可以访问进程中的公共变量,资源,所以使用多线程的过程中需要注意的问题是如何防止两个或两个以上的线程同时访问同一个数据。
操作系统面试题
线程间通信方式
线程间通信方式,线程间通信方式主要包括消息队列、使用全局变量和使用事件。
操作系统面试题
进程间通信方式
进程间通信方式,概述,进程通信(Interprocess Communication,IPC)是一个进程与另一个进程间共享消息的一种通信方式。消息(message)是发送进程形成的一个消息块,将消息内容传送给接收进程。
操作系统面试题
进程线程协程详解
进程线程协程详解,系统调度,在未配置 OS 的系统中,程序的执行方式是顺序执行,即必须在一个程序执行完后,才允许另一个程序执行;
操作系统面试题
进程线程协程区别
进程线程协程区别,进程概念,进程是系统资源分配的最小单位, 系统由一个个进程(程序)组成 一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。
操作系统面试题
守护进程
守护进程,守护进程就是在后台运行,不与任何终端关联的进程。通常情况下守护进程在系统启动时就在运行,它们以 root 用户或者其他特殊用户(apache 和 postfix)运行。
操作系统面试题
僵尸进程
僵尸进程,如果我们了解过 Linux 进程状态及转换关系,我们应该知道进程这么多状态中有一种状态是僵死状态,就是进程终止后进入僵死状态(zombie)。
操作系统面试题
孤儿进程
孤儿进程,孤儿进程教程,如果父进程先退出,子进程还没退出那么子进程将被托孤给 init 进程,这时子进程的父进程就是 init 进程(1 号进程)。
操作系统面试题
操作系统面试题虚拟内存
虚拟内存,每个进程都有自己独立的 4G 内存空间,各个进程的内存空间具有类似的结构。
操作系统面试题
操作系统分类和五大功能
操作系统分类和五大功能,一般来说,操作系统可以分为五大管理功能部分:1. 设备管理:主要是负责内核与外围设备的数据交互,实质是对硬件设备的管理。
操作系统面试题
操作系统的概念
操作系统的概念,在信息化时代,软件被称为计算机系统的灵魂。而作为软件核心的操作系统,已经与现代计算机系统密不可分、融为一体。
RPC面试题
RPC原理架构
RPC原理架构,这张图非常重点,是 PRC 的基本原理,也就是说两台服务器 A,B,一个应用部署在 A 服务器上,想要调用 B 服务器上应用提供的函数/方法。
RPC面试题
RPC关键技术
RPC关键技术,RPC 使用了哪些关键技术?1. 动态代理,生成 Client Stub(客户端存根)和 Server Stub(服务端存根)的时候需要用到 Java 动态代理技术,可以使用 JDK 提供的原生的动态代理机制。
RPC面试题
RPC SOA与REST区别
RPC SOA与REST区别,REST,可以看着是 HTTP 协议 的一种直接应用,默认基于 JSON 作为传输格式,使用简单,学习成本低效率高,但是安全性较低。
RPC面试题
RPC架构
RPC架构,一个基本的 RPC 架构里面应该至少包含以下 4 个组件:1. 客户端(Client):服务调用方(服务消费者)
RPC面试题
Dubbo负载均衡策略
Dubbo负载均衡策略,Dubbo负载均衡策略有哪些1. Random,随机,按权重设置随机概率。在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀。
RPC面试题
主流RPC框架
主流RPC框架,dubbo是阿里巴巴公司开源的一个 Java 高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。
RPC面试题
RPC原理
RPC原理,实现高可用RPC框架需要考虑到的问题,1. 既然系统采用分布式架构,那一个服务势必会有多个实例,要解决如何获取实例的问题。
RPC面试题
RPC实现
RPC实现,RPC 要达到的目标:远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑。
RPC面试题
什么是RPC
什么是RPC,RPC (Remote Procedure Call)即远程过程调用,是分布式系统常见的一种通信方法。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数。
Redis面试题
Redis面试题
Redis面试题,redis简介,Redis 默认有 16 个数据库,使用select命令切换,库之间数据不共享。
MySQL面试题
MySQL面试题
MySQL面试题,SQL优化,SQL优化的几种方法,1. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
MQ面试题
MQ消息积压
MQ消息积压,场景,几千万条数据在 MQ 里积压了七八个小时,从下午 4 点多,积压到了晚上很晚,10 点多,11 点多。
MQ面试题
RabbitMQ消息发送过程
RabbitMQ消息发送过程,首先客户端必须连接到 RabbitMQ 服务器才能发布和消费消息,客户端和 rabbit server 之间会创建一个 tcp 连接。
MQ面试题
MQ消息丢失咋办
MQ消息丢失咋办,MQ 的数据的丢失问题,可能出现在生产者、MQ、消费者中,咱们从 RabbitMQ 和 Kafka 分别来分析一下吧。
MQ面试题
MQ消息顺序性
MQ保证消息顺序性,为什么出现顺序错乱,在生产中经常会有一些类似报表系统这样的系统,需要做 MySQL 的 binlog 同步。
MQ面试题
MQ消息幂等性
MQ消息幂等性,出现非幂等性的情况,生产者已把消息发送到 mq,在 mq 给生产者返回 ack 的时候网络中断,故生产者未收到确定信息,生产者认为消息未发送成功。
MQ面试题
RabbitMQ确保消息不丢失
RabbitMQ确保消息不丢失,在RabbitMQ 中,我们要确保消息不丢失,主要可以从以下几方面入手,即:交换机持久化、队列持久化、消息持久化、生产者开启发送确认。
MQ面试题
MQ的选择
MQ的选择,一般的业务系统要引入 MQ,最早大家都用 ActiveMQ,但是现在确实大家用的不多了,没经过大规模吞吐量场景的验证,社区也不是很活跃。
MQ面试题
常见MQ对比
常见MQ对比,常见MQ的对比,1. ActiveMQ:比较老,功能比较强,但是现在用的人很少,社区也不活跃。建议放弃。
MQ面试题
MQ优缺点
MQ优缺点,使用mq的好处1. 解耦与复用,系统 A 要发送一个消息到多个系统,如果此时每增加一个系统,系统 A 都需要通过修改源码来增加接口,此时耦合非常高。
MQ面试题
为什么使用MQ
为什么使用MQ,我认为使用 mq 主要是为了下面几个目的,实现分布式系统之间的解耦调用、实现异步调用和削峰(队列),解决高并发问题。
MongoDB面试题
MongoDB监控工具mongostat
MongoDB监控工具mongostat,mongostat 是 mongodb 自带的状态检测工具,在命令行下使用,会间隔固定时间获取 mongodb 的当前运行状态,并输出。
Linux面试题
零拷贝技术
零拷贝技术,磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等。
Linux面试题
inode节点
inode节点,操作系统的文件数据除了实际内容之外,通常含有非常多的属性,例如 Linux 操作系统的文件权限与文件属性。文件系统通常会将这两部分内容分别存放在 inode 和 block 中。
Linux面试题
select poll与epoll
select poll与epoll,在操作系统中,程序运行的空间分为内核空间和用户空间,用户空间所有对 io 操作的代码(如文件的读写、socket 的收发等)都会通过系统调用进入内核空间完成实际的操作。
Linux面试题
Linux网络IO模型
Linux网络IO模型,Linux 的五种 IO 模型,分别是:阻塞 IO、非阻塞 IO、多路复用 IO、信号驱动 IO 以及异步 IO。其中阻塞 IO、非阻塞 IO、多路复用 IO、信号驱动 IO 都属于同步 IO。
Linux面试题
Linux文件处理awk命令详解
Linux文件处理awk命令详解教程,Linux 中的 awk 是一个强大的文本分析工具,简单来说 awk 就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理。
HTTP协议面试题
HTTP协议之chunk编码(分块传输编码)
HTTP协议之chunk编码(分块传输编码),分块传输编码(Chunked transfer encoding)是超文本传输协议(HTTP)中的一种数据传输机制,允许 HTTP 由应用服务器发送给客户端应用。
HTTP协议面试题
HTTP优化
HTTP优化,HTTP 的相关优化主要包括持久连接 Keep-Alive、修改时间 Last-Modified 以及 If-Modified-Since、版本标记 ETag 以及 If-None-Match、缓存时间 Expires 以及 Cache-Control 和 gzip 压缩等。
HTTP协议面试题
HTTP与TCP/IP协议关系
HTTP与TCP/IP协议关系,TPC/IP 协议 是传输层协议,主要解决数据如何在网络中传输,而 HTTP 是应用层协议,主要解决如何包装数据。
HTTP协议面试题
完整的HTTP请求过程
完整的HTTP请求过程,当我们在浏览器栏输入一个网址,比如 `www.haicoder.net` 的时候,具体发生了什么呢?这个请求是怎么到达服务器及返回结果的呢?
HTTP协议面试题
HTTP1与HTTP2区别
HTTP1与HTTP2区别,什么是HTTP 2.0,HTTP/2(超文本传输协议第 2 版,最初命名为 HTTP 2.0),是 HTTP 协议 的的第二个主要版本,使用于万维网。HTTP/2 是 HTTP 协议自 1999 年 HTTP 1.1 发布后的首个更新。
HTTP协议面试题
HTTP1.0与HTTP1.1区别
HTTP1.0与HTTP1.1区别,可扩展性,可扩展性的一个重要原则:如果 HTTP 的某个实现接收到了自身未定义的头域,将自动忽略它。
HTTP协议面试题
HTTPS如何保证安全
HTTPS如何保证安全,什么是HTTPS,HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),是为了保证客户端与服务器之间数据传输的安全。 近两年,Google、Baidu、Facebook 等这样的互联网巨头。
HTTP协议面试题
Http中的Keep-Alive
Http中的Keep-Alive,HTTP 持久连接(HTTP persistent connection,也称作 HTTP keep-alive 或 HTTP connection reuse,翻译过来可以是保持连接或者连接复用)。
HTTP协议面试题
http-interview-http-resp-header
HTTP请求与响应首部,通用首部,通用首部字段(General Header Fields),也就是请求报文和响应报文两方都会使用的首部:
HTTP协议面试题
HTTP请求与响应报文
HTTP请求与响应报文,HTTP请求报文,HTTP 请求报文由四部分组成,分别是请求行、请求头、空行和请求体,其中空行也是组成部分之一,作用是进行分隔,必不可少。
HTTP协议面试题
HTTP PUT与POST区别
HTTP PUT与POST区别,HTTP 中的 PUT 与 POST 方法的区别在于,PUT 方法是幂等的:调用一次与连续调用多次是等价的(即没有副作用),而连续调用多次 POST 方法可能会有副作用。
HTTP协议面试题
HTTP GET与POST对比
HTTP GET与POST对比,HTTP 中的 GET 一般用于获取/查询资源信息,也就是从指定的资源请求数据。 而 POST 一般用于向指定的资源提交要被处理的数据,也就是更新资源信息。
HTTP协议面试题
HTTP请求方法
HTTP请求方法- HTTP 1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。HTTP 1.1 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT。
开发工具
shell调试
shell调试,Shell 脚本调试的语法为:sh [-nvx] scripts.sh
开发工具
Shell数组
Shell数组,数组的定义,Shell 中数组的定义有四种方式:方法1,array=( value1 values2 value3 ... )
开发工具
Shell函数
Shell函数,Shell 中函数的定义语法如下:function 函数名() { 指令... return n }
开发工具
Shell随机数
Shell随机数,Linux 系统产生随机数的五种方法: echo $RANDOM openssl rand -base64 8 date +%s%N head /dev/urandom|cksum cat /prpc/sys/kernel/random/uuid
开发工具
Shell for和while
Shell for和while,While循环,Shell 中 while 循环的语法如下: while do 指令... done
开发工具
Shell if
Shell if,Shell 中的 if 语句的使用语法如下: if[条件] then 指令 fi 或者: if[条件];then 指令 fi 分号相当于命令换行,上面两种语法等同。
开发工具
Shell test
Shell test,测试表达式,Shell 中的测试表达式使用的是 test。格式一,test 测试表达式
开发工具
Shell字符串
Shell字符串,Shell字符串操作,Shell 中字符串的常用操作如下:操作说明,${#string},返回 $string 的长度。
开发工具
Shell教程
Shell教程,UID,在 Shell 编程中,$UID 是一个全局变量用于表明当期的用户 ID,如果是 0 表明是 root 用户。
开发工具
Vim四种模式
Vim四种模式,vim 的四种模式,正常模式,命令模式,插入模式,可视模式。
开发工具
gdb使用
gdb使用,gdb 的使用是直接输入 gdb 命令即可。gdb命令大全,gdb list命令。
开发工具
AutoMake使用
AutoMake使用,Automake 主要是用于 Linux 或者 windows 平台下 makefile 文件的自动生成的工具。Automake 的使用步骤如下:
开发工具
Vim手册
Vim手册,Vim第一步,显示模式,命令 描述,set showmode 打开显示模式的开关
开发工具
Vim vimrc配置
Vim vimrc配置,Vim 的 vimrc 配置,我们直接将 vimrc 拷贝到用户目录并命名为 ~/.vimrc,vimrc 配置如下:```shell set nocompatible set autoread syntax enable syntax on
开发工具
Vim常用操作
Vim常用操作,Vim 的常用操作可以分为移动光标、搜索替换、删除文本、复制粘贴、文本插入、多文本编辑、文本选择、保存退出、切分窗口以及设置与其他操作。
开发工具
linux proxy squid
linux proxy squid,在 Linux 中,使用 squid 作为 proxy server,使不能上网的客户机通过 proxy 实现上网。
开发工具
Vim vundle配置
Vim插件Vundle,安装插件,Vim 的插件 Vundle 用于 vim 的代码提示,我们首先使用 git 下载 Vundle 插件,具体命令如下:
开发工具
Vim升级更新
Vim升级更新,我们在 Linux 上,升级更新 vim 到 vim8.0。首先,我们到如下地址下载 vim:http://www.vim.org/download.php
开发工具
Centos配置Vim自动提示
Centos配置Vim自动提示,升级VIM,在升级 VIM 之前,我们首先安装 vim 相关的依赖库,具体命令如下:
开发工具
GCC安装更新
GCC安装更新,GCC安装,安装 GCC 之前,首先我们需要下载,下载命令如下:wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.bz2下载完之后,我们使用如下命令进行解压:
开发工具
CMake安装
CMake安装,安装 CMake 之前,首先我们需要下载 CMake,下载地址如下:
开发工具
WebStorm快捷键
WebStorm快捷键,在开发过程中,我们使用快捷键可以大大加快开发的速度,下面我们就简单介绍 WebStorm 常用的快捷键。
开发工具
VSCode搭建Go语言开发环境
VSCode搭建Go语言开发环境,下载插件,首先,切换目录:cd %GOPATH%\src\github.com\golang
开发工具
goland快捷键
goland快捷键,Go 语言 编译器 Goland 的快捷键大体可以分为:文件相关快捷键、代码格式化相关快捷键、查找和定位快捷键和代码编辑快捷键。
开发工具
VSCode快捷键
VSCode快捷键教程,VSCode 快捷键可以分为窗口面板快捷键、基础编辑快捷键、导航快捷键、搜索和替换快捷键、多光标和选择快捷键、语言编辑快捷键、编辑器管理快捷键。
C++面试题
C++面试题TCP TIME_WAIT
TCP TIME_WAIT,TCP 中的 ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭。
C++面试题
C++ 14特性
C++ 14特性,C++ 14 中的新特性如下: 1. 返回类型推导。2. 在这次发布中,关键字 auto 的作用扩大了。C++ 语言本身仍然是类型安全的。
C++面试题
C++ bind
bind,C++ 中的 bind 函数的最根本的作用就是可以把一个参数较多的函数给封装成参数较少的函数,因此对于 find_if 函数的问题,我们可以自定义一个含俩个参数的函数。
C++面试题
select poll与epoll
select poll与epoll,select,poll,epoll 都是 IO 多路复用的机制。I/O 多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪)。
C++面试题
C++11特性
C++11特性,C++ 11 的新特性有哪些? 1. auto:auto 不能用来声明函数的返回值。2. Range-based for loops (基于范围的 for 循环)。3. nullptr
C++面试题
C++面试题进程与线程
进程与线程,定义,进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
C++面试题
设计模式的六大原则
设计模式的六大原则,开闭原则(Open Close Principle),开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。
C++面试题
设计模式
设计模式,软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性。
C++面试题
进程间锁
进程间锁,在 C++ 中,进程间的锁有哪几种类型?
C++面试题
C++智能指针
C++智能指针,智能指针,将基本类型指针封装为类对象指针(这个类肯定是个模板,以适应不同基本类型的需求),并在析构函数里编写 delete 语句删除指针指向的内存空间。
C++面试题
C++四大强制类型转换
C++四大强制类型转换,四大强制类型转换,为什么使用 C 语言 风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新的 C++ 类型的强制转换呢?
C++面试题
C++ mutable
C++ mutable,mutable的使用,mutalbe 的中文意思是“可变的,易变的”,跟 constant(即 C++ 中的 const)是反义词。在 C++ 中,mutable 也是为了突破 const 的限制而设置的。
C++面试题
C++ explicit
C++ explicit,explicit的使用,在 C++ 中,按默认规定,只用传一个参数的构造函数也定义了一个隐式转换。
C++面试题
C++ static使用
C++ static使用,在 C++ 中,static 的使用主要用于修饰静态全局变量、静态局部变量、静态函数,在面向对象中,static 可以用于修饰静态数据成员和静态成员函数。
C++面试题
C++ const使用
C++ const使用,const使用,C++ 中的 const 使用需要注意,const 对象必须初始化并且默认情况下,cosnt 对象只在文件内有效。const对象必须初始化,因为 const 对象一旦创建,就不能改变了。
C++面试题
赋值运算符
赋值运算符,在C++ 中,为什么要重写赋值运算符?为什么需要重写,系统已经提供了默认的拷贝构造函数和赋值运算符,但都是浅拷贝。
C++面试题
C++面试题赋值与初始化列表
赋值和初始化列表,在 C++ 中,赋值和初始化列表的区别有哪些?
C++面试题
C++类默认函数
C++类默认函数,创建一个 C++ 类时,默认会创建的函数有哪些?
C++面试题
虚析构
虚析构,C++ 中的虚析构有啥作用?为什么要虚析构,当要使用基类指针或引用调用子类时,最好将基类的析构函数声明为虚函数,否则可以存在内存泄露的问题。
C++面试题
构造函数虚函数
构造函数为什么不能为虚函数,在 C++ 中,虚函数的调用需要虚函数表指针,而该指针存放在对象的内容空间中;若构造函数声明为虚函数,那么由于对象还未创建。
操作系统
Linux buffer cache与swap
Linux缓存机制介绍,在 Linux 系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时。
操作系统
Linux系统负载教程
Linux系统负载教程,Linux 的系统负载,也就是 System Load 是指系统 CPU 繁忙程度的度量,即有多少进程在等待被 CPU 调度。
操作系统
Linux进程状态
Linux进程状态教程,Linux 是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。
C++面试题
C++二义性
C++二义性,名字间隔概念,一个名字的间隔就是某个数据的名字从继承层次中首次出现到达最后派生类时中间隔了多少相同的名字。
C++面试题
虚继承
虚继承,在 C++ 中,多继承时很容易产生命名冲突,即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字,命名冲突依然有可能发生,比如非常经典的菱形继承层次。
C++面试题
虚函数表
虚函数表,C++ 的编译器应该是保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证取到虚函数表的有最高的性能——如果有多层继承或是多重继承的情况下)。
C++面试题
C++纯虚函数
C++纯虚函数,定义,纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。
C++面试题
C++多态
C++多态,概念,多态性可以简单地概括为 “一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。
C++面试题
派生类访问基类
派生类访问基类,在 C++ 中,怎样使用派生类的对象访问基类中被派生类覆盖或隐藏了的函数或变量?主要有两种方式,即:使用作用域运算符和使用 using 语句。
C++面试题
C++面试题重载隐藏重写
重载隐藏重写(覆盖)在 C++ 中,重载、隐藏、重写(覆盖)的区别是什么?重载1. 同一个类中参数类型,参数个数或参数顺序不同但函数名和返回值相同的函数构成重载。
TCP IP协议面试题
TCP最大连接数
TCP最大连接数,tcp概述,服务器如何标识tcp连接,在 TCP 应用中,server 事先在某个固定端口监听,client 主动发起连接,经过三路握手后建立 TCP 连接。
TCP IP协议面试题
TCP backlog参数
TCP backlog参数,backlog 参数主要用于底层方法 int listen(int sockfd, int backlog), 在解释 backlog 参数之前,我们先了解下 tcp 在内核的请求过程,其实就是 tcp 的三次握手:
TCP IP协议面试题
TCP消息可靠性
TCP可靠性,TCP可靠性传输的工作原理1. 停止等待协议,2. 连续 ARQ 协议
TCP IP协议面试题
TCP MTU与MSS
TCP MTU与MSS,MTU,Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是 IP 层)最大一次传输数据的大小
TCP IP协议面试题
TCP KeepAlive
TCP KeepAlive,TCP Keepalive的起源,TCP 协议中有长连接和短连接之分。短连接环境下,数据交互完毕后,主动释放连接。
TCP IP协议面试题
TCP Nagle算法
TCP Nagle算法,TCP/IP 协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送 ACK 表示确认。
TCP IP协议面试题
TCP重传机制
TCP重传机制,TCP 实现可靠传输的方式之一,是通过序列号与确认应答。在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回一个确认应答消息,表示已收到消息。
TCP IP协议面试题
TCP滑动窗口与回退N针协议
TCP滑动窗口与回退N针协议,1. 发送端和接收端分别设定发送窗口和接收窗口。
TCP IP协议面试题
TCP粘包拆包即解决方案
TCP粘包拆包即解决方案,TCP 的粘包拆包问题是处于网络比较底层的问题,在数据链路层、网络层以及传输层都有可能发生。我们日常的网络应用开发大都在传输层进行。
TCP IP协议面试题
TCP滑动窗口
TCP滑动窗口,TCP的优势,从传输数据来讲,TCP/UDP 以及其他协议都可以完成数据的传输,从一端传输到另外一端,TCP比较出众的一点就是提供一个可靠的,流控的数据传输
TCP IP协议面试题
IP地址分类
IP地址分类,IP 地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是 IP Address 的缩写。IP 地址是 IP 协议提供的一种统一的地址格式。
TCP IP协议面试题
TCP状态转移
TCP状态转移,TCP 是一个面向连接的传输层协议,因此不论哪一方需要传输数据,都需要在双方之间建立一条传输连接。
TCP IP协议面试题
TCP拥塞控制
TCP拥塞控制,什么是拥塞,我们都知道计算机网络中的资源是有限的。某段时间内网络中对资源的需求超过了网络中的可用部分,而导致网络性能下降的情况就是拥塞。
TCP IP协议面试题
DNS域名解析过程
DNS基本概念,就是所谓的 “.”,其实我们的网址 `www.baidu.com` 在配置当中应该是 `www.baidu.com`.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。
TCP IP协议面试题
TCP TIME_WAIT和CLOSE_WAIT状态
TCP TIME_WAIT和CLOSE_WAIT状态,相信很多运维工程师遇到过这样一个情形:用户反馈网站访问巨慢,网络延迟等问题,然后就迫切地登录服务器
TCP IP协议面试题
什么是SYN洪水攻击
什么是SYN洪水攻击,SYN 洪水(半开连接攻击)是一种拒绝服务 (DDoS) 攻击,旨在耗尽可用服务器资源,致使服务器无法传输合法流量。通过重复发送初始连接请求 (SYN) 数据包
TCP IP协议面试题
TCP三次握手与四次挥手
TCP三次握手与四次挥手,TCP概述,TCP 把连接作为最基本的对象,每一条 TCP 连接都有两个端点,这种断点我们叫作套接字(socket),它的定义为端口号拼接到 IP 地址即构成了套接字。
TCP IP协议面试题
TCP IP协议TCP IP四层模型
TCP/IP四层模型,TCP/IP 四层模型包括网络接口层、网络层、传输层和应用层。数据链路层包括操作系统中的设备驱动程序、计算机中对应的网络接口卡。
TCP IP协议面试题
OSI七层模型
OSI七层模型,什么是OSI,OSI(Open System Interconnect),即开放式系统互联。 一般都叫 OSI 参考模型,是 ISO(国际标准化组织)组织在 1985 年研究的网络互连模型。
TCP IP协议面试题
网络分层模型
网络分层模型,网络分层模型主要有两大类,一种是偏学术性的:OSI 七层网络模型;一种是偏应用性的:TCP/IP 网络模型,其又分为 四层模型 和五层模型。
TCP IP协议面试题
TCP与UDP协议对比
TCP与UDP协议对比,TCP/UDP概述,UDP 是一个简单的面向数据报的传输层协议:进程的每个输出操作都正好产生一个 UDP 数据报,并组装成一份待发送的 IP 数据报。
TCP IP协议面试题
UDP协议特点
UDP协议特点,UDP 协议全称是用户数据报协议,在网络中它与 TCP 协议一样用于处理数据包,是一种无连接的协议。在 OSI 模型中,在第四层——传输层,处于 IP 协议的上一层。
TCP IP协议面试题
TCP协议的特点
TCP协议特点,什么是TCP协议,传输控制协议(TCP,TransmissionControlProtocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由 IETF 的 RFC793 定义。
TCP IP协议面试题
UDP报文格式
UDP报文格式,UDP 报文的具体格式为:源端口( 2 字节) + 目的端口( 2 字节) + 长度( 2 字节) + 检验和( 2 字节) + 数据。
微服务面试题
Istio
什么是Istio?官方对 Istio 的介绍浓缩成了一句话:翻译过来,就是 ”连接、安全加固、控制和观察服务的开放平台“。
微服务面试题
Service Mesh
Service Mesh,Service Mesh 又译作 “服务网格”,作为服务间通信的基础设施层。服务网格(Service Mesh)是处理服务间通信的基础设施层。
微服务面试题
微服务限流
微服务限流,在高并发访问下,系统所依赖的服务的稳定性对系统的影响非常大,依赖有很多不可控的因素,比如网络连接变慢,资源突然繁忙,暂时不可用,服务脱机等。
微服务面试题
服务熔断降级限流
服务熔断降级限流,当 Service A 调用 Service B,失败多次达到一定阀值,Service A 不会再去调 Service B,而会去执行本地的降级方法!对于这么一套机制:在 Spring cloud 中结合 Hystrix,将其称为熔断降级!
微服务面试题
Ribbon负载均衡
服务器端负载均衡,负载均衡是我们处理高并发、缓解网络压力和进行服务器扩容的重要手段之一,但是一般情况下我们所说的负载均衡通常都是指服务器端负载均衡。
微服务面试题
什么是DevOps
什么是DevOps,DevOps(Development 和 Operations 组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
微服务面试题
JWT(JSON Web Token)
JWT(JSON Web Token),JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。
微服务面试题
什么是CICD
传统的应用发布模式,如果你经历体验过传统的应用发布,你可能就会觉得 CICD 有足够吸引你的地方,反之亦然。
SpringCloud
SpringCloud Feign 时间问题
feign 调用,a 系统传参与 b 系统收参不一致。
微服务面试题
康威定律
康威定律,康威定律是马尔文·康威 1967 提出的:“设计系统的架构受制于产生这些设计的组织的沟通结构。” 通俗的来讲:产品必然是其(人员)组织沟通结构的缩影。
微服务面试题
微服务pact契约测试
微服务集成测试,迁移到微服务对测试我们的系统产生了新的挑战。理论上每个微服务都应该是隔离的并可以独立操作。但在实践中一个服务如果没有其他部分通常没什么用。
微服务面试题
双因素身份认证
双因素身份认证,如您所知,现代世界已经进入数字时代,与此同时,我们看到了网络犯罪和在线欺诈的增加。
微服务面试题
分布式CAP和BASE理论
分布式CAP和BASE理论,问题的提出,在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景。
微服务面试题
分布式事务
分布式事务,数据库事务,在说分布式事务之前,我们先从数据库事务说起。 数据库事务可能大家都很熟悉,在开发过程中也会经常使用到。
微服务面试题
接口幂等性
接口幂等性,什么是幂等性,幂等(Idempotent)是一个数学与计算机学的概念,常见于抽象代数中。
微服务面试题
分布式与微服务区别
分布式与微服务区别,概念,集群是个物理形态,分布式是个工作方式。1. 分布式:一个业务分拆多个子业务,部署在不同的服务器上。 2. 集群:同一个业务,部署在多个服务器上。
微服务面试题
使用微服务面临的挑战
使用微服务面临的挑战,使用微服务面临的挑战主要包括:固有的复杂性、分区的数据库架构和波及多个服务。
微服务面试题
微服务间通信
微服务间通信,许多架构师已经将微服务之间的通信划分为同步和异步两种模式。让我们一个一个来介绍。
Git
Git推送免密码
Git推送免密码,在使用Git 中,默认使用 push 时,是需要密码的,我们可以按照如下设置,使 git 推送免密码:
Git
Git常用操作
Git常用操作,Git 常用操作包括 git 帮助相关命令、git config 命令、git 起别名、git 重命名、git ignore、git 分支、git 历史以及撤销修改等。
Git
Git历史记录查询
Git历史记录查询1. 查询提交记录:git log2. 查看提交记录并显示文件改变:
Git
Git在线学习网站
Git在线学习网站,Try Git,地址https://try.github.io/levels/1/challenges/1
Git
git的钩子脚本
Git钩子脚本,Git 可以定制一些钩子,这些钩子可以在特定的情况下被执行,分为 Client 端的钩子和 Server 端的钩子。Client 端钩子被 operation 触发,比如 commit,merge 等,Server 端钩子被网络动作触发,比如 pushed commits。
Git
git checkout revert与reset
git checkout revert与reset,git checkout,git checkout 使用于撤销未提交的修改,命令如下:$ git checkout file-name
Git
Git自动补齐
Git自动补齐,如果我们在使用 git 的过程中,git 不能够自动补齐,我们可以按照如下配置,设置自动补齐:1. 克隆仓库: git clone https://github.com/git/git.git
Git
Git上传代码到Github
Git上传代码到Github,我们新建了一个 Git 工程,需要将其上传到 github,按照如下操作步骤:1. 创建工作空间: mkdir workspace,cd workspace
Git
Git远程协作
Git远程协作,Github,github 是一个代码托管的服务提供商,也是一个巨大的开源社区。他可以为个人或者企业提供代码托管,也可以在上面找到很多的开源项目的代码。
Git
SSH搭建Git服务器
SSH搭建Git服务器,我们可以使用 SSH 搭建 Git 服务器,具体操作如下: 1. 服务器和客户端分别安装git 2. 服务器上安装 ssh 服务 3. 在客户机上安装 ssh 客户端
Git
Git重写提交记录
Git重写提交记录,在 Git 中,我们要重写或者修改提交的历史记录,可以使用 amend 命令,如下: git commit --amend touch "aaaa" >> master.txt git add master.txt git commit -m "confit rebase" git rebase master
Git
Git回退修改
Git回退修改,在 git 中,回退修改,可以使用 git reset 命令、git checkout 命令以及 git revert 命令。
Git
Git log
Git log,在 Git 中,我们要查看提交的日志,可以使用 git log 命令。
Git
Git分支使用
Git分支使用,我们首先,使用如下命令常见一个仓库:git init git_checkout_merge
Git
Git仓库
Git仓库,Git仓库,在 Git 中,初始化一个仓库的命令如下:git init
Git
Git四种对象
Git四种对象,Git 使用 40 个 16 进制字符的 SHA-1 Hash 来唯一标识对象,Git 中有四种对象,分别为 blob、tree、commit 和 tag。
Git
Git config
Git config,Git config详解,Git 配置有三个级别,按照优先级为:本地配置、全局配置和系统配置。本地配置的命令为:git config --local
Git
Git帮助
Git帮助,Git 帮助相关的命令有三个,即 --help,help 和 man 命令,具体如下:git config --help,git help config,man git-sonfig。
Git
Git回滚单个文件
Git回滚文件,git回滚单个文件到指定版本,在使用 git 的过程中,我们要回滚某个文件到指定版本,可以按照如下操作。首先,查看提交记录:
Git
Git rebase使用
Git rebase使用,git rebase 用于把一个分支的修改合并到当前分支。
Git
Git fetch使用
git fetch使用,一旦远程主机的版本库有了更新(Git 术语叫做 commit),需要将这些更新取回本地,这时就要用到 git fetch 命令。
Git
Git push使用
Git push使用,Git Push语法,git push <远程主机名> <本地分支名>:<远程分支名>
Git
Git pull使用
Git pull使用,git pull 命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。git pull 命令的完整格式:git pull <远程主机名> <远程分支名>:<本地分支名>
Git
Git中的origin和master
Git中的origin和master,首先要明确一点,对 Git 的操作是围绕 3 个大的步骤来展开的 : 1. 从 git 拉取数据(git clone) 2. 改动代码 3. 将改动传回 git(git push)
Git
Git配置别名
Git配置别名,在 Git 中,配置别名可以更方便我们的操作,常用的别名操作如下:$ git config --global alias.st status $ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
Git
Git显示颜色
Git显示颜色,如果我们要让 Git 显示颜色,我们可以使用 git config 命令,加上 color 参数即可:$ git config --global color.ui true
Git
Git忽略文件
Git忽略文件,在 Git 中,要忽略特殊文件需要进行如下操作:1. 在 Git 工作区的根目录下创建一个特殊的 .gitignore 文件,然后把要忽略的文件名填进去,Git 就会自动忽略这些文件。
Git
Git标签管理
Git标签管理,Git 有 commit,为什么还要引入 tag?Git 的每次提交的 cimmit id 是一串很长的乱七八糟的数字和字母组合,根本不好找。
Git
Git分支管理
Git分支管理,其他版本控制系统如 SVN 等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢,简直让人无法忍受,结果分支功能成了摆设,大家都不去用。
Git
Git工具
服务器上的Git, Git支持的协议,本地传输,SSH 协议,Git 协议,HTTP 协议
TCP IP协议面试题
TCP数据包格式
源端口和目的端口字段,TCP 源端口(Source Port):源计算机上的应用程序的端口号,占 16 位。TCP 目的端口(Destination Port):目标计算机的应用程序端口号,占 16 位。
TCP IP协议面试题
IP数据包格式
IP数据报,在 TCP/IP 协议中,使用 IP 协议传输数据的包被称为 IP 数据包,每个数据包都包含 IP 协议规定的内容。IP 协议规定的这些内容被称为 IP 数据报文(IP Datagram)或者 IP 数据报。
Git
Git分支
Git分支,Git分支详解,几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
Git
一文搞定Git
一文搞定Git,分布式版本控制系统,分布式版本控制系统 Git 客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。
Git
Git远程仓库
Git远程仓库,添加远程仓库,把当前工作区添加到远程 git 服务器: git remote add origin git@github.com:haicoder/learngit.git
Git
git-rm
Git删除文件,在 Git 中,删除也是一个修改操作。一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用 rm 命令删了:rm test.txt
Git
Git撤销修改
Git撤销修改,为什么 Git 比其他版本控制系统设计得优秀,因为 Git 跟踪并管理的是修改,而非文件。git 撤销修改分为丢弃工作区的修改和丢弃暂存区修改。
Git
Git工作区和暂存区
Git工作区和暂存区,工作区(Working Directory) 就是你在电脑里能看到的目录。而版本库(Repository),工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
Git
Git回退上一个版本
Git回退上一个版本,首先,Git 必须知道当前版本是哪个版本,在 Git 中,用 HEAD 表示当前版本,也就是最新的提交。
Git
Git版本库创建
Git版本库的创建,版本库又名仓库,英文名 repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除。
Git
Git配置用户名密码
Git配置用户名密码,因为 Git 是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和 Email 地址。
Git
Git与其他版本控制比较
git与其他版本管理工具区别,CVS 及 SVN 都是集中式的版本控制系统,而 Git 是分布式版本控制系统。
微服务面试题
微服务最佳实践
设计微服务的最佳实践,微服务极大的改变了服务端引擎的架构方式。微服务不是一个单一的巨型的用来托管应用程序所有业务逻辑的代码库,而是反映了分布式系统模型。
微服务面试题
SOA架构与微服务架构区别
什么是SOA,SOA(Service Oriented Architecture)面向服务架构,它可以通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。
微服务面试题
微服务优缺点
微服务优缺点,微服务是用一组小服务构建的一个应用,服务运行在不同的进程中,服务之间通过轻量的通讯机制进行交互,并且服务可以通过自动化部署方式独立部署。
微服务面试题
微服务设计原则
微服务设计原则,微服务架构演进过程,在生活中时刻感受互联网好处的同时,在工作中可能感受的却是来自自互联网的一些压力,那就是我们传统企业的 IT 建设也是迫切需要转型。
微服务面试题
微服务特点
微服务特点,简单地说,微服务架构是一种以一些微服务来替代开发单个的大而全的应用的方法,每一个小服务都运行在自己的进程里,并以轻量级的机制。
架构
FastCGI
什么是FastCGI,FastCGI 是语言无关的、可伸缩架构的 CGI 开放扩展,其主要行为是将 CGI 解释器进程保持在内存中并因此获得较高的性能。
架构
CGI
什么是CGI,CGI 是通用网关接口(Common Gateway Interface)的缩写。它主要用于服务器端动态输出客户端的请求(如 HTML 页面/二进制文件),也就是说客户端请求参数不同。
架构
CC攻击
什么是CC攻击,CC(ChallengeCollapsar,挑战黑洞)攻击是 DDoS 攻击的一种类型,使用代理服务器向受害服务器发送大量貌似合法的请求。
架构
DDoS攻击
DDoS攻击教程,DDoS 攻击,全称是 Distributed Denial of Service,翻译成中文就是分布式拒绝服务。一般来说是指攻击者利用 “肉鸡” 对目标网站在较短的时间内发起大量请求。
架构
正向代理与反向代理
什么是代理,代理其实就是一个中介,A 和 B 本来可以直连,中间插入一个 C,C 就是中介。刚开始的时候,代理多数是帮助内网 client 访问外网 server 用的。
架构
什么是防盗链
什么是盗链,盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。
架构
CSRF攻击
什么是CSRF攻击,CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。
架构
XSS攻击
什么是XSS攻击,Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行
架构
什么是0Day漏洞
什么是0Day漏洞,0day 漏洞是指负责应用程序的程序员或供应商所未知的软件缺陷。因为该漏洞未知,所以没有可用的补丁程序。
架构
多线程与多进程
进程详解,定义,进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
架构
并发与并行
并行,并行就是指同一时刻有两个或两个以上的 “工作单位” 在同时执行,从硬件的角度上来看就是同一时刻有两条或两条以上的指令处于执行阶段。
架构
进程线程与协程
进程线程与协程区别,进程详解,定义,进程的出现是为了更好的利用 CPU 资源使到并发成为可能。
架构
雪花算法
全局ID生成教程,我们要生成全局唯一 ID,比较通用的算法有雪花算法、自增 ID 方案和 GUID 方案。
架构
IO密集型与CPU密集型
计算机结构回顾,首先回顾下计算机结构知识,如下图,运算器与控制器又被称为中央处理器,即 CPU(Center Process Unit)。存储器又可分为内存与外存。
MongoDB面试题
MongoDB慢查询日志
MongoDB慢查询日志,类似于 MySQL 的 slow log, mongodb 可以监控所有慢的以及不慢的查询。这个工具就是 Profiling,该工具在运行的实例上收集有关 MongoDB 的写操作。
MongoDB面试题
MongoDB查询与索引优化
MongoDB查询与索引优化,MongoDB 是高性能数据,但是在使用的过程中,大家偶尔还会碰到一些性能问题。MongoDB 和其它关系型数据库相比,例如 SQL Server 、MySQL、 Oracle 相比来说,相对较新。
MongoDB面试题
MongoDB查询分析explain
MongoDB查询分析explain,explain 是 MongoDB 的一个重要的查询诊断工具,这个函数能够提供大量的查询相关的信息,该函数会返回查询计划、执行状态、服务器信息。
MongoDB面试题
MongoDB索引
MongoDB索引,什么是索引,索引最常用的比喻就是书籍的目录,查询索引就像查询一本书的目录。本质上目录是将书中一小部分内容信息(比如题目)和内容的位置信息(页码)共同构成。
MongoDB面试题
MongoDB oplog
什么是MongoDB oplog,MongoDB 的 Replication 是通过一个日志来存储写操作的,这个日志就叫做 oplog。在默认情况下,oplog 分配的是 5% 的空闲磁盘空间。
Linux面试题
Linux文件处理sed命令详解
Linux文件处理sed命令详解教程,Linux 中的 sed 是一种流编编器,用来对文本进行过滤与替换操作,同时,sed 命令能够完美的配合正则表达式使用。
Linux面试题
Linux buffer cache与swap
Linux缓存机制介绍,在 Linux 系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件
Linux面试题
Linux系统负载
Linux系统负载教程,Linux 的系统负载,也就是 System Load 是指系统 CPU 繁忙程度的度量,即有多少进程在等待被 CPU 调度。
Linux面试题
Linux进程状态
Linux进程状态教程,Linux 是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。
Linux面试题
Linux启动过程
Linux启动过程详解,第一步:开机自检,加载 BIOS,第二步:读取 MBR,第三步:Boot Loader grub 引导菜单,第四步:加载 kernel 内核,第五步:init 进程依据 inittab 文件夹来设定运行级别
MySQL面试题
MySQL查询缓存
MySQL查询缓存,MySQL 缓存机制就是缓存 sql 文本及缓存结果,用 KV 形式保存再服务器内存中,如果运行相同的 sql,服务器直接从缓存中去获取结果,不需要在再去解析、优化、执行 sql。
MySQL面试题
MySQL视图
MySQL视图,什么是视图,视图是一个虚拟表,是从数据库中一个或多个表中导出来的表,其内容由查询定义。同真实表一样,视图包含一系列带有名称的列和行数据。
MySQL面试题
MySQL存储过程
MySQL存储过程,什么是存储过程,存储过程(Stored Procedure)是一组为了完成特定功能的 SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译。
MySQL面试题
MySQL触发器
MySQL触发器,什么是触发器,触发器(trigger)是 MySQL 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程。
MySQL面试题
MySQL乐观锁与悲观锁
MySQL悲观锁与乐观锁,什么是悲观锁,悲观锁的特点是先获取锁,再进行业务操作,即 “悲观” 的认为获取锁是非常有可能失败的,因此要先确保获取锁成功再进行业务操作。
Nginx面试题
漏桶算法和令牌桶算法
漏桶算法和令牌桶算法,背景,每一个对外提供的 API 接口都是需要做流量控制的,不然会导致系统直接崩溃。
Nginx面试题
C10K问题
C10K问题,什么是C10K问题,所谓 c10k 问题,指的是服务器如何支持 10k 个并发连接,也就是 concurrent 10000 connection(这也是 c10k 这个名字的由来)。
Nginx面试题
Nginx限制IP访问频率
Nginx限制IP访问频率,限制所有单个ip的访问频率,http中的配置。
Nginx面试题
Nginx限制IP访问
Nginx限制IP访问,有时候我们需要针对屏蔽某些恶意的 IP 访问我们的网站,或者限制仅仅某些白名单 IP 才能访问我们的网站。这时候我们就可以在 Nginx 中通过简单的配置来达到目的。
Nginx面试题
Nginx限制浏览器和爬虫
Nginx限制浏览器和爬虫,Nginx限制爬虫,修改 nginx.conf,禁止网络爬虫的 ua,返回 403,具体配置如下。
Nginx面试题
Nginx rewrite全局变量
Nginx rewrite全局变量,Nginx rewrite 常用的全局变量如下:
Nginx面试题
Nginx负载均衡
Nginx负载均衡,什么是Nginx负载均衡,在服务器集群中,Nginx 起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。
Nginx面试题
Nginx 502错误原因和解决方法
Nginx 502错误原因和解决方法,不管你是做运维还是做开发,哪怕你是游客,时不时会遇到 502 Bad Gateway 或 504 Gateway Time-out。出现这页面,把服务重启下,再实在不行重启下服务器。
Nginx面试题
Nginx解决跨域问题
Nginx解决跨域问题,什么是跨域,跨域是前端开发中经常会遇到的问题,前端调用后台服务时,通常会遇到 No 'Access-Control-Allow-Origin' header is present on the requested resource 的错误,这是因为浏览器的同源策略拒绝了我们的请求。
Nginx面试题
Nginx动态添加模块
Nginx动态添加模块,很多时候,我们根据当时的项目情况和业务需求安装完 Nginx 后,后续随着业务的发展,往往会给安装好的 Nginx 添加其他的功能模块。
Nginx面试题
Nginx开启gzip压缩
Nginx gzip配,ginx gzip配置教程,ginx 开启 Gzip 压缩功能, 可以使网站的 css、js 、xml、html 文件在传输时进行压缩,提高访问速度, 进而优化 Nginx 性能。
Nginx面试题
Nginx动静分离
Nginx动静分离,静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。
Nginx面试题
Nginx是如何实现高并发的
Nginx是如何实现高并发的,如果一个 server 采用一个进程(或者线程)负责一个 request 的方式,那么进程数就是并发数。那么显而易见的,就是会有很多进程在等待中。
Nginx面试题
Nginx处理HTTP请求过程
Nginx处理HTTP请求过程,Nginx 处理 HTTP 请求的过程大概可以分为 11 个阶段,如下:1. Read Request Headers:解析请求头。2. Identify Configuration Block:识别由哪一个 location 进行处理,匹配 URL。
Nginx面试题
Nginx惊群
Nginx惊群,惊群效应是什么,惊群效应(thundering herd)是指多进程(多线程)在同时阻塞等待同一个事件的时候(休眠状态),如果等待的这个事件发生,那么他就会唤醒等待的所有进程
Nginx面试题
Nginx多进程
Nginx多进程,Nginx 是通过基于异步及非阻塞的事件驱动模型和多进程机制实现高性能的。
Nginx面试题
Nginx IO模型
Nginx IO模型,Nginx 支持多种并发模型,并发模型的具体实现根据系统平台而有所不同。在支持多种并发模型的平台上,Nginx 自动选择最高效的模型。
Nginx面试题
Nginx master与worker进程
Nginx master与worker进程,工作模式,1. Nginx 启动后,会产生一个 master 主进程,主进程执行一系列的工作后会产生一个或者多个工作进程 worker。
Nginx面试题
Nginx有哪些特点
Nginx有哪些特点,Nginx的特点,热部署,我个人觉得这个很不错。在 master 管理进程与 worker 工作进程的分离设计,使得 Nginx 具有热部署的功能,那么在 7×24 小时不间断服务的前提下
Nginx面试题
反向代理好处
Nginx反向代理的好处,1. 保护了真实的 web 服务器,web 服务器对外不可见,外网只能看到反向代理服务器,而反向代理服务器上并没有真实数据,因此,保证了 web 服务器的资源安全。
Nginx面试题
正向代理与反向代理
正向代理与反向代理,什么是代理,代理其实就是一个中介,A 和 B 本来可以直连,中间插入一个 C,C 就是中介。刚开始的时候,代理多数是帮助内网 client 访问外网 server 用的。
Nginx面试题
Nginx使用场景
Nginx使用场景,Nginx常用使用场景,Nginx 的常用使用场景包括 HTTP 服务器、静态服务器、反向代理、负载均衡、动静分离、统一访问入口、解决浏览器跨域问题和行为分析等。
Nginx面试题
Nginx与Apache选择
Nginx与Apache选择,Apache,apache 的 rewrite 比 nginx 强大,在 rewrite 频繁的情况下,用 apache,apache 发展到现在,模块超多,基本想到的都可以找到
Nginx面试题
Nginx与Apache对比
Nginx与Apache对比,Nginx与Apache区别,优点,1. 轻量级,采用 C 语言 进行编写,同样的 web 服务,会占用更少的内存及资源。
Nginx面试题
Nginx优缺点
Nginx优缺点,Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务,也是一个 IMAP/POP3/SMTP 服务。
MySQL面试题
MySQL Select for update
MySQL Select for update,for update 是一种行级锁,又叫排它锁。一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行。
MySQL面试题
MySQL innodb与myisam引擎区别
MySQL InnoDB与MyISAM引擎区别,MyISAM引擎,MyISAM 是 MySQL 的默认数据库引擎(5.5 版之前),由早期的 ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。
MySQL面试题
MySQL各引擎之间区别
MySQL各引擎之间区别,InnoDB,InnoDB 是 MySQL 默认的事务型引擎,也是最重要、最广泛的存储引擎。它的设计是用来处理大量短期事务,短期事务大部分是正常提交的,很少回滚。
MySQL面试题
innodb引擎四大特性
innodb引擎四大特性,innodb引擎四大特性,innodb 的引擎四大特性为:插入缓冲,二次写,自适应哈希和预读。
MySQL面试题
Mysql慢查询日志
Mysql慢查询日志,什么是MySQL慢查询日志,MySQL的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中响应时间超过阀值的语句,具体指运行时间超过 long_query_time 值的 SQL
MySQL面试题
Mysql死锁解决
Mysql死锁解决,什么是死锁,所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
MySQL面试题
平衡二叉树B树和B+树
平衡二叉树B树和B+树,平衡二叉树,概念,平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构。
MySQL面试题
Mysql聚簇索引
MySQL聚簇索引,什么是聚簇索引与非聚簇索引,聚簇索引是将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据。非聚簇索引是指将数据与索引分开存储。
MySQL面试题
MySQL索引优化与SQL优化
MySQL索引优化与SQL优化,概述,日常在 CURD 的过程中,都避免不了跟数据库打交道,大多数业务都离不开数据库表的设计和 SQL 的编写,那如何让你编写的SQL语句性能更优呢?
MySQL面试题
Mysql explain使用
MySQL explain使用,概述,MySQL 中的 explain 命令显示了 mysql 如何使用索引来处理 select 语句以及连接表。explain 显示的信息可以帮助选择更好的索引和写出更优化的查询语句。
MySQL面试题
MySQL索引原理
MySQL索引原理,概述,索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。索引最形象的比喻就是图书的目录了。
MySQL面试题
MySQL索引
MySQL索引,概述,用来加快查询的技术很多,其中最重要的是索引。通常索引能够快速提高查询速度。
MySQL面试题
MySQL锁
MySQL锁,锁是计算机协调多个进程或纯线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。
MySQL面试题
MySQL binlog
MySQL binlog,什么是MySQL binlog,MySQL 的 binlog 是记录所有数据库表结构变更(例如 CREATE、ALTER TABLE)以及表数据修改(INSERT、UPDATE、DELETE)的二进制日志。
MySQL面试题
MySQL MVVC
MySQL MVVC,什么是MySQL MVCC,MVCC 就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。
MySQL面试题
MySQL事务隔离级别
MySQL事务隔离级别,MySQL 的事务隔离级别可以分为四个等级,即:READ UNCOMMITTED(读未提交数据)、READ COMMITTED(读已提交数据)、REPEATABLE READ(可重复读)和 SERIALIZABLE(串行化)。
MySQL面试题
MySQL事务ACID
MySQL事务ACID事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个 sql 语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL 支持事务。
MySQL面试题
MySQL权限控制
MySQL权限控制,对 MySQL 的权限的控制可以大致分为三个层面,即连接层面、数据库层面以及数据表层面,具体解释如下:1. 连接层面,即连接上允不允许(是否能登录到 MySQL 服务器)。
MySQL面试题
数据库三大范式
数据库三大范式,设计关系数据库时,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
MySQL面试题
Mysql内连接外连接
Mysql内连接与外连接,Mysql 查询可以分为内连接与外连接,同时,外连接也可以分为左外连接、右外连接与全外连接。
Redis面试题
一致性Hash
一致性Hash,什么是一致性Hash,一致性哈希算法在 1997 年由麻省理工学院的 Karger 等人在解决分布式 Cache 中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和 CARP 十分类似。
Redis面试题
Hash算法
Hash算法,什么是Hash,Hash 也称散列、哈希,对应的英文都是 Hash。基本原理就是把任意长度的输入,通过 Hash 算法变成固定长度的输出。
Redis面试题
Redis压缩列表
Redis压缩列表,Redis 中的压缩列表不是基础数据结构,而是 Redis 自己设计的一种数据存储结构。它有点儿类似数组,通过一片连续的内存空间,来存储数据。
Redis面试题
Redis整数集合
Redis整数集合,Redis 中的整数集合(intset)并不是一个基础的数据结构,而是 Redis 自己设计的一种存储结构,是集合键的底层实现之一。
Redis面试题
Redis跳跃表
什么是跳跃表,Redis 中的跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。
Redis面试题
Redis底层数据结构
Redis底层数据结构,Redis 的五大数据类型也称五大数据对象,即分别为 string、 list、 hash、 set 和 zset,但 Redis 并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统 redisObject。
Redis面试题
Redis分布式锁
Redis分布式锁,分布式锁相对应的是线程锁、进程锁。线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。
Redis面试题
Redis线程模型
Redis线程模型,Redis事件,不是讲线程模型吗?和事件有什么关系?实际上 Redis 是一个事件驱动程序,大白话理解一下:就是通过事件的方式来运行 Redis 的。
Redis面试题
Redis内存碎片
Redis内存碎片,查看Redis内存碎片率,在 Redis 使用过程中,经常会产生内存碎片,如果我们需要查看 Redis 的内存碎片率,我们可以使用 INFO 命令,具体命令如下:
Redis面试题
查看Redis内存使用
查看Redis内存使用,查看Redis内存使用,在 Redis 使用过程中,如果我们需要查看 Redis 的内存使用情况,我们可以使用 INFO 命令,具体命令如下:
Redis面试题
Redis集群Twemproxy与Codis
Redis常见集群技术,长期以来,Redis 本身仅支持单实例,内存一般最多 10~20GB。这无法支撑大型线上业务系统的需求。而且也造成资源的利用率过低——毕竟现在服务器内存动辄 100~200GB。
Redis面试题
Redis集群cluster
什么是Redis cluster,Redis cluster 是 Redis 官方提供的分布式解决方案,在 3.0 版本后推出的,有效地解决了 Redis 分布式的需求,当一个 Redis 节点挂了可以快速的切换到另一个节点。
Redis面试题
Redis哨兵模式
什么是Redis哨兵模式,Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息。
Redis面试题
Redis主从模式
什么是Redis主从模式,一个 Redis 实例作为主机,其余的作为备份机。主机和备份机的数据完全一致,主机支持数据的写入和读取等各项操作,而从机则只支持与主机数据的同步和读取。
Redis面试题
Redis变慢定位
Redis变慢定位,Redis 作为内存数据库,拥有非常高的性能,但我们在使用 Redis 时,经常时不时会出现访问延迟很大的情况,如果你不知道 Redis 的内部实现原理,在排查问题时就会一头雾水。
Redis面试题
Redis为什么这么快
Redis有多快,Redis 采用的是基于内存的采用的是单进程单线程模型的 KV 数据库,由 C 语言 编写,官方提供的数据是可以达到 100000+ 的 QPS(每秒内查询次数)。
Redis面试题
Redis HyperLoglog
什么是HyperLoglog,HyperLoglog 是 Redis 新支持的两种类型中的另外一种(还有一种是位图类型 Bitmaps),主要适用场景是海量数据的计算。特点是速度快,占用空间小。
Redis面试题
Redis面试题Redis bitmap
Redis bitmap,什么是Redis bitmap,Redis 的 bitmap 是通过一个 bit 位来表示某个元素对应的值或者状态,其中的 key 就是对应元素本身。
Redis面试题
Redis事务
Redis事务,什么是Redis事务,Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。
Redis面试题
Redis脚本
Redis脚本,Redis为什么引入Lua,Redis 是高性能的 key-value 内存数据库,在部分场景下,是对关系数据库的良好补充。某些特定领域,需要扩充若干指令原子性执行时,仅使用原生命令便无法完成。
Redis面试题
Redis pipeline
Redis pipeline,什么是Redis pipeline,Redis 中的 Pipeline 指的是管道技术,指的是客户端允许将多个请求依次发给服务器,过程中而不需要等待请求的回复,在最后再一并读取结果即可。
Redis面试题
布隆过滤器
布隆过滤器,布隆过滤器(Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。
Redis面试题
缓存穿透击穿与雪崩
缓存穿透击穿与雪崩,缓存穿透,概念,缓存和数据库中都没有的数据,可用户还是源源不断的发起请求,导致每次请求都会到数据库,从而压垮数据库。
Redis面试题
Redis数据持久化RDB与AOF
Redis数据持久化RDB与AOF,Redis 作为一个内存数据库,数据是以内存为载体存储的,那么一旦 Redis 服务器进程退出,服务器中的数据也会消失。为了解决这个问题,Redis 提供了持久化机制。
Redis面试题
Redis内存淘汰机制
Redis内存淘汰机制,描述,Redis 的用途非常广泛。作为一个高性能的内存数据库,它经常被用于缓存的业务场景。所谓缓存,即在第一次获取到数据的时候,把它暂存在内存中。
Redis面试题
Redis 16个数据库
Redis 16个数据库,在实际项目中 Redis 常被应用于做缓存,分布式锁、消息队列等。但是在搭建配置好 Redis 服务器后很多朋友应该会发现和有这样的疑问,为什么 Redis 默认建立了 16 个数据库。
Redis面试题
Redis过期策略及实现原理
Redis过期策略及实现原理,描述,我们在使用 Redis 时,一般会设置一个过期时间,当然也有不设置过期时间的,也就是永久不过期。当我们设置了过期时间,Redis 是如何判断是否过期,以及根据什么策略来进行删除的。
Java面试题
kafka消失丢失场景
Java面试题,题目,kafka 在什么样的场景下消息会丢失?
Java面试题
mysql索引失效场景
Java面试题,题目,Mysql Innerdb 索引失效场景。
Java面试题
分布式事务
Java面试题,题目,对分布式事务有了解吗?讲讲分布式事务的实现方式。
Java面试题
spring mvc 父子容器
Java面试题,题目,spring mvc 中父子容器了解吗?讲一讲父子容器。
Java面试题
三次握手和四次挥手
Java面试题,题目,对 tcp 了解吗?讲讲它的三次握手和四次挥手?为什么需要三次握手,为什么需要四次挥手。
Java面试题
mysql binlog
Java面试题,题目,Mysql binlog 有哪些格式,这些格式有哪些特点?
Java面试题
redis 缓存雪崩穿透
Java面试题,题目,对缓存雪崩,穿透了解吗?讲讲其出现的场景和解决方案。
Java面试题
mybatis插件运行原理
Java面试题,题目,简述 Mybatis 的插件运行原理,以及如何编写一个插件。
Java面试题
java面试题mybatis缓存
Java面试题,题目,讲一讲 Mybatis 的一级、二级缓存。
Java面试题
mybatis符号替换
Java面试题,题目,Mybatis #{} 和 ${} 的区别是什么?
Java面试题
kafka顺序一致性问题
Java面试题,题目,kafka 分布式的情况下,怎么保证消息的顺序消费?
Golang
Golang Context案例
Golang Context案例,Golang Context案例,Golang 中的 Context 使用包括 WithCancel、WithDeadline、WithTimeout 和 WithValue。
Golang
Golang Context使用案例
Golang Context使用案例,在 go 服务器中,对于每个请求的 request 都是在单独的 goroutine 中进行的,处理一个 request 也可能涉及多个 goroutine 之间的交互。
Golang
Golang context使用
Golang Context使用,Golang Context使用教程,context 在 Go1.7 之后就进入标准库中了。它主要的用处如果用一句话来说,是在于控制 goroutine 的生命周期。
Golang
Golang time tick
Golang time tick使用,After(d) 是只等待一次 d 的时长,并在这次等待结束后将当前时间发送到通道。Tick(d) 则是间隔地多次等待,每次等待 d 时长,并在每次间隔结束的时候将当前时间发送到通道。
Golang
Golang time after
Golang time after,Golang time after使用,在 golang 中,谁也无法保证某些情况下的 select 是否会永久阻塞。很多时候都需要设置一下 select 的超时时间,可以借助 time 包的 After() 实现。
Golang
Golang select使用
Golang select使用,Golang select详解,golang 中的 select 就是用来监听和 channel 有关的 IO 操作,当 IO 操作发生时,触发相应的动作。
Golang
Golang缓冲与无缓冲channel
Golang缓冲与无缓冲channel教程,golang 在语言层面支持并发编程,也就是 goroutine,可以看做一种轻量级的线程。程序启动时,其主函数即在一个单独的 goruntine 中运行,叫做 main goruntine。
Golang
Golang channel使用
Golang channel使用,Golang channel使用教程,在 golang 中 channel 用于 goroutine 之间的通信,channel 是引用类型,需要使用 make 来创建 channel。在 Golang 中,用通信来共享内存,而不要用共享内存来通信。
Golang
Golang goroutine调度原理
Golang goroutine调度原理,goroutine简介,goroutine 是 go 语言 中最为 NB 的设计,也是其魅力所在,goroutine 的本质是协程,是实现并行计算的核心。
Golang
Golang goroutine
Golang goroutine教程,在 Golang 中,我们也可以将 goroutine 称为协程,当一个程序启动的时候,只有一个 goroutine 来调用 main 函数,称它为主 goroutine,新的 goroutine 通过 go 语句进行创建。
Golang
Golang panic recover详解
Golang panic recover详解,recover() 用于将 panic 的信息捕捉。recover 必须定义在 panic 之前的 defer 语句中。在这种情况下,当 panic 被触发时,该 goroutine 不会简单的终止,而是会执行在它之前定义的 defer 语句。
Golang
Golang defer案例
Golang defer案例讲解,Golang 中的 defer 可以帮助我们处理容易忽略的问题,如资源释放、连接关闭等。
Golang
Golang defer详解
Golang defer详解,Golang defer详解教程,Go 语言 中的 defer 语句用于延迟函数的调用,每次 defer 都会把一个函数压入栈中,函数返回前再把延迟的函数取出并执行。
Golang
Golang计算文件md5
Golang计算文件md5,问题描述,在 Go 语言 中,如何计算文件的 MD5 值。
Golang
Golang获取字符串md5
Golang获取字符串md5,问题描述,在 Go 语言 中,如何计算 字符串 的 MD5 值。
Java面试题
kafka消费者活锁
Java面试题,题目,消费者故障,出现活锁问题如何解决?
Java面试题
讲一讲kafka的主从同步机制
Java面试题,题目,讲一讲 kafka 的主从同步机制,讲一讲它的高可用机制。
Java面试题
java面试题kafka消息追踪机制
Java面试题,题目,讲讲 kafka 维护消息状态跟踪的方法。
Java
七牛云上传图片
七牛云上传图片,七牛云上传图片实现,描述,运用 Java 代码实现从本地上传图片到七牛云,并通过七牛云提供的临时域名访问图片。
Java
MyBatis逆向工程
MyBatis逆向工程教程,本案例运用了 MyBatis 逆向工程的技术,生成了实体类、Dao 接口、实体类映射文件,并演示了简单的增删改查以及条件查询等操作。
Java
Dubbo入门案例
Dubbo入门教程,Apache Dubbo 是一款高性能的 Java RPC 框架,可以和 Spring 框架无缝集成。本案例运用了 Zookeeper 作为注册中心,使用 Spring 整合 Dubbo 框架,搭建了一个简易的 SOA 架构项目。
Java面试题
spring事务传播属性
Java面试题,题目,spring 事务的传播属性有哪些?
Java面试题
spring mvc生命周期
Java面试题,题目,Spring MVC 生命周期了解吗?讲一讲。
Java面试题
spring循环依赖
Java面试题,题目,Spring 循环依赖是什么样的场景,怎么解决循环依赖?为什么是三级缓存而不是二级缓存?
操作系统
守护进程
守护进程,守护进程教程,守护进程就是在后台运行,不与任何终端关联的进程。
操作系统
僵尸进程
僵尸进程,僵尸进程教程,如果一个进程已经终止了,但是其父进程还没有获取其状态,那么这个进程就称之为僵尸进程。
操作系统
孤儿进程
孤儿进程,孤儿进程教程,如果父进程先退出,子进程还没退出那么子进程将被托孤给 init 进程,这时子进程的父进程就是 init 进程(1 号进程)。
Java面试题
spring生命周期
Java面试题,题目,请讲讲你对 spring 对象管理的生命周期的理解。
Java面试题
mysql有哪些锁
Java面试题,题目,Mysql 有哪些锁?
JavaScript
JavaScript是什么
JavaScript是什么总结,JavaScript 简称 “JS”,是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。
Java面试题
redis主从复制
Java面试题,题目,redis 主从复制是怎么操作的?
Java面试题
kafka名词解释
Java面试题,题目,说说你对 kafka 的了解。讲讲里面的 producter,customer,partition 等词的含义。
Java面试题
Mysql优化
Java面试题,题目,Mysql 查询优化怎么处理,你在平时工作中如果遇到需要优化的会怎么做?
Java面试题
Java 内存屏障
Java面试题,题目,你对内存屏障了解吗?描述一下他们。
Java面试题
Java面试题
Java面试题,题目,讲讲你对 AQS 的理解
Java面试题
HashMap和ConcurrentHashMap
Java面试题,题目,你了解 HashMap 吗?请讲讲 hashMap 的数据结构。ConcurrentHashMap 呢?
Java面试题
单点登录
Java面试题,题目,讲一讲单点登录原理。
Java面试题
Zookeeper保证顺序一致性
Zookeeper面试题,题目,zookeeper 是如何保证事务的顺序一致性的?
Java面试题
Zookeeper面试题
Zookeeper面试题,题目,zookeeper 四种类型的数据节点。
Java面试题
Zab协议
Zookeeper面试题,题目,请给我们讲一下 ZAB 协议。
Java面试题
Zookeeper分布式锁
Zookeeper面试题,题目,我们平时所说的 CAP 理论,请讲讲,zookeeper 满足了哪两个?讲讲 zookeeper 锁是怎么实现的?如果实现方式是所有的节点都监控一个临时节点,会产生 "惊群效应"。怎么解决的。
Java面试题
Redis事务的了解
Redis面试题,题目,请你讲讲对 redis 事务的了解。
Java面试题
Redis的数据同步机制
Redis面试题,题目,redis 的同步机制了解吗?可以聊聊吗?
Java面试题
Redis的回收策略
Redis面试题,题目,Redis 的回收策略 (淘汰策略)是什么?
Java面试题
Redis面试题
Redis面试题,题目,Redis 过期键的删除策略是什么?
Java面试题
Redis面试题
Redis面试题,题目,对 redis 这边的管道(Pipeline)了解吗?可以简单聊聊吗?
Java面试题
Redis面试题
Redis面试题,题目,讲一讲 redis 的持久化机制,并讲讲他们的劣势和优势
Java面试题
Redis面试题
Redis面试题,题目,Redis 的优势是什么?
Java面试题
Redis面试题
Redis面试题,题目redis 在分布式锁中,如果线程 1 获取锁成功,还没有写到从数据库的时候,主数据库挂掉,线程 2 这个时候来获取锁,这个时候可以获取成功,用什么样的方式可以解决。
Golang
Go语言入门
Go语言入门教程,Go 不仅拥有 C 语言的简洁和性能,而且还很好的提供了 21 世纪互联网环境下服务端开发的各种实用特性,让开发者在语言级别就可以方便的得到自己想要的东西。
Golang
Go语言适合做什么
Go语言适合做什么,Go语言适合做什么教程,Go 语言 主要适合做服务器编程、分布式系统、数据库代理器、中间件、网络编程、数据库操作以及开发云平台等。
Golang
Golang判断元素在切片中
Golang判断元素在切片中,问题描述,在 Golang 中,如何判断一个元素是否在某个 切片 或者 数组 中,有现成的方法吗?
Golang
Golang获取当前字符串时间
Golang获取当前字符串时间,问题描述,在 Golang 中,如何获取当前时间的 字符串 表示形式。
Golang
Golang获取当前时间
Golang获取当前时间,问题描述,在 Golang 中,如何获取当前时间的 UNIX 时间戳。
Golang
Golang如何求平方根
Golang如何求平方根,问题描述,在 Go 语言 中,如何求一个 数字 的平方根。
Golang
Go Mod包管理教程
Go Mod包管理教程,随着 go 1.11 的发布,go 官方引入了 go module 来解决依赖管理问题,go module 被集成到原生的 go cmd 中。
Java面试题
Redis分布式锁实现方案
Redis面试题,题目,项目中有用到 redis 的分布式锁吗?是怎么实现的?
Golang
Golang pprof
Golang pprof教程,在计算机性能调试领域里,profiling 就是对应用的画像,这里画像就是应用使用 CPU 和内存的情况。
Java面试题
Redis面试题
Redis面试题,题目,redis 性能比较好的原因。
Java面试题
一致性hash原理
Java面试题,题目,谈谈你对一致性 hash 的了解。讲讲他的原理和实践。
Java面试题
NIO 和 BIO 的区别
IO面试题,题目,讲讲 NIO 和 BIO 的区别
Java面试题
Jvm的垃圾收集器
Java面试题,题目,聊聊 Jvm 的垃圾收集器
Java面试题
Jvm垃圾回收算法
Java面试题,题目,jvm 有哪些垃圾回收算法,聊聊他们的优缺点
Java
Java教程
在学习 Java 教程时,我们主要需要了解面向对象、数据类型、运算符、流程控制、数组、方法、异常、包和访问权限、线程、泛型、IO、Java集合、枚举和反射等技术。
Java
Java是什么
Java 具有简单性、面向对象、分布性、编译和解释性、稳健性、安全性、可移植性、高性能、多线程性和动态性等特点。
操作系统
虚拟内存
虚拟内存,虚拟内存教程,第一层理解,每个进程都有自己独立的 4G 内存空间,各个进程的内存空间具有类似的结构。
C语言
C语言生成随机数都一样
C语言生成随机数都一样,问题描述,在 C 语言 中,在一个 循环 中,连续生成 随机数,结果生成的随机数都一样,该如何在循环中,生成不一样的随机数?
Java面试题
Java对象头
Java面试题,题目,谈谈对象头的内存布局的理解,并谈谈你对 java 锁升级的了解
Java面试题
Java内存模型
Java面试题,题目,讲一讲 Jvm 内存模型。
Java面试题
死锁活锁饥饿锁
Java面试题,题目,请分别介绍一下 Java 的死锁,活锁和饥饿锁。
Java面试题
线程池的工作原理
Java面试题,题目,请讲一下线程池的创建方法,并介绍里面几个参数的作用,并讲讲你对里面的队列的了解。
Java面试题
Java线程生命周期面试题
Java面试题,题目,一个 线程 的生命周期有哪几种状态?他们是怎么样扭转的?
Java面试题
Java垃圾回收面试题
Java面试题,题目,为什么 Java 要采用垃圾回收机制,而不采用 c/c++ 的显式内存管理?
Java面试题
Java容器面试题
Java面试题,题目,Java 容器有哪些?哪些是同步容器,哪些是并发容器?
Golang
Goland快捷键
Goland快捷键,Goland快捷键教程,Golang 的开发工具 Goland 的快捷键我们大体可以分为五大类,即:文件相关快捷键、代码格式化快捷键、查找和定位快捷键、代码编辑快捷键和界面切换快捷键。
C语言
C语言生成随机数
C语言如何生成随机数,问题描述,在C 语言 中,如何生成一个随机数?