2017校招Java开发笔试题集

美丽联合

  1. 二分查找要求结点 __
    A.有序,顺序存储
    B.有序,链接存储
    C.无序,顺序存储
    D.无序,链接存储
    答案选:A
  2. 引入线索二叉树的目的是()。
    A.加快查找结点的前驱或后继结点的速度
    B.为了能在二叉树中方便插入和删除
    C.为了能方便找到双亲
    D.使二叉树的遍历结果唯一
    答案:A 线索是前驱结点和后继结点的指针,引入线索的目的是加快对二叉树的遍历。
  3. 视图是一个“虚表”,视图的构造基于__
    A.基本表
    B.视图
    C.基本表或视图
    D.数据字典
    答案:A

  4. 下列关于闪存(Flash Memory)的叙述中,错误的是
    A.信息可读可写,并且读、写速度一样快
    B.存储元由MOS管组成,是一种半导体存储器
    C.掉电后信息不丢失,是一种非易失性存储器
    D.采用随机访问方式,可替代计算机外部存储器
    答案: A。闪存是电子可擦除只读存储器(EEPROM)的变种,闪存掉电后信息不丢失,是一种非易失性存储器。采用随机访问方式,可替代计算机外部存储器。闪存是一种半导体存储器,不能实现信息可读可写。删除或重写闪存中的内容是有条件的,而且有次数的限制。闪存与EEPROM不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。

  5. 如果你想列出当前目录以及子目录下所有扩展名为“.txt”的文件,那么你可以使用的命令是
    A. find . -name “*.txt”
    B. ls *.txt
    C. find . “.txt”
    D. ls -d.txt
    答案:A 注意:ls 只能显示当前目录的文件

  6. 0.6332 的数据类型是()
    A. flaot
    B. double
    C. Float
    D. Double
    答案:B

  7. 下列选项中,降低进程优先级的合理时机是( )。
    A.进程的时间片用完
    B.进程刚完成I/O,进入就绪队列
    C.进程长期处于就绪队列中
    D.进程从就绪状态转为运行态
    答案:A [解析] 本题目考查进程的基本状态转换。完成I/O进入就绪队列的进程尚未执行,不能降低其优先级;长期处于就绪队列的进程应提高其优先级;进程刚刚转入运行态,也不应降低其优先级;当进程的时间片用完,调度程序需要调度其他程序进入处理机执行,此时降低进程优先级是合理的。因此应该选A。

  8. 在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 。
    A. -m
    B. -d
    C. -f
    D. -p
    答案:D.
    -m 设置用户权限
    -p 如果路径中某些目录不存在,系统会自动创建
    mkdir没有-d和-f选项

  9. 这里写图片描述

