开篇介绍

大家好,我是Java最全面试题库提裤姐,今天这篇是综合面试题系列的第六篇,主要总结了各个大厂的面试题相关的问题;在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。


Q:

选择题

关于Web应用程序,下列说法错误的是:
A.WEB-INF 目录存在于 web 应用的根目录下
B.WEB-INF 目录与 classes 目录平行
C.web.xml 在 WEB-INF 目录下
D.Web 应用程序可以打包为 war 文件

解析:classes 目录位于 WEB-INF 目录之下,故选B。

【082期】综合面试题系列(六)_JAVAimage.png

Java Resource

  • src:存放Java源代码的目录。

  • Libraries:存放的是Tomcat及JRE中的jar包。

build自动编译.java文件的目录

WebContent(WebRoot):存放的是需要部署到服务器的文件

  • MEAT-INF:是存放工程自身相关的一些信息,元文件信息,通常由开发工具和环境自动生成。

    • MANIFEST.MF:配置清单文件

  • WEB-INF:这个目录下的文件,是不能被客户端直接访问的。

    • classes:存放Java字节码文件的目录。

    • lib:用于存放该工程用到的库。

    • web.xml:web工程的配置文件,完成用户请求的逻辑名称到真正的servlet类的映射。

  • 凡是客户端能访问的资源(html或.jpg)必须跟WEB-INF在同一目录,即放在Web根目录下的资源,从客户端是可以通过URL地址直接访问的。

有关Servlet的生命周期说法正确的有
A.Servlet 的生命周期由 Servlet 实例控制
B.init()方法在创建完 Servlet 实例后对其进行初始化,传递的参数为实现 ServletContext 接口的对象
C.service()方法响应客户端发出的请求
D.destroy()方法释放 Servlet 实例

解析:Servlet 的生命周期是由 Servlet 容器(Tomcat 就是常见的 Servlet 容器)管理的,因此A不对。
Servlet 中的 init()方法有两个重载,一个是空参的,另外一个是带 ServletConfig 形参的,而不是ServletContext,因此B不对。
D说法不太恰当,正确的表达应该是因为 Servlet 实例要释放(销毁)了,才会先调用 destroy()方法。
故答案选择CD

在Oracle中,当需要使用显式游标更新或删除游标中的行时,UPDATE或DELETE语句必须使用()子句
A.WHERE CURRENT OF
B.WHERE CURSOR OF
C.FOR UPDATE
D.FOR CURSOR OF

答案为C


Q:

简答题

写出 5 个你在 JAVA 开发中常用的包含(全名),并简述其作用。
1.java.lang.*
提供利用 Java 编程语言进行程序设计的基础类。最重要的类是 Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类)。
2.java.util.*
包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期 Date 类、堆栈 Stack 类、向量 Vector 类等)。集合类、时间处理模式、日期时间工具等各类常用工具包
3.java.io.*
Java 的核心库 java.io 提供了全面的 IO 接口。包括:文件读写、标准设备输出等。Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。
4.java.net.*
并非所有系统都支持 IPv6 协议,而当 Java 网络连接堆栈尝试检测它并在可用时透明地使用它时,还可以利用系统属性禁用它。在 IPv6 不可用或被显式禁用的情况下,Inet6Address 对大多数网络连接操作都不再是有效参数。虽然可以保证在查找主机名时 java.net.InetAddress.getByName 之类的方法不返回 Inet6Address,但仍然可能通过传递字面值来创建此类对象。在此情况下,大多数方法在使用 Inet6Address 调用时都将抛出异常。
5.java.sql.*
提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。此 API 包括一个框架,凭借此框架可以动态地安装不同驱动程序来访问不同数据源。


Q:

编程题

给出一个排序好的数组和一个数,求数组中连续元素的和等于所给数的子数组


 1//给出一个排序好的数组和一个数,求数组中连续元素的和等于所给数的子数组
2
3    @Test
4    public void test(){
5        int[] num = {1,2,2,3,4,5,6,7,8,9};
6        int sum = 7;
7        findSum(num,sum);
8    }
9
10    public void findSum(int[] num,int sum){
11        int left=0;
12        int right=0;
13
14        for(int i=0;i<num.length;i++){
15            int curSum = 0;
16            left = i;
17            right = i;
18            while(curSum<sum){
19                curSum += num[right++];
20            }            
21            if(curSum==sum){
22                for(int j=left;j<right;j++){
23                    System.out.print(num[j]+" ");
24                }
25                System.out.println();
26            }
27        }
28    }