自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 程序员:摸鱼式加班何时才能停止

前几天,《人民日报》官微上发表了一篇名为《被迫“摸鱼式加班” :“领导不走我不走”为何一再上演》的微博文章,引发热议。先来了解一下,什么是摸鱼式加班?这种现象在IT互联网公司里太普遍了,这是我公司每天上演的戏码。土哥之前刚入职一家公司,下班时间到了,竟没有一位员工起身下班。因为是新人,我也没好意思先走,手头没啥事干,就在工位上硬生生耗了20多分钟等老板走了,然后技术负责人走了,之后,我...

2019-08-31 22:26:46 1150 1

原创 C++ 多态性原理与细节

目录多态的定义 编译时多态 运行时多态 虚函数的实现原理 虚函数表的作用机制实例分析什么是多态多态时C++作为面向对象(OOP)语言的三大特性之一(其他两大特性为:封装和继承)多态性简单概括为“一个接口,多种方法”。指的是相同的对象收到不同的消息或者是不同的对象收到相同的消息时能产生不同的动作。多态具有三个重要的组成部分:1.相同的函数名2.依赖于上下文3.具...

2019-08-31 22:24:20 251

原创 C++函数中,两个自动释放内存的动态内存申请类

最近做一个事情,实现一个流程交互,其中主交互流程函数中,涉及较多的内存申请,而健康的函数,都是在函数退出前将手动申请不再需要的内存释放掉,使用很多方法,都避免不了较多的出错分支时,一堆的if free/delete,代码长而且不好管理因此,利用C++对象离开作用域会自动调用析构函数的特点,在这儿实现了两个自动释放内存的动态内存申请类第一个类,只管理内存,不并管理对象#incl...

2019-08-31 22:23:28 636

原创 “我不会编程,还有机会进娱乐圈吗?”

现在被妖魔化最严重的两个职业群体是什么?甲方和程序员。如果一定要把这两者做一个结合,那就是产品经理。过去20年,中国互联网行业的高速发展,让相关的工程师、产品经理、运营等新岗位开始被大众所知晓。但尽管如此,普通人对这些岗位的具体工作内容依然了解不多。销售或设计人员跟你聊工作上的事情你没准还能接上话,但程序员一说起来就是“变量名”“Debug”“架构”,把工作界面摆在你面前你都完全看...

2019-08-31 22:20:46 503

原创 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...

曾经有这么一道经典面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么?相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?要搞懂这个问题,我们需要先解决下面五个问题: 现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断...

2019-08-28 17:23:33 403

原创 Visual Studio Code 如何编写运行 C、C++ 程序?

0. 前言本文面向初学者,但是不适合还在学写Hello World级别的初学者。阅读本文能在一定程度上了解程序编译的知识,以及使用VS Code的知识。本文大部分内容都可从VS Code官方文档:C++ programming with Visual Studio Code以及各个扩展的文档中获得,并且他们还会进行更新(本文也进行过几次重大更新)。如果你想更深入了解,可以去看。其实本文基本...

2019-08-27 21:17:26 16001

原创 说说我见到和听说到的架构师升级步骤和平时的工作内容

1 先说下大家对架构师认识的误区 1 架构师不是不食人间烟火,不是只在一个人的隔间里设计架构,而是需要和产品方,需求方,程序员等各路人马打交道。 2 架构师偏重于技术,这个不假,但绝不能是技术完美主义者,因为任何产品或网站的架构都充满着妥协。 3 高级程序员和架构师的界限并不明显,不是哪天高级程序员学好了什么课程,掌握了一门技术就自动升级到架构了,有些要求不高的项目里...

2019-08-27 21:16:14 148

原创 C语言和C++哪个效率更高?老司机3句话告诉你答案

很多小伙伴都会有这样的疑问,C语言和C++执行效率上哪一个更高呢?针对这样的问题,今天我们就一起来看一下吧!1.开发效率当代码量比较小的时候,使用c语言可以很方便的就完成代码的开发和维护,但是当代码量达到一定数目以后,c++面向对象的思想的优势就很好的体现出来了,这种思想使代码重用更加高效。2.执行效率从语言特性角度上来看,C++是C的超集。在(C++) - C的这部分...

2019-08-27 21:14:27 5238

原创 进程与线程的区别:最浅显易懂的解释

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个...

2019-08-27 21:10:36 5566 2

原创 金九银十面试必问:C++工程师106道面试题总结(含答案详解)