答案:B
这里写图片描述

  1. 现有1G数据需要排序,计算资源只有1G内存可用,下列排序方法中最可能出现性能问题的是归并排序
    堆排序
    插入排序
    归并排序
    快速排序
    选择排序
    冒泡排序
    这里写图片描述

  2. 关于TCP可靠数据传输服务的论述,正确的是一旦收到3个冗余ACK,TCP就执行快速重传
    A. 只有当超时事件发生,TCP才会执行重传
    B. 每次TCP重传时,都重新为定时器设置一个固定时间间隔
    C. TCP接收方不需要对乱序到达的分组进行确认
    D. 一旦收到3个冗余ACK,TCP就执行快速重传
    https://www.nowcoder.com/questionTerminal/5bbed85d9afa400ca84b784badba47ec?orderByHotValue=1&page=1&onlyReference=false

  3. Java中用正则表达式截取字符串中第一个出现的英文左括号之前的字符串。比如:北京市(海淀区)(朝阳区)(西城区),截取结果为:北京市。正则表达式为(A)
    A. “.*?(?=\()”
    B. “.*?(?=()”
    C. “.*(?=\()”
    D. “.*(?=()”
    解析:https://www.nowcoder.com/questionTerminal/758401c48ddc4deebb955821e175614d?toCommentId=150057

  4. 通过POP3 协议接收邮件时,使用的传输层服务类型是(D)。
    A. 无连接不可靠的数据传输服务
    B. 无连接可靠的数据传输服务
    C. 有连接不可靠的数据传输服务
    D. 有连接可靠的数据传输服务
    解析:POP3 建立在 TCP 连接上,使用的是有连接可靠的数据传输服务。

14.下面有关内核线程和用户线程说法错误的是?C
A. 用户线程因 I/O 而处于等待状态时,整个进程就会被调度程序切换为等待状态,其他线程得不到运行的机会
B. 内核线程只运行在内核态,不受用户态上下文的影响。
C. 用户线程和内核线程的调度都需要经过内核态。
D. 内核线程有利于发挥多处理器的并发优势,但却占用了更多的系统开支。
解析:https://www.nowcoder.com/questionTerminal/edad08def82b4f31834b63f29f182ace

  1. 下面有关forward和redirect的描述,正确的是() ?
    A. forward是服务器将控制权转交给另外一个内部服务器对象,由新的对象来全权负责响应用户的请求
    B. 执行forward时,浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址
    C. 执行redirect时,服务器端告诉浏览器重新去请求地址
    D.forward是内部重定向,redirect是外部重定向
    E. redirect默认将产生301 Permanently moved的HTTP响应
    正确答案:B C D
    解析:https://www.nowcoder.com/questionTerminal/e14e58a3d78346be9540a3fbefd62ee3?source=relative

16.输出结果是:

public class Test{
    public static Test t1=new Test();  

    {  
        System.out.println("blockA");  
    }  
    static  {  
        System.out.println("blockB");  
    }  
    public static void main(String[] args)   
    {  
        Test t2=new Test();       
    }  
}  

答案:
blockA
blockB
blockA
解析:http://blog.csdn.net/u010996775/article/details/66478817


51信用卡

  1. 以下对于缺省路由描述正确的是( )。
    A.缺省路由是优先被使用的路由
    B.缺省路由是最后一条被使用的路由
    C.缺省路由是一种特殊的静态路由
    D.缺省路由是一种特殊的动态路由
    E.缺省路由是默认的路由
    答案:B,C
    [解析] 缺省路由是路由表中的一条记录,指明信息包的目的地不在路由表中时的路由,是一种特殊的静态路由,就是在没有找到匹配的路由时使用的路由,是路由器最后使用的一条路由。

  2. 关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是( )?
    A. 它负责处理HTTP请求
    B. 加载配置文件
    C. 实现业务操作
    D. 初始化上下应用对象ApplicationContext
    答案:C
    链接:https://www.nowcoder.com/questionTerminal/15a92560e4634f73a33933f2128c0743?orderByHotValue=0&pos=90&mutiTagIds=570
    来源:牛客网

SpringMVC的原理:
SpringMVC是Spring中的模块,它实现了mvc设计模式的web框架,首先用户发出请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handler,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handler进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染并把数据装入到request域,返回给用户。
DispatcherServlet作为springMVC的前端控制器,负责接收用户的请求并根据用户的请求返回相应的视图给用户。
实现业务操作时在service层,所以C答案错误。

3.下列叙述中错误的是
A.在数据库系统中.数据的物理结构必须与逻辑结构一致
B.数据库技术的根本目标是要解决数据的共享问题
C.数据库设计是指在已有数据库管理系统的基础上建立数据库
D.数据库系统需要操作系统的支持
答案:A

[解析] 本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项A的说法是错误的。 数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。 数据库设计是在数据库管理系统的支持下,按照应用的要求,设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计包含两方面的内容:一是结构设计,也就是设计数据库框架或数据库结构;二是行为设计,即设计基于数据库的各类应用程序、事务等。因此,选项C的说法是错误的。 数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项D的说法是正确的。因此,本题的正确答案是选项A。

4.不可以和抽象abstract关键字共存的关键字
1) private :因为一个abstract方法需要被重写,所以不能修饰为private;
2)final:因为一个abstract方法需要被重写。被final修饰的方法是不能被重写的,所以不能同final共存;
3) static:因为一个abstract方法没有方法体。静态方法需要对方法体执行内容分配空间,所以不能同static共存;(abstract是没有实现的,不能产生对象,而是static是属于类的,类本身是已经存在的对象)
4) synchronized: 是同步的,然而同步需要具体的操作才能同步,但, abstract是只有声明没有实现的(即,使用synchronized关键字的是需要有具体的实现同步的操作的,但是使用abstract是只有声明而没有实现的,这样就产生了冲突)
5) native:他们本身的定义就是冲突的,native声明的方法是移交本地操作系统实现的,而abstract是移交子类对象实现的,同时修饰的话,导致不知道谁实现声明的方法


