2023校招4399笔试

之前暑期实习投过一次,做的比较拉跨,这次感觉还可以,思路基本上差不多,就是具体的实现,二三题都是只写了一个最后的函数,不知道对不对。

TCP服务端调用API顺序

应该是先绑定端口,再开始监听,接收到客户端请求建立连接,接受或发送数据,最后关闭连接。
bind listen accept recv/send close

颜色混和的RGB值,这个不会

查了一下好像是透明度啥的,没咋用过

二分查找次数,这个遇到过挺多次

偶数直接除二找下标,奇数找中间
每次找的都是完全没有找过的那部分,中间那个不用纠结
在这里插入图片描述

掷色子的概率

总共36种情况,大于8的
6-6,6-5,6-4,6-3
5-5,5-4
这6种,所以是1/6

出入栈顺序

这个什么线程,原子锁的意思就是,现在两个栈,一个栈入栈的时候就不能同时出栈,在某个时刻只能进行入栈或者出栈的其中之一操作

epoll

IOCP(I/O Completion Port,I/O完成端口)是Windows操作系统中伸缩性最好的一种I/O模型。 1 I/O 完成端口是应用程序使用线程池处理异步 I/O 请求的一种机制。 处理多个并发异步I/O请求时,使用 I/O 完成端口比在 I/O 请求时创建线程更快更高效。

虚函数

https://blog.csdn.net/snowsnowsnow1991/article/details/51925807
在这里插入图片描述

父子类构造函数顺序

首先说说构造函数,大家都知道构造函数里就可以调用成员变量,而继承中子类是把基类的成员变成自己的成员,那么也就是说子类在构造函数里就可以调用基类的成员了,这就说明创建子类的时候必须先调用基类的构造函数,只有这样子类才能在构造函数里使用基类的成员,所以是创建子类时先调用基类的构造函数然后再调用自己的构造函数。通俗点说,你要用某些物品,但这些物品你没办法自己生产,自然就要等别人生产出来,你才能拿来用。

 接着就是析构函数了,上面说到子类是将基类的成员变成自己的成员,那么基类就会只存在子类中直到子类调用析构函数后。做个假设:假如在基类的析构函数调用比子类的先,这样会发生什么事呢?类成员终止了,而类本身却还在,但是在类存在的情况下,类成员就应该还存在的,这不就产生矛盾了吗?所以子类是调用自身的析构函数再调用基类的析构函数。

 现在到了虚函数了,virtual主要作用是在多态方面,而C++的多态最主要的是类的动态绑定,动态绑定则是指将子类的指针或引用转换成基类对象,基类对象就可以动态判断调用哪个子类成员函数。这就说明在没有子类指针或引用转换为基类对象的话,virtual没有存在意义(纯虚函数除外),也就是有没有virtual都是调用其自身的成员函数。通过这些分析,对于virtual就有了眉目了。当子类指针或引用转换为基类时,若基类中有用virtual定义的函数,被子类重写后,此基类对象就会根据子类调用子类中的重写后的函数,而不是基类中的函数;反之,若是基类中没有用virtual定义,则不管基类被赋值的是哪个子类的值,调用的都是基类的成员函数(当然指的值子类重载的基类函数,不然就算要调用子类特有的成员函数也会编译不过)。

指针数组

在这里插入图片描述
hello\0
5-0

运算顺序

在这里插入图片描述

编程题

非零完全平方和的问题
岛屿联通问题
岛屿联通及面积周长问题

后面两个做法类似,广度优先搜素,前面那个用数组保存记录了一下之前的平方数,也挺快做出来了。
注意4399笔试最后应该人工核验的,所以重在思路而非结果。