金九银十即将到来,但很多人面试之前,可能没有在互联网公司工作过或者说工作过但年头较短,不知道互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。下述是我收录整理的Android面试题汇总,由于篇幅原因,在这只把基础知识点部分的题目列举出来,后续还会更新其余面试题内容,大家可以关注一下我,及时知晓我的更新,同时这份面试集锦的...

2019-08-27 21:07:25 1776 1

原创 Linux系统下运行c++程序

引言为什么要在Linux下写程序?首先要问一下自己,为什么要写这个程序。如果我们写一个运行在windows平台的应用程序,那么用Linux写肯定是傻瓜或者强迫症,因为在windows平台调试windows程序可以更容易发现并解决问题,反过来也一样,在Linux平台调试出来的程序可以更好的适应Linux平台的环境,如果在windows下写出一个程序,结果到了Linux的运行环境出了暗病,...

2019-08-21 16:52:23 4442

原创 详细讲解Linux驱动程序

一 编写Linux驱动程序1.建立Linux驱动骨架 Linux内核在使用驱动时需要装载与卸载驱动装载驱动:建立设备文件、分配内存地址空间等;module_init 函数处理驱动初始化卸载驱动:删除设备文件、释放内存地址空间等;module_exit函数处理退出包含这两个函数的两个宏的C程序文件也可看做是Linux驱动的骨架2.注册和注销设备文件任何一个Linu...

2019-08-21 16:50:23 1086 1

原创 献给初学者:谈谈如何学习Linux操作系统

一、 选择适合自己的linux发行版谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行, 面对这么多的Linux 发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux 用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需要有一个明确的方向,选择一个适合自己的系统开始学习lin...

2019-08-21 16:49:34 1289

原创 Linux 下的编程工具

主要包含如下内容:?GNUC、C++编译器?GNUmake工具?GNU的调试器?RCS版本控制系统并简单介绍了Linux系统上广为流行的Perl脚本语言。对比了Linux和WindowsNT两种不同的编码风格。在BBS上看有些困难,拿回家慢慢看吧。第十三章软件开发由于操作系统只是一个工具,对大多数读者...

2019-08-21 16:48:08 1107

原创 做10年Windows程序员与做10年Linux程序员的区别

如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix下面开发10年的程序员水平会差别很大。我写这篇文章并不是想贬低windows下面开发的人,做windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的感受,我最早开始学习编程也是在windows下面的, 学的是VB,后来转到VC...

2019-08-21 16:46:47 527

原创 Linux方向职业规划

引言:据了解,Linux普通网络管理人员的月薪大约5000元左右,负责编程的Linux软件工程师月薪大约在8000元到12000元之间,Linux嵌入式软件开发人员的月薪大约在12000元以上。影响Linux从业者的薪资水平的还有两个重要因素:一是从业时间长短,二是具体的工作岗位。针对376个工作岗位的薪资水平与其工作年限要求交叉分析结果,我们可以看出,从业者进入Linux行业的时间越长,薪...

2019-08-21 16:45:14 1234

原创 linux下c++开发主要是做什么?

