javaweb面试题和逻辑题及答案

合集下载

JAVAWEB面试题(含答案)

JAVAWEB面试题(含答案)

1、jsp和servlet的区别、共同点、各自应用的范围??JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。

JSP编译后是“类servlet”。

Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。

而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。

JSP侧重于视图,Servlet主要用于控制逻辑。

在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.2、cookie和session的作用、区别、应用范围,session的工作原理Cookie:主要用在保存客户端,其值在客户端与服务端之间传送,不安全,存储的数据量有限。

Session:保存在服务端,每一个session在服务端有一个sessionID作一个标识。

存储的数据量大,安全性高。

占用服务端的内存资源。

3、jstl是什么?优点有哪些??JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,由四个定制标记库(core、format、xml和sql)和一对通用标记库验证器(ScriptFreeTLV和PermittedTaglibsTLV)组成。

优点有:最大程序地提高了WEB应用在各应用服务器在应用程序服务器之间提供了一致的接口,最大程序地提高了1、在应用程序服务器之间提供了一致的接口,之间的移植。

2、简化了JSP和WEB应用程序的开发。

3、以一种统一的方式减少了JSP中的scriptlet代码数量,可以达到没有任何scriptlet 代码的程序。

在我们公司的项目中是不允许有任何的scriptlet代码出现在JSP中。

4、允许JSP设计工具与WEB应用程序开发的进一步集成。

相信不久就会有支持JSTL的IDE 开发工具出现。

4、j2ee的优越性主要表现在哪些方面?MVC模式a、J2EE基于JAVA技术,与平台无关b、J2EE拥有开放标准,许多大型公司实现了对该规范支持的应用服务器。

java面试题库java面试题目及答案(3篇)

java面试题库java面试题目及答案(3篇)

第1篇一、基础知识1. Java简介题目:请简述Java的基本特点。

答案:- 简单易学:Java设计之初就考虑了易学性,使用面向对象编程。

- 原生跨平台:Java通过JVM(Java虚拟机)实现跨平台运行。

- 安全性:Java提供了强大的安全机制,如沙箱安全模型。

- 体系结构中立:Java不依赖于特定的硬件或操作系统。

- 高效:Java的运行速度接近C/C++。

- 多线程:Java内置多线程支持,便于实现并发处理。

- 动态性:Java在运行时可以进行扩展和修改。

2. Java虚拟机题目:请解释Java虚拟机(JVM)的作用。

答案:JVM是Java程序的运行环境,其主要作用包括:- 将Java字节码转换为本地机器码。

- 管理内存,包括堆、栈、方法区等。

- 提供垃圾回收机制。

- 管理线程和同步。

3. Java内存模型题目:请简述Java内存模型的组成。

答案:Java内存模型主要由以下部分组成:- 堆(Heap):存储对象实例和数组。

- 栈(Stack):存储局部变量和方法调用。

- 方法区(Method Area):存储类信息、常量、静态变量等。

- 本地方法栈(Native Method Stack):存储本地方法调用的相关数据。

- 程序计数器(Program Counter Register):存储线程的当前指令地址。

4. Java关键字题目:请列举并解释Java中的几个关键字。

答案:- `public`:表示访问权限为公开。

- `private`:表示访问权限为私有。

- `protected`:表示访问权限为受保护。

- `static`:表示属于类本身,而非对象实例。

- `final`:表示常量或方法不能被修改。

- `synchronized`:表示线程同步。

- `transient`:表示数据在序列化时不会被持久化。

二、面向对象编程5. 类和对象题目:请解释类和对象之间的关系。

答案:类是对象的模板,对象是类的实例。

java模拟面试题目(3篇)

java模拟面试题目(3篇)

第1篇一、Java基础知识1. 请简述Java语言的特点。

2. 什么是Java虚拟机(JVM)?它有什么作用?3. 什么是Java的内存模型?请解释Java内存模型中的几个关键概念:堆、栈、方法区、程序计数器、本地方法栈。

4. 什么是Java中的反射机制?请举例说明反射在Java中的应用。

5. 什么是Java中的泛型?请解释泛型的原理和作用。

6. 请简述Java中的四种访问控制符:public、protected、default、private。

7. 什么是Java中的继承和多态?请举例说明继承和多态在实际开发中的应用。

8. 什么是Java中的封装?请举例说明封装在实际开发中的应用。

9. 什么是Java中的接口和抽象类?它们之间有什么区别?10. 什么是Java中的异常处理?请解释try-catch-finally语句的执行顺序。

