美团点评2017秋招笔试真题-后台开发&系统工程师A
 

下面代码输出的结果是?

public static void main(String args[]) {
 Thread t = new Thread() {
 public void run() {
 print();
 }
 };
 t.run();
 System.out.print(“MT”);
 }
 static void print() {
 System.out.print(“DP”);
 }

DPMT MTDP MTDP和DPMT都有可能 都不输出 正确答案: A   你的答案: A (正确) 解析:start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程,进而调用run()方法来执行任务,而单独的调用run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用start()而不是run() 关于以下程序,正确的说法是? - String s1=“abc” + “def”; - String s2=new String(s1); - if(s1 == s2) - System.out.println(“===succeed==="); - if(s1.equals(s2)) - System.out.println(“===equals() succeed===");

行4与行6都执行 行4执行,行6不执行 行4不执行,行6执行 行4不执行,行6不执行 正确答案: C   你的答案: C (正确) 关于实模式和保护模式的描述正确的是? 实模式下的地址是计算公式是:段值*16+偏移,其中段值16位,偏移16位,访问的地址范围1MB,如果程序访问超过1MB的地址,系统会发生异常 决定实模式与保护模式的关键是CR1寄存器中的PE位,当为0时为实模式,为1位保护模式 在保护模式下,通过调用门,可以实现不同特权级之间的代码转移 保护模式下,共有4个特权级别,0特权级的任务访问3特权级的段时会触发常规保护错误(#GP) 正确答案: C   你的答案: B (错误) 解析:A:超过1MB会取模运算。B:CR0寄存器的PG和PE位。PG是否分页,PE是否保护。D : 0特权等级最高,可以任意访问. 下列需要使用队列做辅助存储空间的操作是? 查找哈希表 先序遍历二叉树 广度优先搜索图 深度优先搜索图 正确答案: C   你的答案: A (错误) 解析:这题大意了 ,广度优先搜索用到队列,因为是先进先出;深度优先搜索用到栈,后进先出,向根节点遍历 若一棵二叉树的前序遍历序列为 a, e, b, d, c,后序遍历序列为 b, c, d, e, a,则根结点的孩子结点是? 只有 e 有 e、b 有 e、c 无法确定 正确答案: A   你的答案: D (错误) 解析:前序遍历:( 根--左--右  )  后序遍历(左--右--根) 是根节点 从前序来看,ebdc 一部分左一部分右 从后序来看,bcde一部分左一部分右       可看到e在两头  所以a只有一个子节点e(可能是左节点,可能右节点) 关于数据库索引,以下说法正确的是? 针对某些字段建立索引,能够有效的减少相关数据库表的磁盘空间占用 针对某些字段建立索引,能够有效的提升相关字段的读与写的效率 常见数据库管理系统,通常使用hash表来存储索引 数据库索引的存在,可能导致相关字段删除的效率降低 正确答案: D   你的答案: D (正确) 解析:A:增加索引会增加磁盘占用 B:建立索引可以提升查询速度,即读速度;但在一定程度上降低写速度 C:数据库一般使用B*树作为索引 D:删除数据需要调整索引,所以会降低效率 把60个糖果分给5个小朋友,每个小朋友至少分到10个糖果,请问有几种分法? 126 330 1001 2973 正确答案: C   你的答案: A (错误) 解析:先每个人分10个,还剩10个,5个小朋友随意分,在剩下的10个糖果中,小朋友得到的数量也可以为空,具体的算法就是把剩下的10个糖果和4个板放在一起,一共14个,选择4个当板,就是C(14,4) 3的102次方结尾数字是? 9 1 3 7 正确答案: A   你的答案: B (错误) 解析:3的N次方尾数是有规律的 3--9--7--1 四个一组循环 102除4余2。这题我居然算错了,渣渣,愧对向旁边妹子借来的草稿纸 下列算法的时间复杂度是 int  fun(int n){  if(n<2){  return 1;  }  return n*fun(n-2); } 0(nlog2n)  0(n) 0(n2) 0(log2n) 正确答案: B   你的答案: C (错误) 解析:复杂度是衡量计算次数而不是计算数据的数量的。这个函数一共只会执行约n/2次 操作。所以是o(n) 关于递归公式的复杂度,可以看看下面的总结表

java美团核销开发 美团系统开发_实模式

下面对于cookie的描述中错误的是? 用于实现session跟踪技术 Cookie是由服务器保存在客户端的文本文件,大小限制在4kb左右 Cookie在服务端与客户端之间往返时通过HTTP Headers进行传输 HTTP请求中的Cookie是加密传递的 正确答案: D   你的答案: D (正确) 解析:于D,在HTTP请求中的cookie是明文传递的,所以安全性成问题。(除非用HTTPS) 以下不属于tcp连接断开的状态是? TIME_WAIT FIN_WAIT_1 SYN_SENT FIN_WAIT_2 正确答案: C   你的答案: C (正确)

下面哪个不是进程间的通信方式?
 

回调 共享内存 消息传递 信号量 正确答案: A   你的答案: A (正确) 解析:进程间的通信方式:管道 信号量 消息队列 信号 共享内存 套接字

以下代码编译不报错的有?

 

class MyString extend String{ 
    private String myString;    
    public MyString(String s){        
        this.myString = s;    
    }    
    public void print(){        
        System.out.print(myString);    
    }
}
class NULL {    
    private String value = null;    
    public void print() {        
        System.out.print(String.format("%s", null));    
    }    
    public void setValue(String value) {        
        this.value = value;    
   }
}

 

class Calculate{    
    private int value = 1; 
    public static double calculate(){  
        return this.value * getDiscountRate(); 
    } 
    public double getDiscountRate(){  
        return 0.5; 
   }
}

 

class MyDouble{ 
    private int  value = 1;    
    public Boolean equals(Object o){       
        if (this == o) 
            return true;       
        if (o == null || getClass() != o.getClass()) 
            return false;       
        MyDouble aMyDouble = (MyDouble)o;       
       return value == aMyDouble.getValue();    
   }    
   public int getValue() {        
       return value;    
   }    
   public void setValue(int value) {        
        this.value = value;    
   }
}

正确答案: B   你的答案: D (错误)

解析:

第一个:1,extends 不是 extend。2,String 是 public final class String 无法继承。

第二个:1,this 只能在对象的方法里用,不能在 static 里面用,static 方法是这个类的方法,是静态的方法里面不能用 this。同理 getDiscountRate() 方法是对象的方法,如果要调用只能先 new 一个对象出来,然后使用这个对象的方法。或者将这个方法改成 static。

第三个:这是 Object 的 equals 方法,这里返回的 boolean 不是 Boolean

public boolean equals(Object obj) {
        return (this == obj);
    }

下面java concurrent包下的4个类中差别最大的一个是?
CountDownLatch
Future
Semaphore
ReentrantLock

正确答案: B   你的答案: C (错误)
解析:A、Semaphore:类,控制某个资源可被同时访问的个数;
B、ReentrantLock:类,具有与使用synchronized方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大;
C、 Future:接口,表示异步计算的结果;

D、 CountDownLatch: 类,可以用来在一个线程中等待多个线程完成任务的类


哪些设计模式能够提高系统扩展性?
singleton
abstract factory
adapter
Decorator
正确答案: B C D   你的答案: B C D (正确)
解析:

A单例模式没有提高扩展性

B工厂方法实现松耦合,可以提高扩展性

C适配器模式可以将一个接口转换成另一个接口,方便引入外部接口

D装饰者模式可以扩展接口功能


下面对多线程和多进程编程描述正确的是?

线程的数据交换更快,因为他们在同一地址空间内
线程因为有自己的独立栈空间且共享数据,不利于资源管理和保护
多进程里,子进程可获得父进程的所有堆和栈的数据;
进程比线程更健壮,但是进程比线程更容易杀掉。
正确答案: A C D   你的答案: A D (错误)
解析:B选项有点模糊,原题:

线程因为有自己的独立栈空间且共享数据,所有执行的开销相对较大,同时不利于资源管理和保护

 有四个整数,用8位补码分别表示为r1=FEH, r2=F2H, r3=90H, r4=F8H。运算结构存入8位寄存器中,不会溢出的是?

 r1*r2
r2*r3
r1*r4
r4*r2
正确答案: A C D   你的答案: B (错误)
解析:用补码表示时8位寄存器所能表示的整数范围为-128到+127。 
r 1 =(15×16+14)-256=-2; 
r 2 =(15×16+2)-256=-14; 
r 3 =(9×16+0)-256=-112; 
r 4 =(15×16+8)-256=-8; 
则r 1 ×r 2 =28,r 2 ×r 3 =1568,r 1 ×r 4 =16,r 2 ×r 4 =112,只有r 2 ×r 3 结果溢出。