Java错题集(五)

本文详细解析了Java中Object类的方法、Collection接口的实现类、线程锁资源的释放操作、Servlet的初始化参数获取方式、循环优化方法及HTTP请求中Cookie值的获取方式。

 

目录

 

java中下面哪些是Object类的方法()

实现或继承了Collection接口的是()

下列哪些操作会使线程释放锁资源?

从以下哪一个选项中可以获得Servlet的初始化参数?

下列哪些方法是针对循环优化进行的

以下哪些方法可以取到http请求中的cookie值()?


 

java中下面哪些是Object类的方法()

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

notify()
notifyAll()
sleep()
wait()

来源:https://www.nowcoder.com/questionTerminal/7f86c9e1a70e4093b51e46022ee0f6d4

1.clone():创建并返回此对象的一个副本。

2.equals(Object obj):指示一个对象是否与此对象"相等"。

3.finalize():当垃圾回收器确定不存在该对象的引用时,有对象的垃圾回收器进行调用,可以人工调用,但是不确定什么时候执行。

4.getClass():返回此Object的运行时的类。

5.hashCode():返回该对象的哈希码值,此方法是为了提高哈希表的性能。

6.notify():唤醒在此对象监视器上等待的单个线程。

7.notifyAll():则是唤醒在此对象监视器上等待的所有线程。

8.toString():返回该对象的字符串表示。

9.wait():在其他线程调用此对象的notify()方法或notifyAll() 方法前,导致当前线程等待。

 

实现或继承了Collection接口的是()

正确答案: B C E   你的答案: A C E (错误)

Map
List
Vector
Iterator
Set

来源:https://www.nowcoder.com/questionTerminal/03162f63b91545a6ac4cbd9c51cfadee

A,Map接口未实现Collection接口

B,List接口的定义为

public interface List<E>extends Collection<E>

C,Vector定义为

public class Vector<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable

Vector实现了List接口自然实现了Collection接口

D,Iterator接口未实现Collection接口

E,

public interface Set<E>extends Collection<E>
Set接口继承自Collection接口

 

下列哪些操作会使线程释放锁资源?

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

sleep()
wait()
join()
yield()

来源:https://www.nowcoder.com/questionTerminal/5438923ad3b941308c33e7300472abca

所谓的释放锁资源实际是通知对象内置的monitor对象进行释放,而只有所有对象都有内置的monitor对象才能实现任何对象的锁资源都可以释放

又因为所有类都继承自Object,所以wait()就成了Object方法,也就是通过wait()来通知对象内置的monitor对象释放,而且事实上因为这涉及对硬件底层的操作,所以wait()方法是native方法,底层是用C写的。

其他都是Thread所有,所以其他3个是没有资格释放资源的

join()有资格释放资源其实是通过调用wait()来实现的

 

 

从以下哪一个选项中可以获得Servlet的初始化参数?

正确答案: C   你的答案: C (正确)

Servlet
ServletContext
ServletConfig
GenericServlet

来源:https://www.nowcoder.com/questionTerminal/4080cf2493f44837b211a46270bf0175

  • ServletConfig对象:servlet配置对象,主要把servlet的初始化参数封装到这个对象中。一个网站中可能会存在多个servletConfig对象,一个servletConfig对象就封装了一个servlet的配置信息。可以在web.xml中通过<init-param></init-param>标签配置初始化参数,通过getInitParameter(String name)或getInitParameterNames()方法来获取初始化参数。注:初始化参数必须在当前的servlet程序中使用。
  • ServletContext对象:servlet上下文对象。一个网站只会创建一个servletContext对象,代表的是整个网站的环境信息。可以在web.xml中通过<context-param></context-param>标签配置全局参数,是通过servletConfig对象来获取servletContext对象的,调用的是getServletContext()方法。注:如果某个参数整个网站的程序都要使用,那么可将该参数设置为全局参数,因为可通过servletContext域对象去获取。在servle中有三个域对象,分别为:ServletContext、HttpServletRequest和HttpSession。

 

下列哪些方法是针对循环优化进行的

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

强度削弱
删除归纳变量
删除多余运算
代码外提

来源:https://www.nowcoder.com/questionTerminal/9c5a9ddea8784c1a81e8648895e0e06b

学习博客:https://blog.youkuaiyun.com/roger_ranger/article/details/78830679

1. 删除多余运算(多余运算在编译期就会自动优化

2. 代码外提

3. 强度削弱

4. 变换循环控制条件

5. 合并已知量和复写传播

6. 删除无用赋值

 

 

以下哪些方法可以取到http请求中的cookie值()?

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

request.getAttribute
request.getHeader
request.getParameter
request.getCookies

来源:https://www.nowcoder.com/questionTerminal/695903546ba84d388fd80b1461a6141c

下面的方法可用在 Servlet 程序中读取 HTTP 头。这些方法通过 HttpServletRequest 对象可用:

1)Cookie[] getCookies()
返回一个数组,包含客户端发送该请求的所有的 Cookie 对象。

2)Object getAttribute(String name)
以对象形式返回已命名属性的值,如果没有给定名称的属性存在,则返回 null。

3)String getHeader(String name)
以字符串形式返回指定的请求头的值。Cookie也是头的一种;

4)String getParameter(String name)
以字符串形式返回请求参数的值,或者如果参数不存在则返回 null。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值