自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 序列化与反序列化

序列化和反序列化作为Java里一个较为基础的知识点,大家心里也有那么几句要说的,但我相信很多小伙伴掌握的也就是那么几句而已,如果再深究问一下Java如何实现序列化和反序列化的,就可能不知所措了!遥记当年也被问了这一个问题,自信满满的说了一大堆,什么是序列化、什么是反序列化、什么场景的时候才会用到等...

2019-03-21 14:46:58 34 0

原创 什么是负载均衡

负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。 常见方案: ...

2019-03-20 14:15:40 121 0

转载 mysql 缓存机制

mysql 缓存机制 命中条件 缓存存在一个hash表中,通过查询SQL,查询数据库,客户端协议等作为key,在判断命中前,mysql不会解析SQL,而是使用SQL去查询缓存,SQL上的任何字符的不同,如空...

2019-03-18 11:44:57 52 0

转载 数据库引擎学习

ISAM:ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢...

2019-03-18 11:00:02 39 0

转载 TCP三次握手-backlog队列问题

TCP三次握手-backlog队列问题.md概述之前有同事做压力测试时,发现无论如何都无法突破128并发的问题,经排查发现该服务器ACCEPT QUEUE队列都为128,限制了网络的并发。TCP三次握手Linux内核协议栈为一个TCP连接管理使用两个队列,一个是半链接队列SYN QUEUE(用来保...

2019-03-14 17:12:27 61 0

原创 数据库类型字段总结

1.varchar 与 char 类型的区别 varchar优点: 1)建立自己的站点时,varchar类型字段要比char类型字段方便的多,使用varchar时不需要为使用过程中减掉多余的空格而担心; 2)使用varchar字段比char字段相比占用更少的磁盘空间和内存,当数据库很大时,这种操作...

2019-03-13 10:47:17 75 0

转载 数据库学习(四)

六、基本的数据库性能分析方式:explain+慢SQL分析 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是 如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 使用方式:Explain+SQL语句 执行计划包含的信息: ±—±------------±...

2019-01-19 12:10:08 204 0

转载 数据库学习(三)

四、聚集索引、非聚集索引 聚集索引:类似字典的拼音目录 数据本身就是按照聚集索引的顺序存储的,应该建在需要频繁修改的列上,因为聚集索引的每次改动都以为这表中数据的物理数据的一次重新排序 聚集索引适合建立在大数据量但是小数目不同值的列上 聚集索引的修改一定一定一定要谨慎,因为聚集索...

2019-01-19 11:32:14 41 0

转载 数据库相关知识学习(二)

二、数据库事务4个特性:ACID 1.原子性(Atomicity): 事务开始后的所有操作,要么全部做完,要么全部不做,不可以停滞在中间环节。事务执行过程中若出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。事务是一个不可分割的整体。 2.一致性(Consistency): 事务开始前...

2019-01-16 17:41:15 69 0

原创 数据库相关知识学习(一)

学习内容: 1、数据库4个隔离级别(线上环境是Read Committed) 2、数据库事务4个特性:ACID 3、nnodb、myisam区别 4、聚集索引、非聚集索引 5、B树(B-Tree)、B+树(B+Tree) 6、基本的数据库性能分析方式:explain、慢查询日志 7、...

2019-01-16 16:32:41 55 0

原创 Huffman文件压缩小项目

一、基础知识铺垫: 本质: 1、Hffman树: Huffman树,又称为最优二叉树,是加权路径长度最短的二叉树。 2、采用算法: 贪心算法 应用: 3、分类: 4、本文主要实现一下无损压缩: 无损?压缩?(思考清楚) Huffman压缩:出现次数差...

2018-08-21 12:52:19 77 0

原创 IO多路转接select、poll、epoll模型

I/o多路转接之select: 一、select: 1、特点:负责等 2、可以等待多个fd(read负责读取) 系统提供select函数来实现多路复用输入/输出模型 输入:用户想告诉操作系统哪个是你应该关心的读事件 输出:操作系统告诉用户你所关心的文件描述符上的事件哪些是fd已经就绪 ...

2018-07-27 22:53:57 85 0

原创 网络基础(一)

复习: 1、进程处理信号必须在合适的时候,即从内核态切换到用户态。 2、对信号的处理方式:3种 1)缺省;2)忽略;3)自定。 3、信号产生——-信号被判定———-信号在合适的时候被处理——–信号的处理过程——–信号有哪些处理方式。 操作系统向前台进程组或前台作业发送信号。 ...

2018-06-26 10:17:23 94 0

