自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 go 的 [] rune 和 [] byte 区别

go 的 [] rune 和 [] byte 区别

2023-02-27 08:27:01 192

原创 go语言中切片与数组的区别

go语言中切片与数组的区别

2023-02-27 08:26:44 306

原创 Go中map的key需要是可比较的类型

Go中map的key需要是可比较的类型

2023-02-27 08:25:49 396

原创 LevelDB架构介绍以及读、写和压缩流程

LevelDB架构介绍以及读、写和压缩流程

2023-02-27 08:22:12 750

原创 Raft论文总结

raft论文总结为什么需要对大规模的数据集进行存储和计算?当用户量扩大,请求响应和存储安全需求越来越高,单一服务器已经无法满足实际的使用情况。解决方法有二:1.换一台更好的服务器2.多几台服务器一起用从利润和技术的角度出发,后者比前者更容易实现。多台服务器一起来处理用户的请求,保存用户的信息。用户的每一个请求落实到数据库中就是一次增删改查,抽象出来就是一条对数据操作的指令。而将这些指令操作进行提交运行并存储每一条指令的结果,就是服务器的基本功能。但是服务器很可能同时接收到多条

2022-04-30 12:27:59 445

原创 【分布式系统】GFS(Google File System )详解

GFS是什么?GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。为什么要用GFS?大量数据的存储会面临很多的难点:大数据下需要良好的表现就需要分片和容错。在具体操作过程中,涉及到容错一般使用副本来解决,然而副本的使用会面临不一致问题。如果有一致性的要求,就会导致表现降低。所谓的一致性,就是在集群中表现的像与一台机器或一个副本进行交互那样因为GFS不但是一个理论成熟的框架结构

2022-03-28 09:16:37 9091

原创 【分布式系统】MapReduce详解

MapReduce什么是分布式的系统?用于大型网站的多台协作计算机集群,多用于存储、MapReduce、点对点共享等大量关键基础工作。人们使用分布式系统的原因:通过并行的榜示提升效率通过复制的方式提升容错更符合外部实体的计算方式通过隔离提实现安全性但是:同时存在太多部分导致复杂的内部交互需要应付部分环节的失败难以实现应当表现的潜力​ 很多的表现问题不能简单的被规模化解决,例如增加一台计算机无法将效率提升一倍、无法提升反应时间、很多用户同时更新一样的数据什么是MapReduc

2022-03-23 21:01:34 1950

原创 2021春招Java后端面经总结-计算机网络篇[已收到阿里,腾讯,美团,百度offer]

OSI七层模型,分别介绍一下应用层、表示层、会话层、传输层、网络层、链路层、物理层应用层:面向用户操作,桌面应用,用户指令由应用层负责。常见的应用层协议有:HTTP协议,TELNET协议表示层:加密解密、转换翻译、压缩解压缩会话层:建立和管理应用程序之间的通信。表示层和会话层都是应用层的一部分,在五层协议中,这三者统称应用层。传输层:建立主机之间的联通,负责报文的传输。常见的协议有:TCP/UDP网络层:控制子网的运行,如逻辑编址、分组传输、路由选择。主要功能:将网络地址翻译成对应的物理地址并

2021-04-30 11:07:08 298

原创 2021春招Java后端面经总结-操作系统篇[已收到阿里,腾讯,美团,百度offer]

CPU架构:控制器,寄存器,运算器,高速缓存?控制器:根据指令操作码与时序信号,产生各种操作控制信号,以便正常建立数据通路,完成取指与执行的控制寄存器:CPU的运算速度是非常快的,为了性能CPU在内部开辟一小块临时存储区域,并在进行运算时先将数据从内存复制到这一小块临时存储区域中,运算时就在这一小块临时存储区域内进行。我们称这一小块临时存储区域为寄存器。运算器:执行算术与逻辑运算的部件。其由累加器,状态寄存器,通用寄存器等组成。高速缓存:当程序在运行时,先将要执行的指令代码以及数据复制到高速缓存中去

2021-04-30 10:29:21 220

原创 2021春招Java后端面经总结-SpringBoot篇[已收到阿里,腾讯,美团,百度offer]