一、linux下的c/c++编程——入门级知识 1linux安装 首先安装linux操作系统,一般初学者还是在vm上安装linux学习比较好,操作系统选择ubuntu或者redhat比较合适(用的人多O(∩_∩)O)。 vm的安装比较简单,在此不多说。vm安装之后,建立workstation,注意分配好内存、硬盘,可以配置光驱,网络等(这时的workstation相当于一...

2019-08-21 16:44:11 3316

原创 解析Linux C/C++开发的难度到底在哪

经常被问到的问题,如何学习C++,如何学习Linux,如何开始?其实这个问题对于不同的人答案往往不尽相同,每个人所处的环境就不同。一个普遍的现象是有一些windows开发基础的人,他们想转Linux开发,那我就以这个点和大家讨论一下。相对于Linux下的C/C++开发,在windows下的初学者往往容易入门,原因是visualstudio,这个强大的工具隐藏了很多的细节,好多人甚...

2019-08-21 16:42:45 722

原创 1.Linux和Unix区别

有很多初学Linux的人比较关心Linux和windows的区别,这里还有一点就是Linux Unix的区别,弄清楚一些区别有助于我们对操作系统的了解.这里叙述Linux Unix的区别.   Linux和UNIX的最大的区别是,前者Linux是开发源代码的自由软件,而后者UNIX是对源代码实行知识产权保护的传统商业软件.这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对...

2019-08-21 16:41:05 362

原创 linux学习书籍推荐linux学习书籍推荐

网上看到的,做个标记。没研究过,仅供参考linux编程学习inux 学习书目推荐Linux基础1、《Linux与Unix Shell 编程指南》C语言基础1、《C Primer Plus,5th Edition》【美】Stephen Prata著2、《The C Programming Language, 2nd Edition》【美】Brian W. Kern...

2019-08-21 16:39:39 5813

原创 技术学到多厉害,才能顺利进入BAT?

简介本科的时候对 Linux 特别感兴趣,心中向往成为一名运维工程师,就开始没日没夜的看相关的书籍。到了大约2013年前后的时候发现 DevOps 开始流行起来了,就开始学习 Python 希望成为一名 DevOps 工程师,后来出去实习发现从事运维相关的工作并不是我的追求。苦于在合肥这样的城市真的很难找到一份专职做 DevOps 的地方(当时在科大讯飞的时候,做的就是纯运维的工作,该...

2019-08-16 17:12:23 392

原创 C++工程师常见的面试题总结

1.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?答:首先,extern是C/C++语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。extern "C"是连接申明(linkagedeclaration),...

2019-08-14 14:36:46 19027 2

原创 腾讯T3C++开发工程师面试总结,这些问题你能答上几个?含答案

腾讯C++第一轮面试题目:不会做别着急 ,文末有答案1、自我介绍(自由发挥)2、301和302的区别?3、红黑树是什么样的数据结构?红黑树和B数的区别?4、堆和栈的区别?5、谈一下对乐观锁和悲观锁的认识6、结构体struct和联合体union的区别7、三次握手的具体实现,time_wait原理?8、C和C++的特点与区别9、计算机网络中不同层有用到...

2019-08-14 14:27:04 1579

原创 C++ vector 删除符合条件的元素

C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法。C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。1.std::vector::erase()  函数原型:iterator erase (iterator position);  //删除指定元素       iterator ...

2019-08-13 21:14:38 1065

原创 C/C++ 语言获取文件大小

在C语言中测试文件的大小,主要使用二个标准函数。1.fseek  函数原型:int fseek ( FILE * stream, long int offset, int origin );  参数说明:stream,文件流指针;offest,偏移量;orgin,原(始位置。其中orgin的可选值有SEEK_SET(文件开始)、SEEK_CUR(文件指针当前位置)、SEEK_END(...

2019-08-13 21:09:34 1927

原创 使用递归哈希进行精确模式串匹配

字符串处理是每个编程者都必须掌握的知识,主要看看字符串的搜索查找功能。现在的编程语言如C/C++/Java等都提供了对字符串子串的查找功能,具体如下:(1)C:strchr,strstr。(2)C++:find,rfind,find_first_of,find_first_not_of等等。(3)Java:indexOf,lastIndexOf等。下面说明一种使用递归哈希...

2019-08-13 21:08:12 226

原创 Linux C Socket编程原理及简单实例

1.什么是TCP/IP、UDP?2.Socket在哪里呢?3.Socket是什么呢?4.有很多的框架,为什么还在从Socket开始?5. Linux C Socket简单示例1.什么是TCP/IP、UDP?  TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协...

2019-08-13 21:06:50 446

原创 C/C++中const关键字详解

为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下: 常变量:const类型说明符 变量名 常引用:const类型说明符 &引用名 常对象:类名const对象名 常成员函数:类名...

2019-08-13 20:56:29 311

原创 C/C++ typedef用法

引言typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。typedef的使用方...

2019-08-13 20:54:23 111

原创 Linux 文件与目录

inode在前文介绍文件系统时我们提到了 inode 和 data block。在 EXT2 文件系统中,inode 用来存放文件的元信息,data block 用来存放文件的内容。inode 包含的文件元信息有:该文件的读写权限(rwx) 该文件的拥有者和所属组(owner/group) 该文件的大小 该文件的 ctime(创建时间) 该文件的 atime(最近一次的读取时间)...

2019-08-13 20:51:27 132

原创 Linux AUFS 文件系统

AUFS 的英文全称为 Advanced Mult-Layered Unification Filesystem,曾经是 Another Mult-Layered Unification Filesystem,显然,现在的内涵规格更高些。说明:本文的演示环境为 ubuntu 16.04。Union File SystemUnion File System,简称 UnionFS,是一种为 L...

2019-08-13 20:48:20 247

原创 Linux ln 命令

Linux 中的文件分为 Hard Link 和 Symbolic Link 两种。Hard Link 文件又被称为硬链接文件、实体链接文件,Symbolic Link 文件则常被称为符号链接、软链接文件。ln 命令用来在文件之间建立链接。在介绍 ln 命令前,让我们先来搞清楚究竟什么是硬链接,什么又是软链接。Hard Link(硬链接)我们知道,在 Linux 系统中,每个文件对应一...

2019-08-13 20:46:47 223

原创 程序员搞笑的代码注释:谁的代码注释我都不服,就服你的

什么是代码注释,如何在代码中添加注释,相信每一位了解编程的人并不陌生。注释里往往有很多有趣的脑洞和「真心话」。今天我们一起去看看那些6到飞起,被玩坏了的幽默注释吧。信息量太大的注释系列——01 你造么?我是菜鸟!的注释// I am not sure if we need this, but too scared to delete. ... ...中文:个人不确认是不是...

2019-08-09 17:19:14 1409

原创 二叉查找树(查找、插入、删除)——C语言

二叉查找树二叉查找树(BST:Binary Search Tree)是一种特殊的二叉树,它改善了二叉树节点查找的效率。二叉查找树有以下性质:(1)若左子树不空,则左子树上所有节点的值均小于它的根节点的值(2)若右子树不空,则右子树上所有节点的值均大于它的根节点的值(3)左、右子树也分别为二叉排序树(4)没有键值相等的节点二叉查找树节点的定义:1 typedef ...

2019-08-08 20:51:35 709

原创 网络IO之阻塞、非阻塞、同步、异步总结

1、前言  在网络编程中,阻塞、非阻塞、同步、异步经常被提到。unix网络编程第一卷第六章专门讨论五种不同的IO模型,Stevens讲的非常详细,我记得去年看第一遍时候,似懂非懂,没有深入理解。我结合网上博客和书总结一下,加以区别,加深理解。2、数据流向  网络IO操作实际过程涉及到内核和调用这个IO操作的进程。以read为例,read的具体操作分为以下两个部分:  (1)内核等待...

2019-08-08 20:37:45 280

原创 高并发场景 LVS 安装及高可用实现

1.1负载均衡介绍1.1.1负载均衡的妙用负载均衡(Load Balance)集群提供了一种廉价、有效、透明的方法,来扩展网络设备和服务器的负载、带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。ü单台计算机无法承受大规模的并发访问或数据流量了,此时需要搭建负载均衡集群把流量分摊到多台节点设备上分别处理,即减少用户等待响应的时间又提升了用户体验;ü7*24...

2019-08-08 20:35:52 320

原创 C++程序员专用表白程序让你度过一个美妙的七夕节

今天的别人,今天的你[代码运行效果截图]#include<iostream.h>#include<windows.h>#include<stdio.h>#define stoptimeshort 40#define stoptimelong 100voidmain(){////////////...

2019-08-07 16:32:21 26415 3

原创 C++发展概述、优缺点及应用领域

个人观点(C++虽功能强大,但是底层还是调用C,C++为了吸引更多的C程序员,功能过于丰富且复杂,一定程度上反而降低了可编程的实用性。但是不可否认C++也是一门艺术。)C++是一门以C为基础发展而来的一门面向对象的高级程序设计语言,从1983年由Bjarne Stroustrup教授在贝尔实验室创立开始至今,已有30多个年头。C++从最初的C with class,经历了从C++98、C+...

2019-08-06 17:43:20 3662

原创 linux下利用C或C++ 语言调用需要root权限的函数

1、setuid法(1)登录root用户,将程序设置成root:root所有者(等价于:登录root用户编译程序)。也可直接将普通用户加入root组中,那么编译程序不用来回切换用户。(2)登录root用户设置程序的UID,#chmod u+s 源文件。(3)程序中使用: uid_t uid = getuid(); 普通用户的uid if ...

2019-08-06 17:41:15 2774

原创 C/C++——C语言跳出多重循环方法

c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法:1. 使用gotofor (int i = 0; i < MAX1; i++){ for (int j = 0; j < MAX2; j++) { if (condition) { ...

2019-08-06 17:34:26 7967

空空如也

空空如也

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

TA关注的人

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