联影医疗社招面经

除了用static的方法实现单例模式,还可以用什么方法     -- 枚举实现单例模式,由于 Java 的 enum 可以跟类一样任意定义方法和属性,所以就完全可以用枚举来实现单例。这是其它语言如 C++、C# 做不到的。    如果枚举值只有 1 个的时候,其实例也就只有 1 个,就完全符合了单例模式的限定
public enum Singleton {
    INSTANCE;

    private SingletonClass instance;

    Singleton() {    //名字可以是SomeThing         this.instance = new SingletonClass();
        System.out.println("枚举类构造函数");
    }

    public SingletonClass getInstance() {
        return this.instance;
    }

}
在你的代码中INSTANCE本身就是一个EnumSingleton类型的引用, 与普通的饿汉式单例相似。

讲一讲观察者模式,观察的对象状态改变是怎么通知到观察者的
讲一讲工厂模式

阻塞io和非阻塞io,io多路复用 有什么区别   - - 简单来说:阻塞是指用户空间(调用线程)一直在等待,而不能干别的事情;非阻塞是指用户空间(调用线程)拿到内核返回的状态值就返回自己的空间,IO操作可以干就干,不可以干,就去干别的事情。

在等待数据阶段,IO分为阻塞IO和非阻塞IO。
1.阻塞IO: 资源不可用时,IO请求一直阻塞,直到反馈结果(有数据或超时)。
2.非阻塞IO:资源不可用时,IO请求离开返回,返回数据标识资源不可用

在使用资源阶段,IO分为同步IO和异步IO。
1.同步IO:应用阻塞在发送或接收数据的状态,直到数据成功传输或返回失败。

2.异步IO:应用发送或接收数据后立刻返回,数据写入OS缓存,由OS完成数据发送或接收,并返回成功或失败的信息给应用。

libevent介绍一下

死锁

socket的api 服务端的和客户端的说一下

11新特性 nullptr 和 右值引用
在C++11前,使用0来做为空指针会比使用NULL来做空指针会让你更加警觉。
但是将NULL定义为0带来的另一个问题是无法与整数的零区分。因为C++中允许有函数重载,所以可以试想如下函数定义情况:
void func(int data);
void func(char* data);
那么在传入NULL参数时,编译器将无法确定到底使用哪个函数定义,造成编译时错误。nullptr在C++11被引入用于解决这一问题,nullptr可以明确区分整型和指针类型,能够根据环境自动转换成相应的指针类型,但不会被转换为任何整型,所以不会造成参数传递错误。


10个节点,怎么实现两两相互通信(场景题,消息队列要在同一个设备里通信,socket适用于C/S模型)  --接入互联网,通过ip进行通信?


#面经##社招##联影医疗##C++工程师#
全部评论
兄弟,是武汉联影社招吗
点赞 回复
分享
发布于 2021-03-30 06:30

相关推荐

4 30 评论
分享
牛客网
牛客企业服务