二、Java集合框架1. 请列举Java集合框架中的常用集合类及其特点。

2. 请简述ArrayList、LinkedList、HashMap、HashSet的区别。

3. 什么是Java中的泛型集合?请举例说明泛型集合的应用。

4. 什么是Java中的迭代器(Iterator)和枚举器(Enum)?请比较它们的区别。

5. 什么是Java中的List、Set、Map的遍历方法?6. 请解释Java中的ArrayList和LinkedList的内部实现原理。

7. 什么是Java中的HashMap的扩容机制?8. 什么是Java中的HashSet的内部实现原理?9. 请解释Java中的线程安全集合类,如CopyOnWriteArrayList、ConcurrentHashMap。

三、Java多线程与并发1. 什么是Java中的线程?请解释线程的创建、调度和同步。

2. 请简述Java中的线程状态,如新建、就绪、运行、阻塞、等待、超时等待、终止。

3. 什么是Java中的同步机制?请解释synchronized关键字的作用。

JAVA面试题大全(含答案)

JAVA面试题大全(含答案)

1. J2EE是什么?它包括哪些技术?解答:从整体上讲,J2EE是使用Java技术开发企业级应用的工业标准,它是Java 技术不断适应和促进企业级应用过程中的产物。

适用于企业级应用的J2EE,提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。

J2EE是一个标准,而不是一个现成的产品。

主要包括以下这些技术:1) Servlet Servlet是Java平台上的CGI技术。

Servlet在服务器端运行,动态地生成Web页面。

与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。

对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。

2)JSP JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术。

从这一点来看,非常类似Microsoft ASP、PHP等技术。

借助形式上的内容和外观表现的分离,Web页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通过JSP 来合成。

在运行时态,JSP将会被首先转换成Servlet,并以Servlet的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率。

3) EJB EJB定义了一组可重用的组件:Enterprise Beans。

开发人员可以利用这些组件,像搭积木一样建立分布式应用。

4)JDBC JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准Java API编写数据库应用程序。

JDBC API主要用来连接数据库和直接调用SQL命令执行各种SQL语句。

利用JDBC API可以执行一般的SQL语句、动态SQL语句及带IN和OUT参数的存储过程。

javaweb机试题及答案

javaweb机试题及答案

javaweb机试题及答案一、单选题1. 在Java Web开发中,以下哪个不是Servlet的生命周期方法?A. init()B. service()C. destroy()D. start()答案:D2. 下列哪个不是JSP的隐式对象?A. requestB. responseC. sessionD. out答案:B3. 在Java Web中,以下哪个不是HTTP请求方法?A. GETB. POSTC. PUTD. DELETE答案:C二、多选题1. 以下哪些是Java Web开发中常用的会话管理技术?A. CookieB. URL重写C. HttpSessionD. 隐藏表单字段答案:A, B, C, D2. 在Java Web应用中,以下哪些可以作为过滤器(Filter)的用途?A. 日志记录B. 权限检查C. 请求修改D. 响应修改答案:A, B, C, D三、简答题1. 简述Java Web中使用Servlet的步骤。

答案:使用Servlet的步骤通常包括:- 创建一个继承自javax.servlet.http.HttpServlet的类。

- 重写doGet()或doPost()方法来处理客户端的请求。

- 在web.xml中配置Servlet映射。

- 启动Web服务器,访问Servlet。

2. 描述JSP页面的生命周期。

答案:JSP页面的生命周期包括:- 翻译:JSP页面被翻译成Servlet源代码。

- 编译:Servlet源代码被编译成class文件。

- 初始化:Servlet实例化并调用init()方法。

- 服务:调用service()方法来处理请求并生成响应。

- 销毁:调用destroy()方法,然后Servlet实例被垃圾回收。

四、编程题1. 编写一个简单的Servlet,用于返回当前日期和时间。

答案:```javaimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class DateTimeServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<html><body>");out.println("<p>当前日期和时间是:" + new java.util.Date() + "</p>");out.println("</body></html>");}}```2. 编写一个JSP页面,用于显示用户提交的表单数据。

Java面试题(带答案)

Java面试题(带答案)

