牛客错题2

来源:互联网 发布:导入mac的视频找不到了 编辑:程序博客网 时间:2024/06/08 03:04

1.JDK提供的用于并发编程的同步器有那些?(A B C)

A:Semaphore  B:CyclicBarrier C :CountDowmLatch  D:Counter

A,Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。
B,CyclicBarrier 主要的方法就是一个:await()。await() 方法没被调用一次,计数便会减少1,并阻塞住当前线程。当计数减至0时,阻塞解除,所有在此 CyclicBarrier 上面阻塞的线程开始运行。
C,直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。
D,Counter不是并发编程的同步器

2.在用堆排序算法排序时,如果进行增序排序,则需要采用“大根堆”(A)

A:对 B :错

因为大根堆每次生成的根都会跟最右侧没有排序的叶子节点进行交换,从而使得越大的元素越放在后面。这个特性使用数组的结构能够很清晰的表现出来。最终得到了升序排列。

3.下面关于servlet service描述错误的是?

A:不管是post还是get方法提交过来的链接,都会在service中处理  B:doGet/doPost则是在javax.servlet.GenericServlet中实现  

C:service()是在javax.servlet.Servlet接口中定义的   D:service判断请求类型,决定调用doGet还是doPost方法

doGet/doPost 则是在 javax.servlet.http.HttpServlet 中实现的。GenericServlet 抽象类 给出了设计 servlet 的一些骨架,定义了 servlet 生命周期,还有一些得到名字、配置、初始化参数的方法,其设计的是和应用层协议无关的。

4.下面哪些属于JSP内置对象及方法?

A :request  B:out C:application D:config

1.request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2.response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
3.session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。是HttpSession类的实例.
4.out对象:out对象是JspWriter类的实例,是向客户端输出内容常用的对象
5.page对象:page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
6.application对象:application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
7.exception对象:exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
8.pageContext对象:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。
9.config对象:config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

5.有关线程的叙述正确的是(C D)

A:可以获得任何独显过的互斥锁定 B:通过继承Thread类或者时间Runnable接口,可以获得对垒中方法的互斥锁定  C:线程通过调用对象的synchronized方法可获得对象的互斥锁定 D:线程调度算法是平台无独立的

A,“任何对象”锁定,太绝对了,你能锁住你没有权限访问的对象 B,继承Thread和实现Runnable接口只是创建线程,而不是锁定。
C,synchronized给对象加了锁。D,线程调度分为协同式调度和抢占式调度,Java使用的是抢占式调度,也就是每个线程将由操作系统来分配执行时间,线程的切换不由线程本身来决定(协同式调度)。这就是平台独立的原因。

6.关于数据结构,下面叙述正确的是(B D)

A:直接选择排序是一种稳定的排序方法  B:哈夫曼树带权路径长度最短的树,路径上权值较大的节点离根较近 C:拓扑排序是指节点值得有序排序

D:当从一个最小堆删除一个元素时,需要把堆尾元素补到堆顶位置,然后再按条件把它逐层向下调整到最合适位置。

A:直接选择排序是不稳定排序   B:哈夫曼树定义 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 C:不是结点的值有序,是结点的逻辑先后关系保持有序。D:堆删除一个元素后就是这么进行的。