海康威视

  1. 按照学生平均成绩(avg_grade) 将 students 表中的数据检索出来,下面 SQL 语句正确 的是(ACD )
    A) SELECT * FROM students ORDER BY avg_grade
    B) SELECT * FROM students GROUP BY avg_grade ASC
    C) SELECT * FROM students ORDER BY avg_grade DESC
    D) SELECT * FROM students ORDER by avg_grade asc

  2. 知识点:标识符
    Java标识符的命名规则:
    1) 标识符由字母、数字、下划线“_”、美元符号“$”或者人民币符号“¥”组成,并且首字母不能是数字
    2) 不能把关键字和保留字作为标识符。

  3. 使用Executors创建线程池的种类线程池的几种常见的创建的方式
    1)Executors.newCachedThreadPool();创建大小不固定的线程池
    2)Executors.newFixedThreadPool(2);创建固定数量线程的线程池
    3)Executors.newSingleThreadExecutor();创建单线程的线程池
    4)Executors.newScheduledThreadPool(2);创建定时线程

  4. jsp的四种会话跟踪技术
    1)隐藏域:适合不需要大量数据存储的会话应用。
    2)url重写:可以通过在url后携带参数,和服务器请求一起发送,这些参数名字为键值对形式。
    3)session:使用setAttribute(String str,Object obj)方法将对象捆绑到一个会话
    4)cookie:一个Cookie是一个小的,已命名数据元素。服务器使用SET-Cookie字段将它作为HTTP响应的一部分传送到客户端,客户端被请求保存Cookie值,在对同一服务器的后续请求使用一个Cookie头标将之返回到服务器。与其它技术比较,Cookie的一个优点是在浏览器会话结束后,甚至在客户端计算机重启后它仍可以保留其值。

  5. J2EE中,HttpServletRequest类的( )方法用返回与当前请求相关联的会话,如果没有,则返回null。
    request.getSession(false); 返回当前 Session,如果没有则返回null;
    request.getSession(true);方法等同于request.getSession(); 同样都是返回当前Session,如果没有则创建一个且返回新创建的Session;

  6. 6.
public class  Main{
    private static int a;
    public static void main(String[] args) {
        Integer b = 0;
        System.out.println(a==b);
    }
}

输出结果:true


招行信用卡中心

  1. 编程题,求两个正整数a和b的所有不大于n的公倍数。
    提示:求出最大公约数,然后利用(a*b)/最大公约数=最小公倍数,最后将最小公倍数依次增大一倍后与n比较大小,如果不大于n,则cunt进行+1操作。
    关键在于求最大公约数,代码如下:
private static int getGCD(int a, int b) {  
       int mod = a % b;  
        while (mod != 0) {  
            a = b;  
            b = mod;  
            mod = a % b;  
        }  
        return b;  
}  

斐讯

  1. 选择题中,看代码问题,主要考察重载和重写概念重写和重载
  2. 抽象类与接口的区别
  3. sleep()方法和yield()方法的区别sleep()、wait()、yield()和join()方法特点及区别

京东