湖南世杰Java工程师面试题选择题:单选题1,以下java程序代码,执行后的结果是( )java.util.HashMap map=newjava.util.HashMap();map.put("name",null);map.put("name","Jack");System.out.println(map.size());A: 0 B: null C: 1 D: 2答案:C2,执行以下程序后的输出结果是( )Public class Test {Public static void main(String[] args) {StringBuffer a = new StringBuffer("A");StringBuffer b = new StringBuffer("B");operator(a, b);System.out.println(a +","+ b);}Public static void operator(StringBuffer x, StringBuffer y) { x.append(y); y = x;}}A: A,A B: A,B C: B,B D: AB,B答案:D3,关于依赖注入,下列选项中说法错误的是( )A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装B:依赖注入使组件之间相互依赖,相互制约C:依赖注入提供使用接口编程D:依赖注入指对象在使用时动态注入答案:B4,关于spring说法错误的是( )A: spring是一个轻量级JAVA EE的框架集合B: spring是“依赖注入”模式的实现C: 使用spring可以实现声明事务D: spring提供了AOP方式的日志系统答案:D5,要在session对象中保存属性,可以使用以下哪个语句( ) A: session.getAttribute(“key”,”value”)B: session.setAttribute(“key”,”value”)C: session.setAttribute(“key”)D: session.getAttribute(“key”)答案:B6,关于以下程序代码的说明正确的是?( )Public class HasStatic{Private static int x = 100;Public static void main(String args[]){HasStatic hs1= new HasStatic();hs1.x++;HasStatic hs2= new HasStatic();hs2.x++;hs1=new HasStatic();hs1.x++;HasStatic.x--;System.out.println("x="+x);}}A: 程序通过编译,输出结果为:x=103B: 10行不能通过编译,因为x是私有静态变量C: 5行不能通过编译,因为引用了私有静态变量D: 程序通过编译,输出结果为:x=102答案:D7,以下哪一项不是使用mvc模式设计的web应用程序所具有的优点( ) A:可维护行强B:可扩展性强C:代码重复少D:大大减少代码量答案:D8,在 myjsp.jsp 中,关于下面的代码说法错误的是: ( )<%@ page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %>A: 该页面可以使用 exception 对象B: 该页面发生异常会转向 error.jspC: 存在 errorPage 属性时,isErrorPage 是默认为 falseD: error.jsp 页面一定要有isErrorPage 属性且值为 true答案:A9,关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是()A:它负责接收HTTP请求B:加载配置文件C:实现业务操作D:初始化上下应用对象ApplicationContext答案:C10,下面的类图表示的是哪个设计模式?( )A:代理模式(Proxy)B:装饰模式(Decorator)C:桥接模式(Bridge)D:观察者模式(Observer)答案:D11,java如何接受request域中的参数? ( )A: request.getRequestURL()B: request. getAttribute()C: request.getParameter()D: request.getWriter()答案:C12,对下面Spring声明式事务的配置含义的说明错误的是( )<bean id="txProxyTemplate"abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFact oryBean"><property name="transactionManager"ref="myTransactionManager"/><property name="transactionAttributes"><props><prop key="get*">PROPAGATION_REQUIRED,readOnly</prop><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean>A:定义了声明式事务的配置模板B: 对get方法采用只读事务C: 缺少sessionFactory属性的注入D: 配置需要事务管理的bean的代理时,通过parent引用这个配置模板,代码如下:<bean id="petBiz" parent="txProxyTemplate"><property name="target" ref="petTarget"/></bean>答案:C13,下面的输出结果是什么?( )Public class Demo {Public static void main(String args[]){String str = new String("hello");if(str=="hello"){System.out.println("true");}else{System.out.println("false");}}}A: trueB: falseC:编译不通过D:执行报错答案:B14,下面属于java合法变量定义的是?( )A: finalB:1var1C: _var2D: var3&答案:C15,下面有关JSP内置对象的描述,说法错误的是?( )A: session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止B: request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应C: application对象:application对象实现了用户间数据的共享,可存放全局变量,可以有多个D: response对象:response对象包含了响应客户请求的有关信息答案:C16,Please choice the output result ( )public class Test{Public static void changeStr(String str){str ="welcome";}Public static void main(String[] args){String str ="1234";changeStr(str);System.out.println(str);}}A: 1234B: welcomeC: 空D: 不确定答案:A17,for(i=0;i<10;++i,sum+=i);i的最终结果是?( ) A: 10B: 9C: 11D: 以上答案都不正确答案:A18,对于下面这段代码,以下说法正确的是:( )Public class Test{Public int x;Public static void main(String args[]{System. out. println("Value is"+ x);}}A: 程序会打出 "Value is 0"B: 程序会抛出 NullPointerExceptionC: 非静态变量不能够被静态方法引用D: 编译器会抛出 "possible reference before assignment"的错误答案:C19,HashMap和HashTable的描述,错误的是? ( )A: 他们都实现了Map接口。

