广发银行软开后端开发笔试
1、关于synchronized和lock的说法不正确的是:
A.synchronized适用少量同步,lock适用大量同步
B.synchronized是关键字,lock是接口
C.Synchronized无法判断锁状态,lock可以
D.线程异常,sychronized不会自动释放锁,lock会自动释放锁
答案:D,sychronized可以自动释放锁(①执行完代码自动释放,代码出现异常时释放),lock要手动释放
2、下列关于静态方法的说法正确的是
A.静态方法只能访问静态变量
B.抽象方法可以是静态方法
C.static可以用来修饰局部变量
D.静态内部类可直接访问外部类中的变量和方法
答案:D,A选项静态方法可以访问静态变量和静态方法,B选项静态方法在编译的时候已经确定了,无法被重写,而抽象方法就是用来重写的,C选项不可以,局部变量在程序运行时才确定,D可以访问外部类的静态变量和静态方法,所以D正确
3、若事务T对数据已加了S锁,则其他事务对数据R:
A.可加S锁,也可加X锁
B.不能加S锁,可以加X锁
C.可以加S锁,不能加X锁
D.不能加任何锁
答案:C(S锁是共享锁,即读锁,X是排他锁,即写锁)
4、下列程序输出的内容是:
function fn(){
console.log(this);
}
fn({a:100})
A.undefined
B.window
C.{a:100}
D.100
答案:C,在该程序中,函数fn并没有被绑定到任何一个对象上,因此this的值是默认绑定,即当前的执行环境(execution context)或者全局对象,在浏览器中即为window对象。
但是,在函数调用时传入了一个对象{a:100}作为参数,这个对象会被赋值给函数内部的隐式参数arguments[0],并且arguments[0]的属性a的值是100。因此,函数内部使用console.log输出的内容是arguments[0],即对象{a:100}。选项C.{a:100}是正确的输出。
5、关系数据库采用的数据存储形式:(二维表)
6、对稀疏矩阵进行压缩存储的目的(减少存储空间和优化效率)
7、数据操作语言的基本功能不包括
A.描述数据库的访问控制
B.向数据库中插入数据
C.对数据库进行数据排序
D.删除数据
答案:A,A选项是DDL,即定义,其他三个都是DML
8、不能预防死锁的是
A.摒弃互斥条件
B.摒弃请求保持条件
C.摒弃不剥夺条件
D.摒弃环路等待条件
答案:A
9、chrome支持的最小字体
A.12px B.10px C.11px D.14px
答案:A
10.有c1,c2两座城市,它们的人口比率1:4,C1患A病的概率是0.2%,C2患A病的概率是0.02%,现在医院收到一个患A病的患者,他来自C1的概率是多少?(1/5*0.2%)/(1/5*0.2%+4/5*0.02%)
11.以下序列是堆的是
A.16,23,53,31,94,72
B.16,72,31,23,94,53
C.94,23,31,72,16,53
D.16,53,23,94,32,72
答案:A,A是最小堆
12.以下关于闭包的描述错误的是
A.在闭包对应的函数销毁后,闭包依然存在内存中,不会被回收
B.可以使用闭包模拟私有方法
C.所有js函数都是闭包
D.闭包会改动对象的原型链
答案:D,闭包是指能够访问另一个函数中的变量,常见的闭包就是在一个函数中创建另一个函数。
13、关于数据冗余,错误的是
A.数据库中的副本就是冗余数据
B.在数据库设计中,尽可能避免冗余,最好没有冗余
C.数据冗余通常是由于数据库设计引起的
D.通过分类存储,可以有效减少数据冗余,但会增加数据查找复杂性
答案:D分类存储不能直接减少数据冗余,有可能还会增加数据冗余
14、编程题第一题判断一个手机号是哪一个运营商的,或者是合法还是非法,没看懂啥意思然后就没写,直接return一个答案,破解20%
15、编程题第二题
用0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$来表示37进制,输入两个37进制的数,然后计算它们的乘积,这两个数的位数不超过999.
其实这道题的解法就相当于一个37进制的大数相乘,把我们原本实现10进制的大数相乘的程序改一改就行。(但是我在时间结束之后1分钟才调试好)