有些题目只是类似相同。。。。。

  1. 若一序列进栈顺序为e1,e2,e3,e4,e5,问存在多少种可能的出栈序列()
    A. 41 B. 42 C. 43 D. 44
    这里写图片描述
    这里写图片描述

  2. 看代码,知识点为:&与&&,|与||的区别
    2.1 使用&时,当前面的表达式为假的时候,程序依旧会继续执行后面的表达式;使用&&时,当前面的表达式结果为假时则不会再执行后面的表达式;
    2.2 使用|时,若前面的表达式为真时,程序会继续执行后面的表达式;使用||时,若前面的表达式结果为真,则程序不会再执行后面的表达式。

  3. 以下哪项陈述是正确的?
    A. 垃圾回收线程的优先级很高,以保证不再 使用的内存将被及时回收
    B. 垃圾收集允许程序开发者明确指定释放 哪一个对象
    C. 垃圾回收机制保证了Java程序不会出现内存溢出
    D. 进入”Dead”状态的线程将被垃圾回收器回收
    E. 以上都不对
    答案:E
    解析:
    A: 垃圾回收在jvm中优先级相当相当低。
    B:垃圾收集器(GC)程序开发者只能推荐JVM进行回收,但何时回收,回收哪些,程序员不能控制。
    C:垃圾回收机制只是回收不再使用的JVM内存,如果程序有严重BUG,照样内存溢出。
    D:进入DEAD的线程,它还可以恢复,GC不会回收

当程序运行时,至少会有两个线程开启启动,一个是我们的主线程,一个是垃圾回收线程,垃圾回收线程的priority(优先级)较低。程序员是不可以显示的调用垃圾回收器回收内存的,但是可以使用System.gc()方法建议垃圾回收器进行回收,但是垃圾回收器不一定会执行。 Java的垃圾回收机制可以有效的防止内存溢出问题,但是它并不能完全保证不会出现内存溢出。例如当程序出现严重的问题时,也可能出现内存溢出问题。

4.Linux命令中用 free 来检查内存情况
5.

public class  Main{
    public static void main(String[] args) {
        Main m =new Main();
        m.method(null);
    }

    public void method(Object o){
        System.out.println("o");
    }

    public void method(String s){
        System.out.println("s");
    }
}

执行结果:s
原因:String类型可以为null,所以执行第二个method方法,优先匹配非Object类型参数。
6.

import java.util.ArrayList;
import java.util.List;

class T{}
class A extends T{}
class B extends T{}
public class  Main{

    public static void main(String[] args) {
        List<Class<? extends T>> list = new ArrayList<>();
        list.add(A.class);
        list.add(B.class);
        list.add(T.class);
        System.out.println("OK");
    }
}

主要考察:泛型,list中可以添加什么类型的class。

爱奇艺

知识点:
1. java中URLEncode和URLDecode用于完成普通字符串和 application/x-www-from-urlencoded MIME字符串之间的相互转化。(如果传递的字符串中包含非西欧字符的字符串,会被转化成%XX%XX XX为十六进制的数字)

        try {  
            // 将application/x-www-from-urlencoded字符串转换成普通字符串    
            String keyWord = URLDecoder.decode("%C4%E3%BA%C3", "GBK");    
            System.out.println(keyWord);  //输出你好  
            // 将普通字符创转换成application/x-www-from-urlencoded字符串    
            String urlString = URLEncoder.encode("你好", "GBK");  //输出%C4%E3%BA%C3  
            System.out.println(urlString);  
        } catch (UnsupportedEncodingException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }   
  1. 2.