web工程师 面试题及答案

web工程师 面试题及答案

web工程师面试题及答案Web工程师面试题及答案Web工程师(Web Engineer)是指专门从事Web开发与设计的技术人员,拥有丰富的前端和后端开发经验,能够搭建高效稳定的Web应用。

在Web工程师的招聘过程中,公司通常会设置一系列的面试题来评估应聘者的技能水平和工作经验。

以下是一些常见的Web工程师面试题及其答案,供参考。

面试题一:简述前端开发的基本流程。

答案:前端开发的基本流程包括需求分析、页面设计、页面制作、功能开发和测试等几个阶段。

1. 需求分析:了解项目的具体需求和功能要求,与产品经理、设计师、后端工程师等进行沟通,确定页面的基本结构和功能。

2. 页面设计:根据需求分析的结果,进行页面的设计,包括页面布局、色彩搭配、字体选择等,通常使用工具如Photoshop、Sketch等进行设计。

3. 页面制作:根据设计好的页面图,使用HTML、CSS和JavaScript等技术进行页面的编写和布局,保证页面在不同浏览器和设备上的兼容性。

4. 功能开发:根据需求分析,开发页面中需要的功能,如表单提交、数据交互、动画效果等,使用前端开发框架和库如React、Vue.js等提高开发效率。

5. 测试:完成页面制作和功能开发后,进行测试和调试,确保页面的稳定性和用户体验的良好。

面试题二:请解释什么是SPA(Single-Page Application)?列举几个常见的SPA框架。

答案:SPA是一种使用单个Web页面的应用程序,通过动态加载页面的内容实现与用户的交互,减少了传统Web应用中的页面切换和加载延迟。

常见的SPA框架有以下几个:1. React:由Facebook开发的JavaScript库,用于构建用户界面。

React采用组件化的开发模式,提供了强大的生命周期管理和虚拟DOM技术,方便开发者构建可复用的UI组件。

2. Angular:由Google开发的前端开发框架,常用于大型Web应用的开发。

Java经典面试题及答案(200题)

Java经典面试题及答案(200题)

Java经典面试题及答案(200题) Java经典面试题200道Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了Java 的开发环境和运行环境。

JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。

具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。

简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。

2. == 和 equals 的区别是什么?「== 解读」对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.out.println(x==z); // falseSystem.out.println(x.equals(y)); // trueSystem.out.println(x.equals(z)); // true代码解读:因为 x 和 y 指向的是同一个引用,所以 == 也是 true,而 new String()方法则重写开辟了内存空间,所以 == 结果为 false,而 equals 比较的一直是值,所以结果都为 true。

「equals 解读」equals 本质上就是 ==,只不过 String 和 Integer 等重写了equals 方法,把它变成了值比较。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1
1.<html>
2.<head>
3.<title>标题</title>
4.</head>
5.<body>
6.主要窗体
7.</body>
8.</html>
2
1.<title>标题
2.<ul>无序列表
3.<li>列表
4.<a>超链接
5.<table>表格
6.<tr>表格行
7.<td>表格列
8.<caption>表格标题
9.<img>图片
10.<hr>横线
11.<br>强制换行
12.<u>下划线
13.<map>地图
14.等等等
3
1.Onblur:失去焦点
2.Onchange:元素值改变
3.Onclick:点击
4.Ondblclick:双击
5.Onfocus:获得焦点
6.Onkeydown:按下键盘
7.Onkeypress:敲击键盘
8.Onkeyup:放开按下的键盘
9.Onmousedown:鼠标点下
10.Onmouseup:鼠标点下后放开
11.Onmouseout:鼠标移出目标
12.onselect:选中元素
13.等等等等
4
1.Navicat 9.0.15:数据库可视化客户端
2.Powder designer 15:数据库模型设计
3.MyEclipse 2014:javaEE集成开发工具
4.jdk1.7:java 官方的开发工具和虚拟机
5.mysql 5.0:一个小型关系型的数据库
6.dreamweaver 8.0:网页开发工具
7.svn:版本控制软件
等等等
5、
表名:XJ_STUDENT
字段名数据类型是否主键列isNull
studentID Varchar2(32) 是否
studentName Varchar2(32) 否否
Birthday Date 否否
查询:select studentID,studentName,birthday from XJ_STUDENT;
删除:delete from xj_student where studentID=?;
修改:update xj_student set studentName=?, birthday=? Where studentID=?;
添加:insert into xj_student values(?,?,?);
6、请在下面写出一个验证表单testForm的userName输入框的输入内容长度不能小于10字
function check(){
var val=document.getElementById("userName").value;
if(val.length<10){
alert("长度不能小于10")
}
}
7
1.<jsp:include>
2.<jsp:forward>
3.<jsp:getProperty>
4.<jsp:setProperty>
5.<jsp:userBean>
6.<jsp:param>
7.<jsp:params>
8.<jsp:output>
9.<c:out>
10.<c:if>
11.<c:set>
12.<c:catch>
13.<c:choose>
14.<c:when>
15.<c:otherwise>
16.<c:forEach>
17.<c:forTokens>
18.<c:import>
19.<c:param>
20.<c:url>
21.
22.<c:redirect>
23.等等等
8
ng.String;
ng.Integer;
ng.Double;
ng.Float;
ng.Exception;
ng.System;
ng.Boolean;
8.java.util.List;
9.java.util.Map;
10.java.util.ArrayList;
11.java.util.Scanner;
12.java.util.Set;
13.java.util.HashSet;
14.java.util.TreeSet;
15.java.util.HashMap;
16.java.util.TreeMap;
17.java.util.Vector;
18.java.io.File;
19.java.io.FileInputStream;
20.java.io.FileOutputStream;
21.java.io.Writer;
22.java.io.Reader;
23.and so on;
逻辑思维题
1、鲁道夫、菲利普、罗伯特三位青年,一个当了歌手,一个考上大学,一个加入美军陆战
队,个个未来都大有作为。

