04 2016 档案

摘要:基础内容 1.指针与引用的区别 任何情况下都不能使用指向空值的引用,使用时必须初始化。这使得使用引用时的效率比使用指针要高,因为在使用之前不需要测试它的合法性。 引用总是指向在初始化时指定的对象,以后不能改变。 重载某个操作符时,应该使用引用。 2.尽量使用C++风格的类型转换 static_cas 阅读全文
posted @ 2016-04-20 17:02 Jax.Li 阅读(2170) 评论(0) 推荐(0)
摘要:在Java中有一个很好用的Builder模式实现方法。此处使用C++仿照Java的版本实现Builder模式。 在C++中内部类和外部类是没有直接关系的,不能通过内部类访问外部类的私有对象也不能通过外部类访问内部类的私有对象。所以此处使用friend关键字来增强内部类对于外部类的访问,主要是访问外部 阅读全文
posted @ 2016-04-18 16:50 Jax.Li 阅读(903) 评论(0) 推荐(0)
摘要:1.不要使用auto_ptr。 scoped_ptr,auto_ptr都是表达唯一所有权持有者的,区别在于,scoped_ptr的所有权是从一而终的,auto_ptr则允许用户以很自然的方式转交资源。两者的设计理念都保证同一时刻所有权持有者唯一。 auto_ptr的好处是显而易见的。比如你在用vec 阅读全文
posted @ 2016-04-18 15:33 Jax.Li 阅读(1422) 评论(0) 推荐(0)
摘要:对象创建和销毁 1. 用静态工厂方法代替构造器。 2.遇到多个参数构造器时考虑用构建器。 3.用私有构造器或枚举型强化Singleton。 推荐使用枚举型,可以避免拷贝和重复创建的问题。 4.通过私有构造器强化不可实例化的能力。 5.避免创建不必要的对象。 尽量使用String str = "XXX 阅读全文
posted @ 2016-04-17 16:01 Jax.Li 阅读(352) 评论(0) 推荐(0)
摘要:当一个对象含有多个成员变量且创建对象时需要初始化时,直接使用构造器来初始化会造成使用上的不便。例如 通常的做法是提供重叠构造器,首先提供一个只有必要参数的构造器,然后不断增加包含可选参数的构造器,直至包含所有的可选参数。例如 如果只需要后面的可选参数,但调用的时候必须提供前面的可选参数。而且参数很长 阅读全文
posted @ 2016-04-15 17:35 Jax.Li 阅读(673) 评论(0) 推荐(0)
摘要:1. 网络协议的分层,有四个层次,从下向上分别是: 链路层:也称作数据链路层或网络接口层。主要处理物理接口的细节 网络层:也称作互联网层,处理分组在网络中的活动。在TCP/IP协议族中网络层协议包括IP、ICMP和IGMP。 运输层:为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中有两 阅读全文
posted @ 2016-04-15 13:57 Jax.Li 阅读(366) 评论(0) 推荐(0)
摘要:1.安装MySQL CentOS7中默认安装了MySQL系列的数据库,需要先卸载掉。 查看当前安装的mariadb包: [root@bogon desktop]# rpm -qa | grep mariadb 将它们统统强制性卸载掉: [root@bogon 桌面]# rpm -e --nodeps 阅读全文
posted @ 2016-04-08 20:54 Jax.Li 阅读(13905) 评论(0) 推荐(0)
摘要:Java和C++中都提供了多线程编程的方式,实现的方法也很相似。 其中的主要和区别有: 1.C++中子线程都是在主线程的运行都是在main()方法的生命周期中运行的,而Java的子线程的生命周期可以延续到main()方法的外面。 例如CPP 启动线程之后必须要调用join()让线程正常退出,否则程序 阅读全文
posted @ 2016-04-07 13:56 Jax.Li 阅读(3063) 评论(0) 推荐(0)