Java简答面试题(二)
1.Java 中的两种异常类型是什么?它们有什么区别?
Java 中有两种异常:受检查的 (checked) 异常和不受检查的 (unchecked) 异常。不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。相反,受检查的异常必须要用 throws 语句在方法或者是构造函数上声明。
Throwable是所有异常的根,java.lang.Throwable
Error是错误,java.lang.Error
Exception是异常,java.lang.Exception
2.Java 中 Exception 和 Error 有什么区别?
Exception 和 Error 都是 Throwable 的子类。 Exception 用于用户程序可以捕获的异常情况。 Error 定义了不期望被用户程序捕获的异常。
3.throw 和 throws 有什么区别?
throw 关键字用来在程序中明确的抛出异常,相反, throws 语句用来表明方法不
能处理的异常。每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。
4.finally 代码块和 finalize() 方法有什么区别?
throw 关键字用来在程序中明确的抛出异常,相反, throws 语句用来表明方法不能处理的异常。每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。
5.什么是 Applet ?
java applet 是能够被包含在 HTML页面中并且能被启用了 java 的客户端浏览器执行的程序。 Applet 主要用来创建动态交互的 web应用程序。
6.Applet 和普通的 Java 应用程序有什么区别?
applet 是运行在启用了 java 的浏览器中, Java 应用程序是可以在浏览器之外运行的独立的 Java 程序。但是,它们都需要有 Java 虚拟机。进一步来说, Java 应用程序需要一个有特定方法签名的 main 函数来开始执行。Java applet 不需要这样的函数来开始执行。最后, Java applet 一般会使用很严格的安全策略, Java 应用一般使用比较宽松的安全策略。
7.什么是 JDBC?
JDBC是允许用户在不同数据库之间做选择的一个抽象层。 JDBC允许开发者用 JAVA写数据库应用程序 ,而不需要关心底层特定数据库的细节。
8.解释下驱动 (Driver) 在 JDBC中的角色。
JDBC驱动提供了特定厂商对 JDBCAPI 接口类的实现,驱动必须要提供 java.sql
包下面这些类的实现:Connection , Statement , PreparedStatement , CallableStatement , ResultSet 和Driver 。
9.PreparedStatement 比 Statement 有什么优势?
PreparedStatements 是预编译的,因此,性能会更好。同时,不同的查询参数
值, PreparedStatement 可以重用。详见:
---->https://blog.csdn.net/weixin_43258908/article/details/88583595
10.数据库连接池是什么意思?
像打开关闭数据库连接这种和数据库的交互可能是很费时的,尤其是当客户端数量增加的时候,会消耗大量的资源,成本是非常高的。可以在应用服务器启动的时候建立很多个数据库连接并维护在一个池中。连接请求由池中的连接提供。在连接使用完毕以后,把连接归还到池中,以用于满足将来更多的请求。
11.HTTP 响应的结构是怎么样的?
HTTP响应由三个部分组成:
状态码 (Status Code):描述了响应的状态。可以用来检查是否成功的完成了请
求。请求失败的情况下,状态码可用来找出失败的原因。如果 Servlet 没有返回状态码,默认会返回成功的状态码 HttpServletResponse.SC_OK 。
HTTP头部(HTTP Header):它们包含了更多关于响应的信息。比如:头部可以指定认为响应过期的过期日期,或者是指定用来给用户安全的传输实体内容的编码格式。
主体(Body) :它包含了响应的内容。它可以包含 HTML代码,图片,等等。主体是由传输在 HTTP消息中紧跟在头部后面的数据字节组成的。