现已知:A.罗伯特的年龄比战士的大;B.大学生的年龄比菲利普小;C.鲁道夫的年龄和大学生的年龄不一样。

请问:三个人中谁是歌
鲁道夫的年龄跟大学生不一样,所以他不是大学生。

大学生比菲利普年龄小,菲利普也不是大学生,所以罗伯特是大学生;罗伯特比战士年龄大,比菲利普小,所以菲利普也不是战士,鲁道夫是战士,菲利普是歌手。

2、有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。

筐上的标签都是骗人的,(比如,如果标签写的是橘子,那么可以肯定筐里不会只有橘子,可能还有苹果)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三
从三号框子拿出一个水果,如果是苹果,则二号框是混合水果,一号框是橘子;如果拿出的是橘子,则一号框是混合水果,二号框是苹果。

3、假设一个池塘,里面有无穷多的水。

现有2个空水壶,容积分别为5升和6升。

问题是
如何只用这2个水壶从池塘里取得3升的水。

取6升水倒入5升水壶里,余1升倒入5升水壶中,在取6升水倒入5升水壶中,余2升水,把5升水壶倒空以后将2升水倒入。

再取6升水,倒入5升的水壶中,余下的即为3升水。

4、你让工人为你工作7天,给工人的汇报是一根金条。

你必须在每天结束时都付费1/7的
把金条分成1、2、4共3段;
第一天付1,第二天付2找1,第三天付1,第四天付4找3,第五天付1,第六天付2找1,第七天付1。

5
1+1=2 1+2=3 2+3=5 斐波拉契数列
6、一个人花8块钱买了一只鸡,9元钱卖掉,然后觉得不划算又花10块钱买回来,然后
9-8=1 11-10=1 1+1=2
7、一列火车全长250米,每小时60公里的速度,穿越长达500米的隧道,请在半分钟内
回答,这列或者用( 45s )时间穿过隧道?
500+250=0.75公里,0.75/60=0.0125小时0.0125*60分*60秒等于45秒
8、有一个人在自由市场买了两只鸡,在回家的路上遇到两个熟人要买他的鸡,他只好把鸡
卖了,每只鸡6元钱。

其中一只赚了20%,另外一只赔了20%,请问这个人是赔了还是
Z:X*1.2=6→x=5
P:Y*0.8=6→y=7.5 →总成本=5+7.5=12.5,卖掉价格为2*6=12元,所以此人赔掉了
0.5元。

9
1个人2分钟打1页:1个人6分钟打3页;18/3=6个人
10、有一只蜗牛要从井底爬出来,井深20尺,蜗牛每天白天向上爬3尺,晚上下滑2
尺,请问此蜗牛几天才能拍出井口?
17天每天爬1尺,第十八天爬3尺出口,不在回落,共20尺,18天。

相关文档
最新文档