【恒生公司2016研发工程师笔试卷选择题分析】

static局部变量相关知识

  1. 静态变量在内存的静态存储区,静态数据一直占有着该存储区单元直到程序结束;
  2. 静态局部变量只声明一次,一旦申请内存成功,不再接受重复申请;
  3. 静态局部变量的作用域与一般局部变量一样,二者区别:一般局部变量在函数调用结束后释放变量占用的存储单元,而静态局部变量不释放。
    :由于静态局部变量在内存中存在的时间较长,即占用内存时间较长,故应尽量少使用static来修饰变量。

恒生公司2016研发工程师笔试卷选择题分析

  1. A.静态变量与常量作用不同:
    static:改变生命周期和限制作用域
    (1)作用于变量
    (2)作用与函数
    const:“只读”
    (1)定义常量
    (2)修饰指针
    (3)修饰函数中的参数和返回值
    B.函数中的静态变量:用static声明,使变量成为静态局部变量,编译时就为变量分配内存,直到程序退出时释放内存,在函数结束后不会被释放
    C.静态变量只进行一次初始化,但是它的值是可以改变的,也就是说可以被赋值
    D.static静态全局变量只能在定义它的文件中使用,作用域不是一个程序的所有源文件。

  2. 公用(public):访问权限最高;除派生类外,外部函数也可以直接访问(无论是成员变量还是成员函数)。
    私有(private):访问权限最低;只能是该类内部函数互相调用,派生类、外部函数都不能访问。
    保护(protect):访问权限中间;该类内部函数、派生类都能访问,外部类、外部函数不能访问
    我们这样来记会更加容易一些,在继承时:
    1、不管采用哪种形式(public, protected或private),基类中的私有成员都不可以被继承;如果非要在派生类中使用基类的私有成员,可以有两种方法:一是使用属性,二是使用友元类或友元函数。
    2、如果采用public形式,则基类除了私有成员的其它所有都被原样的继承到派生类中;即在基类中是public的,在派生类中还是public的,在基类中是protected的,在派生类中还是protected的。
    3、如果采用protected形式,则基类中除了私有成员的其它说有都被以protected的形式继承到派生类中。
    C++中的继承方式有:
    public、private、protected三种(它们直接影响到派生类的成员、及其对象对基类成员访问的规则)。
    (1)public(公有继承):继承时保持基类中各成员属性不变,并且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员。
    (2)private(私有继承):继承时基类中各成员属性均变为private,并且基类中private成员被隐藏。派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。
    (3)protected(保护性继承):继承时基类中各成员属性均变为protected,并且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。

  3. A.只要允许,任何时候都应该添加索引以加快查询速度。(×)
    B.无论记录多少,使用索引都能给查询带来性能提升。(×)
    错误原因:对于表数据量少,插入,更新操作多的表,添加索引可能会使查询速度变慢。
    C.每次update/insert/delete操作都会导致索引被重新修改。(√)
    D.索引可以避免全表扫描。(√)
    正确原因:索引并不适合表频繁的update,
    insert,delete操作,这样会频繁的修改索引,造成性能低下。索引类似于指针访问,又类似于数组的下标访问,所以可以快速定位,避免全局扫描。当全表扫描速度快于索引查询速度时,索引会失效。

  4. 在Java中,哪种数据类型需要的内存最多?
    JAVA语言中定义了8种基本的数据类型,来保存变量。JAVA要求程序中的每一个变量都规定自己的类型。正因为如此,JAVA属于强类型语言,从而不同于JavaScript这样的弱类型脚本语言。
    byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
    short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
    == int==:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
    long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
    float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
    double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
    boolean:只有true和false两个取值。
    char:16位,存储Unicode码,用单引号赋值。
    所以,整型数据类型中,需要内存空间最多的是long。
    Object 是引用数据类型,只声明而不创建实例时,只会在栈内存中开辟空间,默认为空,空占1 bit。new Object()是16个字节,8个字节的Mark Word,4个字节的class类型信息,最后4个字节为填充。

  5. 视图除了进行查询记录外,也可以利用视图进行插入、更新、删除记录的操作,减少对基表中信息的直接操作,提高了数据的安全性。
    在视图上使用INSERT语句添加数据时,要符合以下规则:
    (1)使用INSERT语句向数据表中插入数据时,用户必须有插入数据的权利。
    (2)由于视图只引用表中的部分字段,所以通过视图插入数据时只能明确指定视图中引用的字段的取值。而那些表中并未引用的字段,必须知道在没有指定取值的情况下如何填充数据,因此视图中未引用的字段必须具备下列条件之一。
    该字段允许空值。
    该字段设有默认值。
    该字段是标识字段,可根据标识种子和标识增量自动填充数据。
    该字段的数据类型为timestamp或uniqueidentifier。
    (3)视图中不能包含多个字段值的组合,或者包含使用统计函数的结果。
    (4)视图中不能包含DISTINCT或GROUP BY子句。
    (5)如果视图中使用了WITH CHECK
    OPTION,那么该子句将检查插入的数据是否符合视图定义中SELECT语句所设置的条件。如果插入的数据不符合该条件,SQL Server会拒绝插入数据。
    (6)不能在一个语句中对多个基础表使用数据修改语句。因此,如果要向一个引用了多个数据表的视图添加数据时,必须使用多个INSERT语句进行添加。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

strawberryᝰ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值