原创 文件描述符

一、文件常见的几种打开与读写方式: FILE *fopen(const char *path, const char *mode);//它是库函数 打开文件 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);//读...

2018-06-05 09:28:52 1800 0

原创 c++异常

先来个面试题:设计一个算法实现1+2+…+n不能使用+、-运算符 且时间复杂度为o(n) 解决方案: #define _CRT_SECURE_NO_WARNINGS 0; #include<iostream> #include<stdlib.h&...

2018-05-27 22:42:37 194 0

原创 模板的分类编译

一、模板为什么不能分离编译? 普通函数 template.h: #pragma once #include<iostream> using namespace std; void Func(); template.cpp: #include"temp...

2018-05-27 08:31:04 283 0

原创 STL模板

学习内容: 1、泛型编程 2、模板函数&类模板 3、非类型模板参数&模板的模板参数 4、模板的特化 5、模板的分离编译 一、泛...

2018-05-23 16:29:13 860 0

原创 线程

1、线程是在进程内部运行的一个执行分支 2、线程的创建成本比较小,删除进程成本也比较小,只需要创建一个PCB,指向那块内存地址空间就行。 3、线程是在进程内部运行,本质上是在同一块地址空间上运行。 怎么理解一个进程中间会有多个执行流的? 一个执行流被一个线程表示,一个进程里面可以有多个...

2018-05-21 22:03:57 136 0

原创 模板类--Vector

首先铺垫一些扩展性知识: 1、模板不支持分离编译,why? 分离编译不会模板实例化 2、怎样解决? 1)显示实例化,最好指定模板类型(因为有的模板必须指定类型)。 2)最好的方式是把声明和定义放一个头文件里(类里面定义太大了)。 扩容: template&...

2018-05-14 08:06:04 363 0

原创 linux进程替换(下)

1、替换原理: 用fork创建子进程后执行的是和父进程相同的程序,子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。 2、...

2018-05-09 15:09:54 130 0

原创 LINUX进程控制(上)

重点: 进程创建,fork/vfork 进程等待 进程替换,微型shell,重新认识shell运行原理 进程终止,认识$ 一、进程创建: fork函数: 从已存在进程中创建一个新进程。新进程为子进程,原进程为父进程。 2、 进程调用fork,当控制到内核中的fork代码后...

2018-05-06 16:25:46 135 0

原创 探索c++多态对象模型

一、探索虚函数表 虚函数表是通过一块连续内存来存储虚函数的地址。这张表解决了继承、虚函数(重写)的问题。在有虚函数的对象实例中都存在一张虚函 数表,虚函数表就像一张地图,指明了实际应该调用的虚函数函数。 测试代码: class Base { public : void fun...

2018-05-04 08:23:59 79 0

原创 Linux进程概念

一、认识冯诺依曼系统: 常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 截至目前,我们所认识的计算机,都是有一个个的硬件组成 输入单元:键盘,鼠标,扫描仪,写板等 中央处理器:含运算器和控制器 所有的外设都只能和存储器打交道。 cpu也只能和存储器打交道。 所...

2018-05-02 06:54:13 570 0

原创 LINUX环境开发基础工具使用

vim记忆方式:打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作 一、vim 中的三模式及关系: 1)要查看你的所有模式:打开vim,底行模式直接输入: help vim-modes 2)退出vim及保存文件,在[正常模式]下,按一下[:]冒号键进入[last line ...

2018-04-29 16:28:54 538 1

原创 c++中的动态内存管理

、1、内存: 说到内存管理,大多人都不了解什么是内存管理,下面我来简单介绍一下: 一般把内存理解为四部分:栈 、堆、静态区(数据段)、常量区(代码段) 存储内容: 栈:存放局部变量,栈上的内容只在函数作用域范围内有效,出了作用域会自动销毁,其存储特点是效率高但存储空间有限。 堆:由使用者...

2018-04-28 07:54:11 116 0

原创 linux开发工具

本篇博客主要解决以下几个问题: 1. vim自行查找资料, 自行配置插件. 2. 自行查找资料, 调研除了vim, 还有哪些常用的牛逼的编辑器, 并能够横向对比编辑器之间的区别和优缺点. 3. 自行查找资料, 调研除了gcc, 还有哪些常用的牛逼的编译器(不限制编程语言, 不限制平台)....

2018-04-28 07:53:30 1746 0

原创 C++中的多态

先来几个常见的面试题: 1、如何实现不能被继承的类? 需要的知识点: 私有继承以后不可见,构造函数合成 解决方法: class AA { public: void func1() {} static AA* Getvariable1()//sta...

2018-04-22 14:47:03 99 0

原创 c++单继承与多继承(包含虚函数与虚继承的对比)

先来个概念分析题: class Person { public: void Show() { cout<<"Person::"<<_name<<endl; ...

2018-04-18 22:29:53 658 0

原创 进程间通信

同步和互斥 互斥:由于各个进程需要共享资源,而共享资源具有排他性。各个进程竞争使用这些资源,进程的这种关系称之为互斥。  这种一次只能被一个进程使用的资源称之为临界资源 访问临界资源的代码段称之为临界区。  同步:多个进程相互配合共同完成一项任务进程间通信的目的: 数据传输:  资源共享:...

2018-04-17 21:43:02 61 0

原创 c++继承基本概念

一、顺序表和链表的对比 顺序表存储: 原理:顺序表存储是将数据元素放到一块连续的内存存储空间,存取效率高,速度快。但是不可以动态增加长度 优点:1、存取速度高效,通过下标来直接存储 2、便于释放 3、省空间 4、cpu高速缓存顺序表比链表更快 缺...

2018-04-17 21:36:05 124 0

原创 c++中的深浅拷贝

**一、浅拷贝:** 1)代码: 1、构造: String ::String(const char* str="") :_str(new char[strlen(str)+1]) { strcpy(_str, str); } 2、拷贝构造 ...

2018-04-11 22:25:52 547 0

原创 链表面试题(一)

1、链表面试题 > 从尾到头打印单链表 void SListPrintbacktofirst(SListNode*pHead) { SListNode*prev=NULL;//用来标记起始位置 SListNode*tail=NULL;//用来标记末位置 while(t...

2018-04-08 23:29:05 54 0

原创 linux学习笔记一(gcc)

1、gcc gcc -E //预处理 test.c -o test.i -m32(32位机器)//#define #include // gcc -S //编译 **.s gcc -c //汇编 **.o .o文件 可重定位的目标文件 //链接 read...

2018-04-03 17:00:42 102 0

原创 linux学习笔记二(进程)

1、硬件中断技术的出现,进而软件片上有了分时系统,时间片轮转。 2、进程:从用户角度看,进程是程序的一次动态执行过程。 3、从操作系统角度看: 1)进程是操作系统分配内存,CPU时间片等系统资源的基本单位。 2)每个进程有自己独立的虚拟地址空间和进程状态 3 ) ...

2018-04-03 16:46:53 96 0

原创 深入理解c++成员函数

1、const成员函数: 在成员函数后面加const,const修饰this指针所指向的对象,也就是保证调用这个const成员函数的对象在函数内不会被改变 思考以下几种场景 1. const对象可以调用非const成员函数和const成员函数吗? x 2. 非const对象可...

2018-03-31 21:29:00 1701 0

原创 日期类的实现(c++版)

上篇博客简单的介绍了以下c++的几个默认成员函数,现在我们为了更好的理解这几个成员函数,实现一个简单的日期类。 日期类所用到的指知识点: 1、构造函数 2、拷贝构造函数 3、赋值运算符的重载 4、函数的复用 实现的功能: 1)、在当前基础下加一天,减一天...

2018-03-30 17:12:09 148 0

原创 面向对象简介及c++类的四个默认成员函数

1、什么是面向对象? 面向对象程序设计 概念:(Object Oriented Programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法。 对象指的是类的实例,将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。 C...

2018-03-23 20:14:10 164 0

原创 linux 中g++、gdb的安装

在安装好虚拟机后进行c++的运行和调试,就需要安装g++、gdb。(在root命令下执行,其他没权限) g++的安装过程: 首先保证网速畅通,用ping +ip地址检验 ping 192.168.91.128 51 packets transmitted, 51 received, 0%...

2018-03-22 22:06:27 230 0

原创 引用和指针

引用的概念及用法 引用:就是给一个变量起个别名。 语法 : 定义的格式为: 类型 &引用变量名 = 已定义过的变量名; int a=10; int &b=a; 这里b就是a的别名 ...

2018-03-20 17:18:47 78 0

原创 c++的基本知识

- 什么是C++? c++是由c发展而来,与c兼容。用c语言编写的程序基本上可以不加修饰的用于c++。c++既可用于面向过程的结构化程序设计,又可以用于面向对象的程序设计,是一个功能强大的混合型的程序设计语言。 c++对c的“增强”,表现在两个方面: 1)在原来面向过程的机制基础上...

2018-03-19 21:32:55 79 0

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