1. Spring Boot、Spring MVC 和 Spring 有什么区别?SpringFramework 最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。Spring MVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。Spring 和 SpringMVC 的问题在于需要配置大量的参数。Sp

2021-04-30 10:22:56 218

原创 2021春招Java后端面经总结-MySQL篇[已收到阿里,腾讯,美团,百度offer]

Mysql事务实现的底层原理*事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务。数据库的ACID原子性(Atomicity)原子性是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做;如果事务中一个sql语句执行失败,则已执行的语句也必须回滚,数据库退回到事务前的状态。实现原子性的关键,是当事务回滚时能够撤销所有已经成功执行的sql语句。InnoDB实现回滚,靠

2021-04-30 10:17:08 303

原创 使用Semantic UI 导致网站加载速度很慢的解决方法

原因:Semantic UI 默认使用的是谷歌提供的字体,并且是直接使用了谷歌的官方链接。由于大家都知道的原因,谷歌网站在国内访问速度很差,甚至根本无法访问,还有就是可能会在离线环境下使用 Semantic UI,不能总是依赖于在线字体,所以需要对 Semantic UI 的源文件进行一下手动修改。解决方法:从开头开始说下载并安装 node.js这一步主要是为了安装npm,如果有了npm就跳过这一步安装 Gulpsudo npm install -g gulp下载Semanti

2020-10-31 14:41:54 929

原创 面试必备——八大排序(JAVA)

