当前位置 博文首页 > C_HEIHEIHEI的博客:C++ 多继承类 虚基类

    C_HEIHEIHEI的博客:C++ 多继承类 虚基类

    作者:[db:作者] 时间:2021-08-03 15:38

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/jzj_c_love/article/details/102749513
    1.多继承派生类有多个基类或者虚基类,同一个类不能多次作为某个派生类的直接基类,但可以作为一个派生类的间接基类;
    class QUEUE: STACK, STACK{//}; //错误,出现两次
    class Q: S {S d;//}; //正确:采用委托d代理的方式
    1
    2
    2. 委托代理在多数情况下能够满足需要,但当对象成员和基类存在共同的基类时,就可能对同一个物理对象重复初始化(可能是危险的和不必要的);
    3.两栖机车AmphibiousVehicle继承基类陆用机车LandVehicle,委托对象成员水上机WaterVehicle完成水上功能。两栖机车可能对同一个物理对Engine初始化(启动)两次。
    class Engine{ //};
    class LandVehicle: Engine{//};
    class WaterVehicle: Engine{//};
    class AmphibiousVehicle: LandVehicle{WaterVehicle wv; //};
    1
    2
    3
    4
    4.仅靠多继承仍然不能解决同一个物理对象初始化两次的问题 可以采用全局变量、静态数据成员,解决同一个物理对象初始化两次的问题,而如此解决相关析构问题则更使程序逻辑复杂化。

    5.上述定义存在的问题:两栖机车要安装两个引擎Engine,可引入虚基类解决该问题。
    6.虚基类
    虚基类用virtual声明,把多个逻辑对象映射成同一个物理对象;
    映射成的这个物理对象尽可能早的构造、尽可能晚的析构,构造和析构都只进行一次。若虚基类的构造函数都有参数,必须在派生类构造函数的初始化列表中列出虚基类构造参数。
    同一颗派生树中的同名虚基类,共享同一个存储空间;
    其构造和析构仅执行1次,
    有虚基类的派生类构造函数不能使用consexpr定义;
    class Engine{ // };
    class LandVehicle: virtual public Engine{ // };
    class WaterVehicle: public virtual Engine{ // };
    class AmphibiousVehicle: LandVehicle, WaterVehicle { // };
    1
    2
    3
    4
    继承关系

    示例代码
    class Engine
    {
    int power;

    public:
    Engine(int p) : power§ {}
    };
    class LandVechicle : virtual public Engine
    {
    int speed;
    public: //如从AmphibiousVehicle调用LandVehicle,则不会在此调用Engine§
    LandVechicle(int s, int p) : Engine§, speed(s) {}
    };
    class WaterVechicle : virtual public Engine
    {
    int speed;
    public: //如从AmphibiousVehicle调用LandVehicle,则不会在此调用Engine§
    WaterVechicle(int s, int p) : Engine§, speed(s) {}
    };
    struct AmphibiousVechicle:LandVechicle,WaterVechicle{
    AmphibiousVechicle(int s1,int s2,int p): //先构造虚基类再基类
    WaterVechicle(s2,p),LandVechicle(s1,p),Engine§{} //整个派生树Engine§只1次
    };//初始化顺序: Engine§, LandVehicle(s1, p), WaterVehicle(s2, p),而且进入两个
    //LandVehicle, WaterVehicle 后,不再初始化这两个基类的基类Engine
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    7.派生类成员同名问题
    当派生类成员和基类成员同名时,优先访问作用域小
    的成员,即优先访问派生类的成员。当派生类数据成
    员和派生类函数成员的参数同名时,在函数成员内优
    先访问函数参数

    示例代码
    struct A{
    int a, b, c, d;
    };
    struct B{
    int b, c;
    protected:
    int e;
    };
    class C: public A, public B{
    int a;
    public:
    int b; int f(int c);
    };
    int C::f(int c){
    int i=a; //访问C::a
    i=A::a;
    i=b+c+d; //访问C::b和参数c,A::d
    i=A::b+B::b; //访问基类成员
    return A::c;
    }
    void main(void){
    C x;
    int i=x.A::a;
    i=x.b; //访问C::b
    i=x.A::b+x.B::b;
    i=x.A::c;
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    8.析构和构造
    析构和构造的顺序相反,派生类对象的构造顺序
    按自左至右、自下而上地构造倒派生树中所有虚基类;
    按定义顺序构造派生类的所有直接基类;
    按定义顺序构造(初始化)派生类的所有数据成员,包括对象成员、const成员和引用成员(少数编译按程序员指定顺序);
    执行派生类自身的构造函数体;
    示例代码1
    #include

    using namespace std;
    struct A{
    A(){ cout << “A”;}
    };
    struct B{
    B(){ cout << “B”;}
    };
    struct C{
    int a;
    int &b;
    const int c;
    C(char d):c(d),b(a)
    {
    a = d;
    cout << d;
    }
    };
    struct D{
    D(){ cout << “D”;}
    };
    struct E:A,virtual B,C,virtual D{
    A x,y;
    B z;
    E()?(),y(),C(‘C’){ cout << “E”;}
    };
    void test()
    {
    E e;
    }
    int main()
    {
    test();
    system(“pause”);
    return 0;
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    输出
    BDACAABE
    1
    分析
    类E的派生图

    依次构造e的虚基类B和D,B和D不再是派生类,执行B D构造输出函数B D;
    依次构造e的基类A,C,A和C不再是派生类,C有const成员,这些成员初始化不产生输出,执行A C的构造函数输出A C;
    依次构造e的对象成员x,y,z 输出A A B
    最后输出e的构造函数E;
    示例代码2
    #include
    using namespace std;
    struct A { A() { cout << ‘A’; } };
    struct B { const A a; B( ) { cout << ‘B’; } }; //对象成员a将作为新根
    struct C: virtual A { C() { cout << ‘C’; } };
    struct D { D() { cout << ‘D’; } };
    struct E: A { E() { cout << ‘E’; } };
    struct F: B, virtual C { F() { cout << ‘F’; } };
    struct G: B { G() { cout << ‘G’; } };
    struct H: virtual C, virtual D { H() { cout << ‘H’; } };
    struct I: E, F, virtual G, H { E e; F f; I() { cout << ‘I’; } };
    int main()
    {
    I i;
    return 0;
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    输出
    ACABGDAEABFHAEACABFI
    1
    分析:
    1). 做出派生树

    2). 构造顺序
    对象 i 有六棵派生树,树根分别为 I, a(A), a(A) , a(A) , e(E), 和f(F),同名虚基类 C 被合并;
    自左向右,自上而下,依次构造 I 的虚基类 C, G,D。C 和 D 不是派生类,其数据成员也不用调用构造函数,故直接执行其构造函数;G 为派生类,构造G先构造B,构造B线构造对象成员 a;构造类 C输出 C,构造类G 输出 ABG,构造G输出 ABG,构造D 输出 D;综上, 构造I的虚基类输出 CABGD;
    按照自左向右构造基类 E ,F, H 。E为派生类,先构造A,故构造E输出:AE;F为派生类,虚类C已经构造好,只需构造B,而B 需先构造 成员a,够构造F输出ABF;H虚基类已经全部构造完毕,只需输出 H;综上,构造 I 的基类输出 AEABFH;
    按定义输出构造 I 的对象成员e,f,构造 e 输出AE,构造f 输出CABF;综上,构造对象成员e , f 的输出为AECABF;
    最后 i 的构造体 I;
    9.类的存储空间
    多继承派生类包含多个基类的存储空间;
    如果存在虚基类和同名基类,虚基类和同名基类空间是相互独立的。
    如果派生类存在同名的虚基类,同一棵派生树的所有虚基类共享存储空间,虚基类通过偏移指向共享存储空间,该存储空间出现在所有直接基类之后;
    如果基类或派生类存在虚函数,则在派生类存储空间中,包含一个单元存放虚函数入口地址表首地址;
    派生类的存储空间不包括基类、虚基类和对象成员的静态数据成员。
    文章最后发布于: 2019-10-25 21:33:26
    展开阅读全文
    有 0 个人打赏
    C++类继承
    阅读数 973

    C++类继承文章目录C++类继承1.is-a继承1.1公有继承1.2私有继承1.3保护继承2.has-a关系3.多态公有继承3.1特性:3.2虚函数实现原理4.纯虚函数和抽象基类5.多继承、多重继承和…
    博文
    来自: Afanda

    C++中类的多继承
    阅读数 1万+

    在写这一主题的文章之前,在网上找到一篇很非常好的文章C++之继承与多态。就没有必要做重复造轮子的事件了,那就从这篇文章开始吧!在c++中一个类可以从多个基类中派生(即可以有多个父类),这就是多继承。多…
    博文
    来自: 阳光日志
    C++多继承
    阅读数 219

    转载自:https://www.cnblogs.com/shijingjing07/p/5564812.html#top在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派…
    博文
    来自: mayue_web的博客
    C++单继承,多重继承,虚拟继承与内存布局
    阅读数 468

    MultipleInheritance-C++多继承比单继承更复杂,引入了歧义的问题,以及虚继承的必要性;虚继承在大小,速度,初始化,复制的复杂性上有不小的代价,当虚基类中没有数据时还是比较合适的;多…
    博文
    来自: loycine的博客

    c++的继承详解
    阅读数 6622

    一、前言继承是c++语言一个重要的机制,该机制自动地为一个类提供来自另一个类的操作和数据结构,这使得程序员只需在新类中定义已有的类中没有的成分来建立一个新类。二、继承解释继承是类的重要特性。A类继承B…
    博文
    来自: William
    C++(13):多继承(multiple inheritance)
    阅读数 1782

    比较麻烦的多继承,虚拟继承。
    博文
    来自: qcyfred的博客
    [C++] 继承与同名成员变量
    阅读数 700

    C++继承中子类与父类有同名成员变量的情况话不多说,先看下面这个例子:#includeclassBase{public:inta;Base(){a=0;std::cout…
    博文
    来自: Glemontree’s blog
    C++多重继承和基类地址
    阅读数 351

    C++支持多重继承,比如classDerived:publicBase1,publicBase2{???…};?我们熟知的基类指针强转成继承类指针的用法是这样子的:base*p1=…//实际指向der…
    博文
    来自: GoldRoad88的博客
    当C++多继承遇上类型转换
    阅读数 5607

    1由来客户用陈旧的VC++6.0进行项目开发,有一块功能需要我来实现。让一个早就习惯了VS2013的人去使用C++支持不太好的VC6去做开发实在是非常不爽,于是另辟蹊径,打算使用VC++2013开发编…
    博文
    来自: smstong的成长轨迹
    C++ 继承 - jzj_c_love的博客 - CSDN博客
    10-24

    C++ 多继承二义性与虚基类 - 蘇丶的博客 - CSDN博客
    4-12

    c++多继承多态
    阅读数 737

    C++多继承多态的实现如果一个类中存在虚函数,在声明类的对象时,编译器就会给该对象生成一个虚函数指针,该虚函数指针指向该类对应的虚函数表。多态的实现是因为使用了一种动态绑定的机制,在编译期间不确定调用…
    博文
    来自: hackergin的博客
    C++ 多重继承 虚基类 - Timplan的博客 - CSDN博客
    7-1

    C++多继承与虚基类 - 愚 公 - CSDN博客
    6-23

    C++菱形继承中的多继承、多重继承、虚继承实例
    阅读数 87

    C++菱形继承中的多继承、多重继承、虚继承实例1.菱形继承:示意图如下B继承于A,C继承于A,D多重继承于B和C,则创建D类对象时,就会有基类A的两份拷贝。2.多继承:即一个派生类可以有两个或多个基类…
    博文
    来自: 鬼谷子的博客
    关注
    Sofia@Fans
    27篇文章

    排名:千里之外

    关注
    luoweifu
    327篇文章

    排名:306

    关注
    mayue_csdn
    143篇文章

    排名:千里之外

    关注
    傻白兔
    42篇文章

    排名:千里之外

    …(虚基类表指针与虚基类表) - longlovefilm的博客 - CSDN博客…
    10-27

    C++ 类的继承六(多继承的二义性–虚基类) - weixin_306…_CSDN博客
    9-21

    C++继承类的构造函数
    阅读数 337

    C++继承类的构造函数一.内部赋值的构造函数二.用父类指针初始化子类对象的构造函数classstudent{public: intnum; intage; student() …
    博文
    来自: hongzhiyong118的博客
    C++ 多重继承 虚继承 虚函数表 多态
    阅读数 3373

    C++中的多重继承和虚继承是一个非常重要的概念,也是看你是不是懂C++的一个重要的标志之一。这中间包括了运行时多态,虚函数表等等相关概念。多重继承,顾名思义,是一个类继承了多个父类。例如classC:…
    博文
    来自: Troy_Wu的博客
    C++ 类(多继承和虚继承) - 小白的博客 - CSDN博客
    10-27

    C++虚基类和多继承 - weixin_37871174的博客 - CSDN博客
    10-30

    C++类——多继承
    阅读数 636

    多继承的概念:??如果一个派生类从多个基类继承,则称为多继承。多继承的声明:class派生类名:访问控制基类名1,访问控制基类名2,…{成员列表}注意:多个基类的派生类的构造函数执行的顺序与单继承…
    博文
    来自: xiaokunzhang的博客

    1. C++多继承 二义性 虚基类 - weixin_33858336的博客 - CSDN博客
      7-6

    C++_多继承与虚基类 - 思考,思考,再思考~ - CSDN博客
    9-30

    C++继承及多重继承
    阅读数 105

    C++继承及多重继承虚基类C++继承C++类的元素默认都是私有的C++不继承构造和析构函数基础语法classclass_name:InheritanceModebase_class_name{//me…
    博文
    来自: 陈积极的博客
    C++继承和重载
    阅读数 547

    C++继承和重载c++集成继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行时间的效果。当创建一个类时,您不需要重新编写新的数据成员和…
    博文
    来自: 此心光明,亦复何言~
    C++多继承中的二义性问题
    阅读数 762

    在C++中,派生类继承基类,对基类成员的访问应该是确定的、唯一的,但是常常会有以下情况导致访问不一致,产生二义性。??1.在继承时,基类之间、或基类与派生类之间发生成员同名时,将出现对成员访问的不…
    博文
    来自: buknow的博客
    c++在类中继承基类过多导致冲突的解决方案
    阅读数 1896

    在实际的项目过程中某个类有时候很可能我们会继承多个基类,这个时候就会容易造成冲突,但是这些基类我们又必须要使用,不可能说将冲突的基类给删掉,这个时候我们改怎么办呢?这里有一个比较简单的解决方案,就是在…
    博文
    来自: mrailence的博客
    C++总结5——继承与多态
    阅读数 1193

    1.C++的继承继承有3种形式:私有继承、保护继承、公有继承,缺省的继承方式是私有继承。不论哪种继承方式,派生类都是显示的继承类基的保护成员变量和函数和公有成员变量和函数,继承方式只是限定在派生类中这…
    博文
    来自: wendy_keeping的博客

    C++虚继承内存分布
    阅读数 87

    本周抽空看虚继承的时候,研究了下虚继承的对象的内存分布,C++虚继承主要解决了菱形继承访问不明确的问题。上述继承关系,定义DD对象的构造函数输出如下:AABBAACCDD,对象中存在两份AA。若AA存…
    博文
    来自: 急支糖浆的博客
    学会了这些技术,你离BAT大厂不远了
    阅读数 6万+

    每一个程序员都有一个梦想,梦想着能够进入阿里、腾讯、字节跳动、百度等一线互联网公司,由于身边的环境等原因,不知道BAT等一线互联网公司使用哪些技术?或者该如何去学习这些技术?或者我该去哪些获取这些技术…
    博文
    来自: 平头哥的技术博文
    程序员实用工具网站
    阅读数 14万+

    目录1、搜索引擎2、PPT3、图片操作4、文件共享5、应届生招聘6、程序员面试题库7、办公、开发软件8、高清图片、视频素材网站9、项目开源10、在线工具宝典大全程序员开发需要具备良好的信息检索能力,为…
    博文
    来自: 不脱发的程序猿
    shell-【技术干货】工作中编写shell脚本实践
    阅读数 2万+

    在公司项目的开发过程中,需要编写shell脚本去处理一个业务,在编写过程中发现自身对shell脚本的知识不够完善,顾整理一下,本文章主要内容来自菜鸟教程,也添加了一些知识点shell脚本?在说什么是s…
    博文
    来自: web洋仔
    挑战10个最难的Java面试题(附答案)【上】
    阅读数 3万+

    欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),验证通过后,输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术…
    博文
    来自: 华为云官方博客

    我花了一夜用数据结构给女朋友写个H5走迷宫游戏
    阅读数 9万+

    起因又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而怨气满满!而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有…
    博文
    来自: bigsai
    【开发记录】Linux常用命令记录(一)
    阅读数 5234

    记录CentOS下,常用的命令。有时候很难记得清楚,同时方便新来的同学查阅。(将不停的追加和完善)1)查看CPU情况cat/proc/cpuinfo|grep"modelname"&&…
    博文
    来自: 华为云官方博客
    别再翻了,面试二叉树看这 11 个就够了~
    阅读数 4万+

    写在前边数据结构与算法:不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不全面…
    博文
    来自: 一个不甘平凡的码农
    让程序员崩溃的瞬间(非程序员勿入)
    阅读数 15万+

    今天给大家带来点快乐,程序员才能看懂。来源:https://zhuanlan.zhihu.com/p/470665211.公司实习生找Bug2.在调试时,将断点设置在错误的位置3.当我有一个很棒的调试…
    博文
    来自: strongerHuang
    Python面试的一些心得,与Python练习题分享
    阅读数 1万+

    关于基础项目打算招聘一个自动化运维,主要需求是python、Linux与shell脚本能力。但面试几天发现一些问题:简历虚假这个不管哪行,简历含水量大都是普遍存在的,看简历犀利的一比,一面是能力弱的一…
    博文
    来自: 华为云官方博客

    100 个网络基础知识普及,看完成半个网络高手
    阅读数 9万+

    1)什么是链接?链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。2)OSI参考模型的层次是什么?有7个OSI层:物理层,数据链路层,网络层,传输层,会话层,表示层和…
    博文
    来自: 华为云官方博客
    对计算机专业来说学历真的重要吗?
    阅读数 4万+

    我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记…
    博文
    来自: 启舰
    面试官:兄弟,说说基本类型和包装类型的区别吧
    阅读数 2万+

    Java的每个基本类型都对应了一个包装类型,比如说int的包装类型为Integer,double的包装类型为Double。基本类型和包装类型的区别主要有以下4点。…
    博文
    来自: 沉默王二
    第二弹!python爬虫批量下载高清大图
    阅读数 2万+

    文章目录前言下载免费高清大图下载带水印的精选图代码与总结前言在上一篇写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!中,我们在未登录的情况下实现了图虫创意无水印高清小图的批量下载…
    博文
    来自: bigsai
    漫画 | 外行对程序员误会有多深!
    阅读数 1万+

    作者:阿波、纯洁的微笑漫画:宁州枪手程序员如今已经发展成社会的主流职业,以至于街头的王大妈李大爷都能说出一二来,据说他们认为的程序员是这样子的:程序员都是秃头,秃的越狠越…
    博文
    来自: 纯洁的微笑

    动画:用动画给面试官解释 TCP 三次握手过程
    阅读数 2万+

    作者|小鹿来源|公众号:小鹿动画学编程写在前边TCP三次握手过程对于面试是必考的一个,所以不但要掌握TCP整个握手的过程,其中有些小细节也更受到面试官的青睐。对于这部分掌握以及TCP的四次挥手,小鹿将…
    博文
    来自: 一个不甘平凡的码农
    感觉自己不会的东西太多了,不知道如何下手?
    阅读数 2万+

    GitHub8.8kStar的Java工程师成神之路,不来了解一下吗?GitHub8.8kStar的Java工程师成神之路,真的不来了解一下吗?GitHub8.8kStar的Java工程师成神之路,真…
    博文
    来自: HollisChuang’s Blog
    据说中台凉了?唔,真香
    阅读数 9909

    全文长度:2200字阅读时间:8分钟TL;DR(toolongdon’tread)1、业务中台就是流程模板+扩展点2、没法很好抽象就别做中台,没那么多需求和业务线就别做中台。很多同学都会问,啥叫中台,…
    博文
    来自: u010459192的博客
    为什么程序员在学习编程的时候什么都记不住?
    阅读数 1万+

    在程序员的职业生涯中,记住所有你接触过的代码是一件不可能的事情!那么我们该如何解决这一问题?作者|DylanMestyanek译者|弯月,责编|屠敏出品|…
    博文
    来自: CSDN资讯
    500行代码,教你用python写个微信飞机大战
    阅读数 2万+

    这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手/右手有节…
    博文
    来自: Python专栏
    唐僧团队要裁员,你会裁谁?
    阅读数 2万+

    提问:西游记取经团为了节约成本,唐太宗需要在这个团队里裁掉一名队员,该裁掉哪一位呢,为什么?为了完成西天取经任务,组成取经团队,成员有唐僧、孙悟空、猪八戒、沙和尚、白龙马。高层领导:观音项目经理:唐僧…
    博文
    来自: 王学明
    C语言实现推箱子游戏
    阅读数 5万+

    很早就想过做点小游戏了,但是一直没有机会动手。今天闲来无事,动起手来。过程还是蛮顺利的,代码也不是非常难。今天给大家分享一下~ 一、介绍 开发语言:C语言 开发工具:Dev-C++ 5.11 日期:2…
    博文
    大数据学习之Linux基础
    阅读数 1万+

    大数据学习之Linux基础 自定义Linux虚拟机安装网络配置1.node1网络配置2.通过快照克隆虚拟机3.配置其他三个节点虚拟机Linux简单命令shell命令运行原理图1.关机与重启2.判断命令…
    博文
    史上最全的中高级JAVA工程师-面试题汇总
    阅读数 2万+

    史上最全的java工程师面试题汇总,纯个人总结,精准无误。适合中高级JAVA工程师。…
    博文
    Python实现天气查询功能(外加Excel技巧)
    阅读数 1万+

    昨天在网上发现了一个非常方便的天气API,就用Python试着用了一下。参数是挺少的,用起来也方便,但是那个城市代码确实是搞了我好长时间。 一、介绍 我们先来看一下实现的程序有什么功能: 功能也是非…
    博文

    JDK8新特性之stream()
    阅读数 4309

    学习Stream之前建议先学Lambda的相关知识 使用实例: Class Person { private String name; private int age; …
    博文
    飞机大战
    阅读数 1万+

    项目需求: 实现一个简单的飞机大战程序,当消灭掉一个小飞机的时候的5分,当消灭掉一个小蜜蜂的时候有可能火力值增加24也有可能生命值增加1,如果打飞机也就是英雄机和敌人(蜜蜂+小飞机)碰撞之后…
    博文
    只因写了一段爬虫,公司200多人被抓!
    阅读数 7万+

    “一个程序员写了个爬虫程序,整个公司200多人被端了。” “不可能吧!” 刚从朋友听到这个消息的时候,我有点不太相信,做为一名程序员来讲,谁还没有写过几段爬虫呢?只因写爬虫程序就被端有点夸张了吧。…
    博文
    三年一跳槽、拒绝“唯学历”,火速 Get 这份程序员求生指南!
    阅读数 1万+

    根据埃文斯数据公司(Evans Data Corporation)2019 最新统计的数据显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640 万。但在…
    博文
    面试官:谈谈你对mysql索引的认识?
    阅读数 1万+

    引言 大家好,我渣渣烟。我曾经写过一篇《面试官:谈谈你对表设计的认识?》于是呢,决定再来一个mysql的数据库专题,这篇我们就来谈谈关于索引方面的mysql面试题。还是老规矩,讲的是在Innodb存…
    博文

    Docker 大势已去,Podman 万岁
    阅读数 2万+

    前言郑重声明:本文不是 Podman 的入门篇,入门请阅读这篇文章:再见 Docker,是时候拥抱下一代容器工具了Podman 原来是 CRI-O 项目的一部分,后来被分…
    博文
    别在学习框架了,那些让你起飞的计算机基础知识。
    阅读数 2万+

    我之前里的文章,写的大部分都是与计算机基础知识相关的,这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,…
    博文
    JVM之内存结构详解
    阅读数 1万+

    对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug。同时,JVM也是面试环节的中重灾区。今天开始,《JVM详解》系列开启,带大家深入了解JVM相关知识。 我…
    博文
    Java 常用的 4 种加密方式(MD5+Base64+SHA+BCrypt)
    阅读数 5219

    一、工具类 md5加密工具类 public class MD5Utils { private static final String hexDigIts[] = {“0”,"1…
    博文
    了解 MongoDB 看这一篇就够了
    阅读数 7478

    目录 一、简介 二、基本模型 BSON 数据类型 分布式ID 三、操作语法 四、索引 索引特性 索引分类 索引评估、调优 五、集群 分片机制 副本集 六、…
    博文
    Docker技术( 容器虚拟化技术 )
    阅读数 7763

    Docker虚拟化容器技术 第一章 Docker简介诞生背景Docker 介绍虚拟机技术容器虚拟化技术官方网址第二章 Docker安装前提条件安装DockerDocker底层原理Docker…
    博文
    “来我公司写爬虫吗?会坐牢的那种!”
    阅读数 7979

    欢迎关注“技术领导力”博客,每天早上8:30推送 “你交代一下,总共抓了多少数据,在哪些网站抓的,数据干什么用了?看看够在里面呆几年。。。”警察语气凝重地对张强说。 程序员张强(化名),回…
    博文
    教你搭建一套自己的SVN服务器
    阅读数 8493

    想不想自己搭建一套SVN服务器?来吧!Follow me!
    博文
    快速上手Ajax【一篇文章就搞懂】
    阅读数 1万+

    目录:1.什么是 AJAX ?2.快速上手2.1 AJAX工作流程图2.2 readyState 和status3. 具体用法3.1 GET 请求3.2. POST 请求3.3选择GET还是POST?…
    博文
    Python 爬虫(六):使用 Scrapy 爬取去哪儿网景区信息
    阅读数 4154

    都说 Scrapy 强,强不强自己用过才知道。
    博文
    面试官,不要再问我“Java GC垃圾回收机制”了
    阅读数 6310

    Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈。 楔子-JVM内存结构补充 在上篇《JVM之内存结构详解》中有些内容我…
    博文
    必须要会回答的Java面试题(字符串篇)
    阅读数 7530

    最近很多学习java的小白问我字串相关的问题,觉得很有必要整理下,以方便初学者理解字符串以及应对今后面试中考官的提问。…
    博文
    几道经典逻辑推理题,提高你的逻辑思考能力
    阅读数 7807

    整理了一些逻辑推理题,这些逻辑推理题能够提高大家的逻辑思考能力,同时也能给大家的学习带来一定的趣味性。希望大家看到题之后,不要着急看答案,要先独立思考解决。答案的获取可以关注我的公众号:[Albert…
    博文
    五款高效率黑科技神器工具,炸裂好用,省时间
    阅读数 7025

    loonggg读完需要4分钟速读仅需2分钟感觉我好久好久没有给大家分享高质量的软件和插件了。今天周末,难得在家休息一下,痛下决心,分享一些我认为的高效率工具软件给大家。废…
    博文
    黑客入门,从HTB开始
    阅读数 1万+

    Hack the box 是国外的一个靶机平台,里面的靶机包含多种系统类型,并且里面可以利用的漏洞类型多种多样,有很多靶机其实非常贴近实战情景。因此 HTB 是一个很好的学习渗透测试靶场。 之前…
    博文
    为何Google、微软、华为将亿级源代码放一个仓库?从全球最大代码管理库说起…
    阅读数 9377

    作者 | 夕颜编辑 | Just出品 | AI 科技大本营(ID:rgznai100)【导读】2017 年,在当时微软的一篇官方博客中,时任微软云开发服务副总裁的 Bri…
    博文
    动画:用动画给女朋友讲解 TCP 四次分手过程
    阅读数 9003

    作者 | 小鹿 来源 | 公众号:小鹿动画学编程 写在前边 大家好,我们又见面了,做为一个业余的动画师,上次的用动画的形式讲解 TCP 三次握手过程再各大平台收到了广大读者的喜爱,说文章有趣、有…
    博文
    作为技术面试官,我在面试时考虑什么?
    阅读数 6414

    最近一段时间,公司大量进行校招,团队也需要很多社招的岗位,作为某个领域的技术负责人,我也因此经常电话面试和现场面试。 求职者每次可能会事后反思,我这次到底表现如何,下次怎么样才能改进。 作为一个面试官…
    博文
    不就是SELECT COUNT语句吗,竟然能被面试官虐的体无完肤
    阅读数 9348

    数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查。 在数据库的增删改查操作中,使用最频繁的就是查询操作。而在所有查询操作中,统计数量操作更…
    博文
    10步成为一个优秀的Java开发!
    阅读数 1435

    1、拥有坚实的基础并理解面向对象原则 Java开发人员必须深刻理解面向对象编程。如果没有面向对象编程的坚实基础,就无法感受到像Java这样的面向对象编程语言的美感。 如果你不太了解现象对象编程是什么,…
    博文
    程序员必须掌握的核心算法有哪些?
    阅读数 2万+

    由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,…
    博文
    如何通过个人博客赚钱,走上财务自由?
    阅读数 9746

    最近研究个人博客赚钱,看了很多技术人员挣钱的门路的文章,但都只是蜻蜓点水的泛泛而谈,却没有提供具体的方法和策略,也就是挣钱的“术”与“道”。本文与大家分享一下基于个人博客的赚钱方式方法。如果你喜欢这类…

    上一篇:没有了
    下一篇:没有了