美图

  1. Spring五个事务隔离级别和七个事务传播行为 https://www.2cto.com/kf/201312/264064.html

  2. 下面哪种情况会导致持久区jvm堆内存溢出?https://www.nowcoder.com/questionTerminal/1999635c228d49be84eb7623108be35e?pos=400&mutiTagIds=570&orderByHotValue=1

  3. 哪些语句可以正确创建Lock对象?(BCD)
    A.Lock lock = new Lock();
    B.Lock lock = new ReentrantLock();
    C.Lock lock = new ReentrantLock(true);
    D.Lock lock = new ReentrantLock(false);

  4. 工厂模式有哪几种?http://laixiancai.cnblogs.com/p/4808087.html

  5. java.util.Collections还用了哪种设计模式?(策略模式)

  6. 垃圾回收算法G1的特点
    6.1 并行与并发
    6.2 分代收集(不需要其他收集器的配合就可以独立管理整个GC堆)
    6.3 空间整合:与CMS的“标记—清理”算法不同,G1从整体看来是基于“标记—整理”算法实现的收集器。
    6.4 可预测的停顿

  7. Java中的String是否是线程安全的?(是线程安全的)
    因为String类是final类型的,不可变的,所以是线程安全的。

  8. 新建一个流对象,下面哪个选项的代码是错误的?(B)
    A)new BufferedWriter(new FileWriter(“a.txt”));
    B)new BufferedReader(new FileInputStream(“a.dat”));
    C)new GZIPOutputStream(new FileOutputStream(“a.zip”));
    D)new ObjectInputStream(new FileInputStream(“a.dat”));

  9. Java垃圾回收算法CMS执行顺序?http://www.cnblogs.com/xiaoxi/p/6486852.html http://blog.csdn.net/linsongbin1/article/details/51686158

  10. CMS的缺点有哪些?
    10.1 CMS收集器对CPU敏感
    10.2 无法处理浮动垃圾
    10.3 收集会产生大量空间碎片

  11. Java运行时异常有?
    RuntimeException异常主要包括四种异常:空指针异常,数组下标越界异常、类型转换异常、算术异常。由java虚拟机自动抛出和自动捕获。

public class  Main{
    public static void main(String[] args) {
        byte x = 64;
        int i;
        byte y;
        i=x<<2;
        y=(byte)(x<<2);
        System.out.println(i+" "+y);//256 0   若x=67  则为268 12   byte存储范围-128~127  8个字节 
    }
}
public class  Main{
    public static void main(String[] args) {

        int[] arr={9,12,2,11,2,2,10,9,12,10,9,11,2};
        int n = arr.length;
        int x =arr[0];
        for(int i=1;i<n;i++){
            x=x^arr[i];
        }
        System.out.println(x);  //9 异或操作:相同为0,不同为1   
    }
}

总结:垃圾回收GC很重要


多益

  1. 在Applet的关键方法中,下列哪个方法是关闭浏览器以释放Applet占用的所有资源。
    A.init( )
    B.start( )
    C.paint( )
    D.destroy( )
    正确答案:D。
    解析:init( )方法用于完成主类实例的初始化,start( )方法用于启动浏览器运行Applet的主线程,paint( )方法用于在Applet的界面中显示文字、图形和其他界面元素。

  2. constructor必须与class同名,但方法不能与class同名?下列说法正确的有( )
    A. class中的constructor不可省略
    B. constructor必须与class同名,但方法不能与class同名
    C. constructor在一个对象被new时执行
    D. 一个class只能定义一个constructor
    正确答案:B。

  3. 新建一个流对象,下面哪个选项的代码是错误的?()
    A)new BufferedWriter(new FileWriter(“a.txt”));
    B)new BufferedReader(new FileInputStream(“a.dat”));
    C)new GZIPOutputStream(new FileOutputStream(“a.zip”));
    D)new ObjectInputStream(new FileInputStream(“a.dat”));
    答案:B
    Java流类图结构:
    这里写图片描述

  4. 关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是( )?
    A.它负责接收HTTP请求
    B.加载配置文件
    C.实现业务操作
    D.初始化上下应用对象ApplicationContext
    答案:C。
    SpringMVC的原理:
    SpringMVC是Spring中的模块,它实现了mvc设计模式的web框架,首先用户发出请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handler,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handler进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染并把数据装入到request域,返回给用户。
    DispatcherServlet作为springMVC的前端控制器,负责接收用户的请求并根据用户的请求返回相应的视图给用户。
    实现业务操作时在service层,所以C答案错误。

填空题
1. “b”+10 和’b’+10的输出结果。答案:b10和108。

简单题
1. Java中for(;;)和while(true)的区别
2. 一个完整Java Applet的生命周期包含哪些。
Init:每次被载入的时候都会被初始化。
Start:开始执行applet。
Stop:结束执行applet。
Destroy:卸载applet之前,做最后的清理工作。

编程题
1. 在一个字符串中找到第一个只出现一次的字符。
2. 有N件物品和一个容量为V的背包,第i件物品的费用是c,价值是w,求解将哪些物品装入背包可使这些物品的费用总和不超过背包的容量,且价值总和最大。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值