JAVA模拟面试题库.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《JAVA模拟面试题库.docx》由会员分享,可在线阅读,更多相关《JAVA模拟面试题库.docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JAVA基础部分1 .我们能不能声明main。方法为非静态?不能,main。方法必需声明为静态的,这样JVM才可以调用main()方法而无需实例化 它的类。假如从main。方法去掉“static”这个声明,虽然编译照旧可以成功,但在运行时会 导致程序失败。2 .不用main方法如何定义一个类?不行,没有main方法我们不能运行Java类。在Java 7之前,你可以通过运用静态初始化运行Java类。但是,从Java 7起先就行不通 了。3 . String类为什么是final的。主要是为了 “效率”和“平安性”的缘由。若String允许被继承,由于它的高度被 运用率,可能会降低程序的性能,所以S
2、tring被定义成final;4 .运用final关键字修饰一个变量时,是引用不能变,还是 引用的对象不能变?运用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中 的内容还是可以变更的。5 . string% str ingbui Ider % stringbuffer Xa.可变及不行变String类中运用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不行变的。19. L i nkedL i st 和 ArrayList 的区分LinkedeList和ArrayList都实现了 List接口,但是它们的工作原理却不一样。它们
3、 之间最主要的区分在于ArrayList是可变更大小的数组,而LinkedList是双向链接串列 (doubly LinkedList) o ArrayList 更受欢迎,许多场景下 ArrayList 比 LinkedList 更为适 用。这篇文章中我们将会看看LinkedeList和ArrayList的不同,而且我们试图来看看什么 场景下更适宜运用LinkedList,而不用ArrayListoLinkedList 和 ArrayList 的区分LinkedList和ArrayList的差别主要来自于Array和LinkedList数据结构的不同。假 如你很熟悉Array和LinkedLi
4、st,你很简洁得出下面的结论:1)因为Array是基于索引(index)的数据结构,它运用索引在数组中搜寻和读取数据是很快 的。Array获得数据的时间困难度是。(1),但是要删除数据却是开销很大的,因为这须要重 排数组中的全部数据。2)相对于 ArrayList, LinkedList 插入是更快的。因为 LinkedList 不像 ArrayList 一样, 不须要变更数组的大小,也不须要在数组装满的时候要将全部的数据重新装入一个新的数 组,这是AirrayList最坏的一种状况,时间困难度是0(n),而LinkedList中插入或删除的 时间困难度仅为0(1)。ArrayList在插入数
5、据时还须要更新索引(除了插入数组的尾部)。 3)类似于插入数据,删除数据时,LinkedList也优于ArrayList。4) LinkedList须要更多的内存,因为ArrayList的每个索引的位置是实际的数据,而 LinkedList中的每个节点中存储的是实际的数据和前后节点的位置。什么场景下更适宜运用LinkedList,而不用ArrayList我前面已经提到,许多场景下ArrayList更受欢迎,但是还有些状况下LinkedList更 为合适。譬如:1)你的应用不会随机访问数据。因为假如你须要LinkedList中的第n个元素的时候,你须 要从第一个元素依次数到第n个数据,然后读取数
6、据。2)你的应用更多的插入和删除元素,更少的读取数据。因为插入和删除元素不涉及重排数 据,所以它要比ArrayList要快。以上就是关于ArrayList和LinkedList的差别。你须要一个不同步的基于索引的数据访问 时,请尽量运用ArrayList。ArrayList很快,也很简洁运用。但是要记得要给定一个合适 的初始大小,尽可能的削减更改数组的大小。20 .为什么接口要规定成员变量必需是publ ic staticfinal的呢?首先接口是一种高度抽象的模版“,而接口中的属性也就是模版的成员,就应当 是全部实现模版的实现类的共有特性,所以它是public static的,是全部实现类共
7、有的. 假如可以是非static的话,因一个类可以继承多个接口,出现重名的变量,如何区分呢?其次,接口中假如可能定义非final的变量的话,而方法又都是abstract的,这就自相 冲突了,有可变成员变量但对应的方法却无法操作这些变量,虽然可以干脆修改这些静态成 员变量的值,但全部实现类对应的值都被修改了,这跟抽象类有何区分?又接口是一种更高 层面的抽象,是一种规范、功能定义的声明,全部可变的东西都应当归属到实现类中,这样 接口才能起到标准化、规范化的作用。所以接口中的属性必定是final的。最终,接口只是对事物的属性和行为更高层次的抽象。对修改关闭,对扩展(不同的 实现implements)
8、开放,接口是对开闭原则(Open-Closed Principle )的一种体现。21 .遍历一个List有哪些不同的方式?运用哪种方式更加线程平安?1) for-each (增加 for 循环)2)迭代器遍历(线程更加平安)22 . Array和ArrayList有何区分?什么时候更适合用 Array?Array可以容纳基本类型和对象,而ArrayList只能容纳对象。Array是指定大小的,而ArrayList大小是固定的。Array没有供应ArrayList那么多功能,比如addAlK removeAll和iterator等。尽 管ArrayList明显是更好的选择,但也有些时候Arra
9、y比较好用。(1)假如列表的大小已经指定,大部分状况下是存储和遍历它们。(2)对于遍历基本数据类型,尽管Collections运用自动装箱来减轻编码任务,在指定大小的基本类型的列表上工作也会变得很慢。(3)假如你要运用多维数组,运用口 口比方5公口51更简洁。23 .创建线程有几种不同的方式?你宠爱哪一种?为什么?有三种方式可以用来创建线程:继承Thread类实现Runnable接口应用程序可以运用Executor框架来创建线程池实现Runnable接口这种方式更受欢迎,因为这不须要继承Thread类。在应用设计中已 经继承了别的对象的状况下,这须要多继承(而Java不支持多继承),只能实现接
10、口。同 时,线程池也是特殊高效的,很简洁实现和运用。24 .什么是死锁(dead I ock) ?如何避开dead I ock ?两个进程都在等待对方执行完毕才能接着往下执行的时候就发生了死锁。结果就是两个 进程都陷入了无限的等待中。运用多线程的时候,一种特殊简洁的避开死锁的方式就是:指定获得锁的依次,并强制 线程依据指定的依次获得锁。因此,假如全部的线程都是以同样的依次加锁和释放锁,就不 会出现死锁了。25 .在 System, out. pr intln ()里面,System, out, pr intln分别是什么?System是系统供应的预定义的final类,out是一个PrintSt
11、ream对象,printin是out 对象里面一个重载的方法。26 . JAVA源文件仲是否可以包括多个类,有什么限制?答:一个java源文件中可以包含多个类,但每个源文件中只允许一个public类, 假如源文件中没有public类,则源文件用什么名字都可以。27 .类有哪三个基本特性?各特性的优点?答:类具有封装性、继承性和多态性。封装性:类的封装性为类的成员供应公有、缺省、爱惜和私有等多级访问权限,目的 是隐藏类中的私有变量和类中方法的实现微小环节。继承性:类的继承供应从已存在的类创建新类的机智,继承使一个新类自动拥有被 继承类(父类)的全部可继承的成员。多态性:类的多态性供应类中方法执行
12、的多样性,多态性有两种表示形式:重载和 覆盖。28 .列出你常用的JDK4答:java. io:这里面是全部输入输出有关的类,都是基于这个包下;比如文件操作等java, net:这里面是及网络有关的类,比如URL, URLConnection等。java, util:这个是系统帮助类,特殊是集合类Collection, List, Map等。Java, sql:这个是数据库操作的类,Connection, Statemenmt, ResultSet 等。29 . JavaScript如何定义数组?答:var arrTest = new Array ();30 . JavaScr ipt 能否操
13、作 cookie 和 session?答:JavaScript可以操作cookie,但是不能操作sessiono31 .请写出JavaScript中常用的三种事务?答:onclick, onblur, onChange32 . JS中的三种弹出式消息提示的叮嘱是什么?答:alert, confirm prompt33 .请说出5种常见的runtime exception?答:NullPointerException:当操作一个空引用时会出现此错误。NumnerFormatException:数据格式转换出现问题时出现此异样。ClassCastException:强制类型转换类型不匹配时出现此异
14、样。ArraylndexOutOfBoundsException:数组下标越界,当运用一个不存在 的数组下标时出现此异样。34 .数组有没有length。这个方法? String有没有I ength ()这个方法?答:数组没有length。这个方法,但有这个属性;String有length。方法。35 . JSP页面之间传递参数的方式有哪些?答:request、session、application 提交表单、超链接36 . Oracle对象有哪些?并分别说明下用途?答:试图,序列,存储函数,同义词,索引,表。约束条件:保证数据完整性试图:虚表,命名的查询语句索引:加速查询的速度序列:一串连续
15、递增或递减的数字,步长相同,(代理键)。同义词:一个对象的另外一个叫法(对象的别名)。存储过程:用于操作。函数:用作困难运算的。用于计算。触发器:由事务触发的存储过程。37 . 一般内连接的基本语法是什么?答:select * from a, b where a. id 二 b. id;38 .说说数据库触发器的好处?答:比如上网发日志,事先会自动通知好友;其实就是在增加发日志时做了一个后触发,先告知好友,再向通知表中写入信息;效率高。39 .说一些关于数据库优化方面的阅历?答:有外键约束会影响(DML)插入和删除性能,假如程序能够保证数据的完整性,那么就在创建数据库时去掉外键约束。扩展:实际
16、开发有一个种叫分区优化技术。40 .处理数据库大数据量下的分页解决方法?答:最好的方法是利用sql语句进行分页,这样每次查询出的结果集中就只包含某页数据内容,再sql语句无法实现分页的状况下,可以考虑对大的结果集通过游标定位方式 来获得某页的数据。总结:简洁就是用sql分页语句进行分页;再大的数据量可以考虑对大的结果集通过游标定位方式来获得某页的数据。扩展:(说说你对数据库大数据量怎么处理)?答:可以用分区功能:范围分区:范围分区就是对数据表中的某个值的范围进行分区,依据某个值的 范围,确定将该数据存储在哪个分区上。如依据序号分区,依据时间等来进行分区。Hash分区(散列分区):散列分区为通过
17、指定分区编号来匀整分布数据的一种分区 类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一样。也就是只命名分区名称,这样匀整进行数据分布。复合分区:有时候我们须要依据范围分区后,每个分区内的数据再散列地分布 在几个表空间中,这样我们就要运用复合分区。复合分区是先运用范围分区,然后在每个 分区内再运用散列分区的一种分区方法。41 .运行异样及一般异样有何异同?答:异样表示程序运行过程中可能出现的非正常状态,运行时异样表示虚拟机 的通常操作中可能遇到异样,是一种常见运行错误,java编译器要求方法 必需声明抛出可能发生的非运行时异样,但是并不要去必需声明抛出未被 捕获的运行时异样。42 .
18、 JDBC 中的 perparedStatement 比 Statement 的好处?答:一个sql叮嘱发给服务器区执行的步骤是:语法检查,语言分析,编译成内部指令,缓存指令,执行指令等过程;所以perparedStatement比 Statement可以防止sql注入。43 . Servlet的生命周期?答:1:实例化:容器收到请求时,会创建一个serlvet实例。2:初始化:容器在创建好servlet对象之后,会接着调用servlet对象的init () 方法。留意:该方法只会执行一次。作用是,获得资源。3:就绪:调用servlet对象的service。方法4:销毁:容器会依据自身的算法,
19、删除servlet对象。在删除之前,会先调用destroy ()方法。44 .说说XML的理解?说明web应用中的web. xml文件的作用?答:XML即可扩展标记语言,它及HTML一样,都是SGML标准通用标记语言;XML是Internet环境中跨平台的,依靠于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简洁的数据存储语言,运用一系列简洁的标记描述数据,而这些标记可以用便利的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简洁易于驾驭和运用。Web. xml的作用是配置欢迎页,servlet, filter, listener等的。45 .
20、协议的一些技术特点是什么?答:无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。接受这种方式 可以节约传输时间。无状态: 协议是无状态协议。无状态是指协议对于事务处理没有记忆实力。 缺少状态意味着假如后续处理须要前面的信息,则它必需重传,这样可能导致每次连接传送 的数据量增大。另一方面,在服务器不须要从前信息时它的应答就较快。46 .什么是web容器?答:容器就是一种服务程序,在服务器一个端口就有一个供应相应服务的程序, 而这个程序就是处理从客户端发出的请求,如JAVA仲的Tomcat容器,ASP 的HS或PWS都是道样的容器。47 .
21、Tomcat服务器的默认端口是多少?怎样修改tomcat的 端口?答:默认端口为8080,可以通过service, xml的connector元素的port属性来修改 端口。48 .基于 (xml配置)的Spring MVC限制流程:客户端发送请求经过DispatcherServlet限制器处理之后,通过HandlerMapping 组件找到相应的Controller限制器,Controller会调用业务层Model处理请求并且返回ModelAndView,然后DispatcherServlet会通过ViewResolver返回相应的jsp视图,在客户端进行页面呈现;49 .接收请求参数值的3
22、种方式:一运用 ServletRequest 获得(getParameter ()方法)*优点:干脆获得数据,获得到的数据比较完整(表单,ip, url, cookies等);缺点:须要自己处理数据类型转换;-Spring会自动将表单name属性参数注入到方法参数中(参数名一样)运用解equestParam注解映射参数名不一样的属性*优点:数据类型自动转换;缺点:有可能出现数据类型转换异样;-运用自动机制封装成Bean属性定义FromBean实体类,属性名及表单组件的name名一样*优点:表单属性量大,解耦,简化代码量;50.说说Tomcat有几种部署方式?答:(1)利用Tomcat自动部署(
23、2)利用限制台进行部署3) 增 加 自 定 义 的 Web 部 署 文 件(%Tomcat_Home%confCatalinalocalhostAppName. xml)51 . Tomcat的优化阅历?答:去掉对web. xml的监视,把jsp提前编辑成Servlet。有富余物理内存的状况,加大tomcat运用的jvm的内存。52 .说说您对Ajax的理解,还有为什么要用Ajax?有什么好 处?答:Ajax就是异步的JavaScript跟xml同时访问数据库。53 . Hibernate是什么及优缺点?答:hibemiate是基于0RM对象关系映射(完成对象数据到关系数据映射的机制)实现 的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 模拟 面试 题库
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内