Java程序员面试题 – 面向对象、线程、JSPServlet

Java程序员面试题 – 面向对象、线程、JSPServlet,第1张

Java程序员面试题 – 面向对象线程、JSP/Servlet

第三、Java面向对象
1、抽象类和接口的区别?
(1)接口可以被多重implements,抽象类只能被单一extends
(2)接口只有定义,抽象类可以有定义和实现
(3)接口的字段定义默认为:public static finl,
(4)抽象类是典型的一个模板方法
2、java中常见的异常类:
(1). java.lang.nullpointerexception “程序遇上了空指针”,
(2). java.lang.arrayindexoutofboundsexception “数组下标越界”,
(3). java.lang.IndexOutOfBoundsException 索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。
(4). java.lang.OutOfMemoryError 内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。

第四、线程
3、sleep() 和 wait() 有什么区别
Sleep是指休眠给定的时间,当这个时间达到之后,线程会再次醒来。
Wait是等待状态,多长时间不清楚,由另一个线程将其唤醒。

、启动一个线程是用run()还是start()?
启动一个线程是调用start()方法,启动线程并调用run方法。
3、线程的基本概念、线程的基本状态以及状态之间的关系
线程是进程内的并发,没有自已内存空间,共享进程的,线程间的通信成本较低。
Java中的线程有四种状态分别是:运行、就绪、挂起、结束。
4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 用什么关键字修饰同步方法?
stop()和suspend()方法为何不推荐使用?

多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被”挂起”的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。

第四、Jsp与servlet的区别 :
1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)
2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.
3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.
Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。

2、JSP中动态INCLUDE与静态INCLUDE的区别?
jsp:include:在运行时调用另一个页面,变量是可以重复的。
<%@include file=””%>:在转译时合在一起,会成为同一个类,变量不可以重复。
3、forward和redirect的区别?
forward: 转发,在下一个页面中,request保留上一个页面中的request的所有值
redirect: 跳转,不传递request对象。

3 、请罗列jsp中的脚本、指令及动作?
指令
<%@page contentType=”text/html;charset=utf-8” language=”java” import=””%> 配置字符集错误页面等等
<%@include file=””%> 包含一下js jsp等
<%@taglib uri=”” prefix=””%> 导包
动作:
<jsp:useBean class=”” id=”” scope=””> 在scope中如果没有实例化一个对象,如果有直接用以前的。
<jsp:getProperty name=”” property=””> 向一个bean中设置属性值
<jsp:forward > jsp页的转发
<jsp:include page=””> 导入一个jsp页面

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4829875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-10

发表评论

登录后才能评论

评论列表(0条)

保存