4399⼤数据笔试题 今天晚上参加了厦门 今天晚上参加了厦门4399公司的⼤数据笔试,⾃⼰没有拍下题⽬,⼀下是根据⾃⼰在草稿纸上简要记录回忆下 公司的⼤数据笔试,⾃⼰没有拍下题⽬,⼀下是根据⾃⼰在草稿纸上简要记录回忆下 写出来的,具体的选项记不起来,⼤体题⽬在下⾯,欢迎⼤家给出⾃⼰的见解答案 写出来的,具体的选项记不起来,⼤体题⽬在下⾯,欢迎⼤家给出⾃⼰的见解答案 ⼀、选择题 ⼀、选择题 1.四个⼟豪在⼀次聚会中⽐拼财产的逻辑推理题。 A:四个⼈中,B最富。 B:四个⼈中,C最富。 C:我不是最富有的。 D:C⽐我富,A⽐C富。 已知,其中只有⼀个⼈在说假话。 请问:四个⼈中谁最富?从最富到最不富的顺序应该怎么排? 答案:A、B两⼈的答案不同,所以⼀定有⼀个⼈在说谎。也就是说,C和D说的都是实话。所以,C不是最富的,也就是说B说的是假 话。这样可以得到顺序为:B、A、C、D。 2.与HDFS类似的框架有哪些? 3.下⾯哪⼀个程序与NameNode在⼀个节点上启动? A. SecondaryNameNode B. DataNode C. TaskTracker D. JobTracker 答案:A 4.哪个是RDD的窄依赖? 5.HBase的RowKey的设计原则是什么? 6.HBase的存储底层是什么? 答案:HBase中的所有数据⽂件都存储在Hadoop HDFS⽂件系统上,主要包括上述提出的两种⽂件类型: HFile,HBase中KeyValue数据的存储格式,HFile是Hadoop的⼆进制格式⽂件,实际上StoreFile就是对HFile做了轻量级包装, 即StoreFile底层就是HFile HLog File,HBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File 7.Scala语⾔的闭包描述哪⼀项不是正确的? 8.Kafka⾼吞吐的原因? 答案: 顺序读写磁盘,充分利⽤了操作系统的预读机制。 linux中使⽤sendfile命令,减少⼀次数据拷贝,如下: 把数据从硬盘读取到内核中的页缓存。 把数据从内核中读取到⽤户空间。(sendfile命令将跳过此步骤) 把⽤户空间中的数据写到socket缓冲区中。 操作系统将数据从socket缓冲区中复制到⽹卡缓冲区,以便将数据经⽹络发出 ⽣产者客户端缓存消息批量发送,消费者批量从broker获取消息,减少⽹络io次数,充分利⽤磁盘顺序读写的性能。 通常情况下kafka的瓶颈不是cpu或者磁盘,⽽是⽹络带宽,所以⽣产者可以对数据进⾏压缩。 9.ZooKeeper的⾓⾊是什么? 答案: Leader ⾓⾊ Leader 服务器是整个zookeeper 集群的核⼼,主要的⼯作任务有两项: 事物请求的唯⼀调度和处理者,保证集群事物处理的顺序性。 集群内部各服务器的调度者。 Follower ⾓⾊ Follower ⾓⾊的主要职责是: 处理客户端⾮事物请求、转发事物请求给leader服务器。 参与事物请求Proposal的投票(Leader发起的提案,要求 Follower投票,需要半数以上follower节点通过,leader才会 commit数据)。 参与Leader选举的投票。 Observer ⾓⾊ Observer 是 zookeeper3.3 开始引⼊的⼀个全新的服务器⾓⾊,从字⾯来理解,该⾓⾊充当了观察者的⾓⾊。观察 zookeeper 集群中的最新状态变化并将这些状态变化同步到 observer 服务器上。Observer 的⼯作原理与 follower ⾓⾊基本⼀致,⽽它 和 follower ⾓⾊唯⼀的不同在于 observer 不参与任何形式的投票,包括事务请求Proposal的投票和leader选举的投票。简单来 说,observer服务器只提供⾮事物请求服务,通常在于不影响集群事务处理能⼒的前提下提升集群⾮事物处理的能⼒。 10.Spark Stage的数量有什么决定? 答案:Partition ⼆、填空题 ⼆、填空题 1.Spark的三种部署模式? 2.RDD有哪些缓存机制? 3.RDD类型有⼏种?每⼀种有哪些操作? 4.map和flatMap的区别是什么? 5.RDD的依赖⽅式? 6.有存储在Hive上的⼀张pay_log表 ser_name pay_money pay_date 1)使⽤SQL语句查询消费总额、消费总次数、消费最⼤的⾦额、消费最⼤的⾦额 2)使⽤SQL语句每⼀天当天消费的总⾦额 3)使⽤SQL语句对消费⾦额进⾏排名(⽤rank()) 4)使⽤SQL语句查询充值⾦额集合(⽤collect_set()) 7.HDFS block的默认值是多少?机架感知配置下分别存放在什么位置? 8
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值