直接插入排序public void sort(int[] nums){ for(int i = 1; i < nums.length;i++){ int tmp = nums[i]; int j; for(j = i; j>=0 && tmp < nums[j-1];j--){ nums[j] = nums[j-1]; } num[j] = tmp; }}平均时间复杂度最好情况最坏情况空间复杂度稳定性O(n²

2020-09-16 17:13:57 235

原创 备战BAT面试:查漏补缺——如何计算复杂度

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试为什么需要复杂度分析?因为可以脱离测试环境,硬件设备,数据规模等意外因素的干扰。如何表示复杂度?大O复杂度表示法:int test(int n){ int a = 0; int i= 1; for(; i<=n ; i++){ a = a + i; } return a;}在上式中设每行代码执行时间为一个单位时间。那么第2、3行分别需要一个单位时间,所以需要

2020-07-25 16:38:57 134

原创 备战BAT面试:查漏补缺——GC垃圾回收

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试下图所示是堆中内存分配示意图,创建一个对象,首先会在eden区域分配区域,如果内存不够,就会将年龄大的转移到Survivor区,当survivor区域存储不下,则会转移年老代的。一般来说长期存活的对象最终会被存放到年老代,还有一种特殊情况也会被存放到年老代,就是创建大对象时,比如数据这种需要申请连续空间的,如果空间比较大的,则会直接进入年老代。在回收过程中,有一个参数比较重要,就是对象的

2020-07-24 16:30:13 173

原创 备战BAT面试:查漏补缺——运行时栈帧结构

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素;存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息,每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机里面从入栈到出栈的过程;要分配多少内存在编译时就完全确定并写入到方法表的Code属性之中了,不会受到程序运行期变量数据的影响;对于执行引擎来说,在活动线程中只

2020-07-24 16:21:42 198

原创 备战BAT面试:查漏补缺——双亲委派模型

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试双亲委派模型对于某个特定的类加载器而言,应该为其指定一个父类加载器,当用其进行加载类的时候:1. 委托父类加载器帮忙加载;  2. 父类加载器加载不了,则查询引导类加载器有没有加载过该类;  3. 如果引导类加载器没有加载过该类,则当前的类加载器应该自己加载该类;  4. 若加载成功,返回 对应的Class 对象;若失败,抛出异常“ClassNotFoundException”。

2020-07-24 16:11:51 133

原创 备战BAT面试:查漏补缺——JVM内存模型

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试JVM的内存分布如上图所示。方法区和堆是线程共享的,而寄存器、java方法栈、本地方法栈是各个线程私有的。区域介绍方法区注:在最新的《深入理解Java虚拟机》一书中,已经取消了方法区“永久代”的称呼。方法区是用来存储已被JVM加载的类信息、常量、静态变量、即时编译器编译后的代码等数据这个区域很少进行垃圾回收,回收目标主要是针对常量池的回收和对类型的卸载。运行时常量池是方

2020-07-24 16:04:23 133

原创 备战BAT面试:查漏补缺——一张图看完JVM总体架构

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试

2020-07-24 15:55:58 141

原创 备战BAT面试:查漏补缺——反射

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试

2020-07-24 15:52:33 98

原创 备战BAT面试:查漏补缺——泛型

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试泛型泛型备战BAT面试泛型概述泛型只在编译阶段有效泛型的使用泛型类泛型接口泛型方法泛型通配符泛型上下边界关于泛型数组概述泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化

2020-07-24 10:05:15 103

原创 备战BAT面试:查漏补缺——容器

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试容器容器是我们保存对象的一种手段说道保存对象,其实最简单的是数组,但是数组具有固定的尺寸。而通常来说,程序总是在运行时根据条件来创建对象,我们无法预知将要创建对象的个数以及类型,所以Java推出了容器类来解决这一问题。两种不同概念的容器Collection,独立元素序列,这些元素都服从一条或多条规则。Collection包括List,Set以及Queue。-List必须按照顺序保

2020-07-24 09:24:50 132

原创 踩坑记录:ssh: connect to host gitlab.com port 22: No route to host(MAC环境下 )

在打算从远程仓库使用git pull origin更新代码到本地时,发送了如下错误。ssh: connect to host gitlab.com port 22: No route to hostfatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.解决办法:终端输入git config --l

2020-07-19 17:46:44 2521

原创 备战BAT面试:查漏补缺——接口与抽象类

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试接口接口方法的访问权限JDK 1.8以前,接口中的方法必须是public的JDK 1.8时,接口中的方法可以是public的,也可以是default的JDK 1.9时,接口中的方法可以是private的接口函数的声明在接口中,属性默认public static final,这三个关键字可以省略;方法默认是public abstract,接口中不允许有static类型的方法。

2020-05-10 22:14:17 240

原创 备战BAT面试:查漏补缺——IO相关

备战BAT面试的学习记录,整理了最近自己查漏补缺的知识点,总结出来和大家分享,如有错误,欢迎指出!备战BAT面试IO相关IO概述站在内存的角度上,从其他的设备进入内存的,都是输入,从内存到其他的设备的都是输出,I/O就是用于设备之间的进行传递的数据交互的对象的所属的类型。字节流与字符流字节流:通常用来处理二进制数据(处理的是bit)字符流:处理的最基本的单元是Unicode码元(大小2字节),它通常用来处理文本数据。(处理的是char)不得不记住的一些类字节流字符流

2020-05-10 21:51:31 196

原创 备战BAT面试:查漏补缺——关于异常

学习记录,知识点零散,如有错误,欢迎指出!Java学习记录关于异常运行时异常,非运行时异常和error异常分为运行时异常,非运行时异常和error,其中error是系统异常,只能重启系统解决。非运行时异常需要我们自己捕获,而运行异常是程序运行时由虚拟机帮助我们捕获,运行时异常包括数组的溢出,内存的溢出空指针,分母为0等!编译期和运行期的典型操作编译时期运行时期静态绑定动态绑定使用private,static,final修饰变量或方法使用静态绑定可以被子类重写的方法

2020-05-10 20:59:17 290

原创 Java学习记录:查漏补缺——修饰符与静态修饰符

学习记录,知识点零散,如有错误,欢迎指出!Java学习记录访问修饰符访问权限类包子类其他包概况public∨∨∨∨对任何人都是可用的protect∨∨∨×继承的类可以访问以及和private一样的权限default∨∨××包访问权限,即在整个包内均可被访问private∨×××除类型创建者和类型的内部方法之外的任何人都不能访问的元素实在记不住就记住第一行和第一列的顺序,然后画个对角线就好啦注:static

2020-05-10 17:10:50 163

原创 Java学习记录:查漏补缺——面向对象

学习记录,知识点零散,如有错误,欢迎指出!Java学习记录面向对象1. 基本特征封装、继承、多态2. AOP和OOP的区别面向对象编程 (OOP) 则是对业务分析中抽取的实体进行方法和属性的封装。面向切面编程 (AOP) 偏重业务处理过程的某个步骤或阶段,强调降低模块之间的耦合度,使代码拥有更好的移植性。简单介绍AOP首先要了解Spring是什么Spring是一个容器。简单来说Spring是一个库,它的功能是提供了一个软件框架,这个框架目的是使软件之间的逻辑更加清晰,

2020-05-09 21:37:19 238

原创 Java学习记录:查漏补缺——基本数据类型

java知识点学习阶段性总结。

2020-05-09 21:22:06 153

原创 Go语言学习记录:常用的字符串处理函数

记录一下当工具书用以下内容均可在Go语言标准库文档中里找到len(str)求长度r := []rune(str)Go语言默认使用utf-8处理有中文。例如str :=“hello 你好”,len(str) 结果为12,因为utf-8里中文占3个字节。但如果我们就想让一个中文占一个长度,可以改成使用len([]rune(str) 结果为8,而且不会有乱码字符串转整数n,er...

2020-02-16 13:28:01 179

原创 Go语言学习笔记:闭包

闭包/*首先这里的func(int) int是指函数test()返回一个函数类似的,返回多个值是这样写:func A()(int,int,float32)*/func test() func(int) int { n := 1 fmt.Println(n)//当main()运行结束后时这里的n只会输出一次 return func(x int) int { ...

2020-02-16 13:10:52 146

原创 杂记:零碎知识记录2/16

零碎知识记录快速排序是不是稳定排序?不是快速排序一轮之后,数组被分为小于等于大于P(被选中分割数组的数,简称P)的三部分。此时除了P之外,其他数之间的相对位置会被改变。什么是稳定排序?所谓稳定排序就是指在排序过程中,在对P关键字排序之后不会改变其他关键字的顺序。写前端代码时遇到变量传递问题,并且调试无效时尝试把var声明换成let声明。因为通过var 声明的变量会提升到顶端,通过l...

2020-02-16 12:32:54 117

原创 踩坑记录:SpringBoot无法解析2.1.2RELESE(Mac环境下)

当Maven无法解析x.x.xRELESE时可以试一试如下方法:在Maven的setting.xml里添加 <profiles> <profile> <id>spring plugins</id> <activation> <jdk>spring pl...

2019-11-03 12:33:37 240

原创 SpringBoot开发技巧:在ideal控制台显示Mybatis的操作过程

在/src/main/resources下添加mybatis-config.xml文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-confi...

2019-11-03 12:26:27 276

原创 踩坑记录:SpringBoot整合MyBatis,Mapper映射文件无法加载及路径问题

在构建SpringBoot项目的Mapper层时,UserMapper.java和UserMapper.xml总是无法形成映射,错误为映射文件无法加载。我尝试过如下解决方法(虽然我用这些方法没有成功,但是大家可以一个个试试):方法一:将mapper映射文件放在resources目录下,通常会在resources目录下建一个mapper目录,存放各种mapper的映射文件,并且applicat...

2019-11-03 12:22:36 3942 4

原创 踩坑记录:Maven下载慢(Mac环境下)

踩坑记录:Maven下载慢(Mac环境下)首先找到mac里的maven配置文件:打开访达,按下cmd+shift+H进入根目录,进入文件由你名字命名的文件按下cmd+shift+>显示隐藏文件,进入.m2文件,打开setting.xml.这个就是maven配置文件。将替换成下列代码。改变maven下载源。重启eclipse或ideal,再次加载maven文件,即可拥有飞一般的速度...

2019-11-03 12:02:44 2255

原创 踩坑记录:vue-cli-service: command not found(Mac环境下)

踩坑记录:vue-cli-service: command not found(Mac环境下)终端输入// An highlighted blocksudo rm -rf node_modules package-lock.json && npm install

2019-11-03 11:51:30 42430 11

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除