渣浪电话面

2023-10-30 05:30
文章标签 电话 渣浪

本文主要是介绍渣浪电话面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很吐槽面试官,不想多说。

1、数据库中hash索引和B-tree 索引各自的优点?

  一篇关于B树的介绍,很详细

    

 

 

    B-Tree 索引意味着所有的值都是按顺序存储的,并且每一个叶子页到根节点的距离相同。对索引列是顺序组织存储的,所以适合查找范围数据。例如,在一个基于文本域的索引树上,按字母顺序传递连续的值进行查找是非常适合的。

    适合于全键值键值范围键前缀查找。其中键前缀查找只适合于根据最左前缀的查找。

    一些限制:  如果不是按照索引的最左列开始查找,则无法使用索引。不能跳过索引中的列。如果查询中有个列的范围查询,则其右边所有列都无法使用索引优化查找。

   哈希索引:基于哈希表实现,只有精确匹配索引的所有列的查询才会有效。对每一行数据,存储引擎都会对所有的索引列计算一个哈希码。哈希码是一个比较小的值。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。索引的结构十分紧凑,哈希索引查找的速度非常快。

       一些限制: 哈希索引只能包含哈希值和行指针,而不存储字段值。不是按照索引值顺序存储的,所以也就无法用于排序。不支持部分索引列匹配查找。

  总结:    

       B 树:二叉树,每个结点只存储一个关键字,等于则命中,小于走左结点,大于走右结点;

       B- 树:多路搜索树,每个结点存储 M/2 到 M 个关键字,非叶子结点存储指向关键字范围的子结点;

       所有关键字在整颗树中出现,且只出现一次,非叶子结点可以命中;

       B+ 树:在 B- 树基础上,为叶子结点增加链 表指针,所有关键字都在叶子结点中出现,非叶子结点作为叶子结点的索引; B+ 树总 是到叶子结点才命中;

       B* 树:在 B+ 树基础上,为非叶子结点也增 加链表指针,将结点的最低利用率从 1/2 提高到 2/3 

2、C++中一个类的指针赋值为NULL,用其调用成员函数会出现什么情况?

     很吃惊,正常编译,正常运行,可以调用成员函数。

     先上一段代码:

#include <iostream>
using namespace std;
class B {
public:void foo() { cout << "B foo " << endl; }void pp() { cout << "B pp" << endl; }void FunctionB() { cout << "funB" << endl; }
};
int main()
{B *somenull = NULL;somenull->foo();somenull->pp();somenull->FunctionB();return 0;
}

   先看一下别人关于 C++中静态绑定和动态绑定的介绍,知乎上的回答, 还有这篇博客的讲解很清楚  --->     当类的指针赋值为NULL时,哪些成员函数还可以调用。

   

  1. foo(), pp(), FunctionB()不是virtual。
  2. 这些函数内没有对this解引用

简单地说就是,你给函数传递了错误的参数(指赋值为NULL),但在该函数内部并没有使用该参数,所以其不影响函数的运行。从某种意义上,this 指针可以看做成员函数的第一个参数。只要不访问 this 指针,函数就不会被玩坏。但是如果是虚函数或者调用了类的成员变量就有可能会出现问题,因为虚函数表和类的成员变量都是存在于对象的存储空间中的,

      

class test  
{  
public:  test() {m_num = 0;};  int fun1() {return 1;};  static int fun2() {return 2;};  virtual int fun3() {return 3;};  int fun4() { return m_num;};  private:  int m_num;  
};  int main ()  
{  test *t = NULL;  int res1 = t->fun1();  int res2 = t->fun2();  int res3 = t->fun3();  int res4 = t->fun4();  return 0;  
}  

放到编译器中,fun1,fun2可以正常运行,fun3,fun4运行出错。

 

 

转载于:https://www.cnblogs.com/simplepaul/p/7682346.html

这篇关于渣浪电话面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/305881

相关文章

平板电脑能打电话吗?如何让不支持电话功能的平板获得电话功能?

很多选购平板电脑的朋友,都希望平板能够支持打电话功能。那么市面上所有的平板电脑能打电话吗?如果不能够打电话的平板电脑,有没有什么方法支持能够支持让其电话功能。下面我爱电脑网小编将对这个问题给大家座详细的解答   市面上的平板电脑大致共分为两种版本,一种叫做WiFi版平板电脑,另一种叫做3G版本的平板电脑。首先WiFi版的平板电脑主要通过无线路由器进行通信,有通信的距离限制。而3G版平板电

Android 电话管理器TelephonyManager,获取网络,SIM卡信息

// 获取系统TelephonyManager对象 TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); AndroidManifest.xml package shortcut.song.com.myapplication;import an

智能电话机器人电销- 完美解决企业营销扩展难题

在互联网时代,企业营销已经离不开数字化转型。智能电话机器人电销作为数字化营销的一种方式,受到越来越多企业青睐。那么,什么是智能电话机器人电销?为什么它能够解决企业营销扩展难题?本文将从多个方面进行解读,并分析其商业价值与应用前景。 什么是智能电话机器人电销? 智能电话机器人电销是利用人工智能技术,通过电话呼叫并与潜在客户进行对话,收集信息、建立客户档案、进行客户分类和筛选等一系列营销行为的方式

安卓挂电话解析

在app/phone里的PhoneUtils.java里还有一个hangup函数 static boolean hangup(CallManager cm) {boolean hungup = false;Call ringing = cm.getFirstActiveRingingCall();Call fg = cm.getActiveFgCall();Call bg = cm.getF

安卓通话状态监控之挂电话部分

挂电话部分 在app/phone下 <span style="font-size:18px;"> void handleOnscreenButtonClick(int id) {if (DBG) log("handleOnscreenButtonClick(id " + id + ")...");switch (id) {// Actions while an incoming call

电话催收的优劣势

电话催收相比其他催收方式有哪些优势和劣势? 电话催收是催收业务这个场景最常用的一个方式,因为它无可替代。唯一还有催回欠款可能的,就是上门催,那成本太高了,一般不会选择。 优势方面 电话催收的主要优点包括成本低廉、速度快,能够迅速与债务人建立联系,并根据电话催收的情况为后续催收活动做准备。这种方式不需要像上门催收那样花费大量的时间和交通成本,也不需要像诉讼那样投入巨大的时间、精力和成本。电

9月15号Hik电话面试

1、简历项目 2、knn算法 3、过拟合 4、多态 5、Mat和lplimage区别 6、指针和引用 7、二维数组怎么定义 8、vector置空,判断空 9、编程题:数组连续最大和

TextView自动识别电话,邮箱,电话

TextView自动识别电话,邮箱,电话,并给出相应操作,只需要在TextView中添加 android:autoLink="email|phone|web"即可

Android_system_调用系统联系人拨打电话

tips:github上的项目链接:https://github.com/chengbiao1314/android_system_getContacts.git 获取系统联系人三步,外加拨打电话: 1、添加权限: <uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission