浩鲸科技2019校招普通研发类笔试题

做题情况

正确题目数 :12/26
排名 : 前44%

做题的时候陆陆续续在处理公司线上事情,做的结果不理想。
即便如此,还是总结了一波错题。

错题记录

整数类对象与整数型变量

设有下面两个赋值语句:
      a = Integer.parseInt("1024");
      b = Integer.valueOf("1024").intValue();
下述说法正确的是(  a和b都是整数类型变量并且它们的值相等。  )

--- parseInt返回int型数值
--- valueOf返回Integer类型但intValue也返回int型数值

设栈S初始状态为空。元素A,B,C,D,E,F依次通过栈S,若出栈的顺序为D,F,E,C,B,A,则栈S的容量至少应该为?

4

资源的有序分配策略破坏( )条件,是一种死锁预防策略。

所谓死锁(Deadlock),是指多个进程在运行 过程中因争夺资源而造成的一种僵局(DeadlyEmbrace),当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。

死锁的发生必须具备下列四个必要条件。

(1) 互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由 一个进程占用。如果此时还有其它进程请求该资源,则请求者只能等待,直至占有该资源 的进程用毕释放。

(2) 请求和保持条件:指进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。

(3) 不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完 时由自己释放。

(4) 环路等待条件:指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,…,Pn}中的 P0 正在等待一个 P1 占用的资源;P1 正在等待 P2 占用的资源,……,Pn 正在等待已被 P0 占用的资源。

在有序分配资源时,系统将所有资源按类型进行线性排队,并赋予不同的序号。例如, 令输入机的序号为 1,打印机的序号为 2,磁带机为 3,磁盘为 4。所有进程对资源的请求 必须严格按照资源序号递增的次序提出,这样,在所形成的资源分配图中,不可能再出现 环路,因而摒弃了“环路等待”条件。事实上,在采用这种策略时,总有一个进程占据了 较高序号的资源,此后它继续申请的资源必然是空闲的,因而进程可以一直向前推进。

前缀表达式为-+ab-cd/ef,后缀表达式为abcd-+ef/-,对应二叉树的中序遍历序列是()

a+b*(c-d)-e/f

折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,则它将依次与表中哪些元素比较大小,查找结果失败()

20,70,30,50

在公司局域网上ping www.iwhalecloud.com没有涉及到的网络协议是:( )

TCP 

A-- TCP
B-- DNS
C-- ICMP
D-- ARP

ping使用了icmp

下列选项中,降低进程优先级的合理时机是?

进程的时间片用完

A-- 进程刚完成I/O,进入就绪列队
B-- 进程的时间片用完
C-- 进程从就绪态转为运行态
D-- 进程长期处于就绪队列中

下面有关JAVA异常类的描述,说法错误的是?

RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 try{}catch语句块所捕获

A-- 异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception
B-- 非RuntimeException一般是外部错误(非Error),其必须被 try{}catch语句块所捕获
C-- Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉
D-- RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 try{}catch语句块所捕获

请阐述数据库事务的几大特性,针对数据库事务,以mysql为例,该数据库有几种隔离级别,请阐述每种隔离级别所产生的效果。

原子性(Atomicity)

原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

一致性(Consistency)

一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。

隔离性(Isolation)

隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。

关于事务的隔离性数据库提供了多种隔离级别,稍后会介绍到。

持久性(Durability)

持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务以及正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成,否则就会造成我们看到提示事务处理完毕,但是数据库因为故障而没有执行事务的重大错误。

隔离级别

① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
② Repeatable read (可重复读):可避免脏读、不可重复读的发生。
③ Read committed (读已提交):可避免脏读的发生。
④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。

输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

import java.util.*;
public class Main{
    public static void main(String[] arsg){
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        StringBuilder sb = new StringBuilder();
        int[] used = new int[10];
        while(a != 0){
            int t = a % 10;
            a = a / 10;
            if(used[t] != 1){
                sb.append(t);
                used[t] = 1;
            }
        }
        System.out.println(sb);
    }
}

客户关系管理系统中有一张用户(user)表(号码,姓名,失效期,状态)

号码(no):定长字符型(char(10)),主键
姓名(name):变长字符型(varchar(20)),非空
失效期(valid_dt):日期型(date),非空
状态(state):定长字符型(char(1)),非空
状态(state)的值:A:在用(默认);I:停用;X:注销。
1、创建用户表。
2、插入记录(‘2018090001’,‘张三’,date(‘2099-12-31’,‘YYYY-MM-DD’),‘A’)
3、查询2018-09-01(含)尚未过失效期的在用用户。

1create table user (
   no char(10) primary key,
name varchar(2) not null,
valid_dt date not null,
state char(1) not null
)

2insert into user(no, name, valid_dt, state)
values(2018090001, ’张三’, date(2099-12-31, ’YYYY-MM-DD’), ’A’)

3select no, name, valid_dt, state
from user
where valid_dt >= date(2018-09-01, ‘YYYY-MM-DD’)
and state = ‘A’

你可能感兴趣的:(【技术岗面试题集】)