1. String、StringBuffer和StringBuilder的区别。

(1)  String:存储数值不可改变的字符串

(2)  StringBuffer:可变字符序列、线程安全、效率低

(3)  StringBuilder:可变字符序列、线程不安全、效率高

2. final, finally, finalize的区别。

(1)  final修饰的类不能被继承,修饰的方法不能被子类重写,修饰的属性为常量。一旦初始化后,不可再被赋值。习惯上,常量

用大写字符表示。

(2)  finally是异常处理语句结构的一部分,表示总是执行。

(3)  finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其

他资源回收,例如关闭文件等。

3. HashMap和Hashtable的区别。(都完成了Map接口)

(1)  HashMap是Hashtable的轻量级实现(非线程安全的实现),效率较高,而Hashtable是线程安全的,效率较低。

(2) 
Hashtable不允许使用 null 作为 key 和 value,而HashMap 可以。

(3)  Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而

HashMap 就必须为之提供外同步。

4. abstract class和interface有什么区别?

(1) 抽象类与接口定义不同:

抽象类abstract class,接口  interface

(2) 接口里只能包含抽象方法,不包含已经实现的方法;抽象类则完全可以包含普通的方法。

(3) 接口里不能定义静态方法;抽象类可以定义静态方法

(4) 接口里只能定义静态常量属性,不能定义普通属性;抽象类里既可以定义普通属性,也可以定义静态常量

(5) 接口不包含构造函数;抽象类可以包含构造函数,抽象类里的构造函数并不是用于创建对象,而是让其子类调用这些构造函

数来完成属于抽象类的初始化操作。

(6) 接口不包含初始化块,但抽象类可以包含初始化块。

(7) 一个类最多只能有一个直接父类,包括抽象类;但一个类可以直接实现多个接口,通过实现多个接口可以弥补Java的单继承

不足

5.Overload(重载)和Override(重写)的区别。Overloaded的方法是否可以改变返回值的类型?(可以)
(1)方法重载是指在一个类中,多个方法的方法名相同,但是参数列表不同,根据不同参数调用相应方法。

(2)方法重写发生在父类和子类之间,必须和被重写的方法具有相同的方法名、参数列表和返回值类型。子类的对象使用这个方法

时,将调用子类中的定义,父类中的定义会被覆盖。

6. Collection 和 Collections的区别

(1)Collection是集合类的上级接口,继承与他的接口主要有Set 和List.

(2)Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

7.Java的异常(包括Exception和Error)分为可查的异常(checked exceptions)和不可查的异常(unchecked exceptions)。

(1)可查的异常(编译器要求必须处置的异常)

(2)不可查的异常(编译器不要求强制处置的异常)

8. error和exception有什么区别

Error:  JVM系统内部错误、资源耗尽等严重情况//无法控制,不处理

Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,是程序本身可以处理的。比如:空指针访问、试图读取不存在的

文件等。

9. 说出ArrayList,Vector, LinkedList的存储性能和特性

(1)ArrayList 和Vector都是使用数组方式存储数据,数组元素数大于实际存储的数据以便增加和插入元素,允许直接按序号索引元

素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢。

(2)Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差。

(3)LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即

可,所以插入速度较快。

10.重定向和转发的区别
(1)重定向:两次请求。 转发:一次请求,一次响应。

(2)重定向:地址栏的url会随之改变为定向后的那个url。

转发:地址栏的url不会改变。

(3)重定向:在客户端执行,所以可以在不同的服务器上。重定向速度慢。

转发:在服务器端执行,所以必须在同一台服务器上。转发速度快。

(4)重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。

转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。

11. char型变量中能不能存储一个中文汉字?为什么?

只能存储一个中文汉字,因为java中以unicode编码,一个char占2个字节,计算机中为char类型分配的空间为16位,也就是2个字节,所以放一个中文是没问题的。

12. JSP的内置对象及方法。
(1)request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。

(2)response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)

(3)out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

(4)pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的

API,并且包装了通用的servlet相关功能的方法。

(5)session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

(6)applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

(7)config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

(8)page表示从该页面产生的一个servlet实例

(9)exception代表了JSP文件运行时所产生的例外对象

13.创建索引的优缺点

优点:

创建索引可以大大提高系统的性能:
(1)通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
(2)可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
(3)可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
(4)在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
(5)通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

缺点:
(1)创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
(2)索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
(3)当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

14.sleep和wait方法区别

(1)sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep 不会释放对象锁。
(2)wait 是Object 类的方法,对此对象调用wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify 方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

15.为什么不能用abstract修饰属性、私有方法、构造器、静态方法、final的方法
答:abstract可以用来修饰类(抽象类:不可实例化)和方法(抽象方法:没有方法体)
(1)abstract只是声明,属性是系统赋初值直接定义的。
(2)构造器不能被重写
(3)子类不能重写private修饰的方法(私有方法)
(4)static修饰的方法(类方法)可以直接通过类来调用,而abstract修饰的方法没有方法体,不能调用,二者矛盾
(5)final修饰的方法不能重写

16.Spring有哪些优缺点

优点:

(1)使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑。

(2)可以提供众多服务,事务管理,WS等。

(3)AOP的很好支持,方便面向切面编程。

(4)对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等

(5)Spring DI机制降低了业务对象替换的复杂性。

(6)Spring属于低侵入,代码污染极低。

(7)Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

缺点:

(1)jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器

(2)Spring不支持分布式,这也是EJB仍然在用的原因之一。

Java面试题集锦的更多相关文章

  1. 2016最新Java笔试题集锦

    更新时间:2015-08-13         来源:网络         投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...

  2. Java笔试题集锦

    Java笔试题集锦 1.MVC的各个部分都有那些技术来实现?怎样实现? 答:MVC是Model-View-Controller的简写."Model" 代表的是应用的业务逻辑(通过J ...

  3. Java面试题集锦(持续更新)

    1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: -抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这 ...

  4. Java 笔试题集锦

    1.Java 不需要使用构造函数来创建对象的方法有哪些? 2.Java 创建多线程有哪些方法?你最喜欢哪一个?为什么? 3.Java

  5. Java 面试题集锦

    都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑话我们这些未出校门的孩纸们,但 ...

  6. Java面试题相关内容

    选择题(共5题,每题1.5分,共75分.多选题选不全或选错都不得分.)1. 以下属于面向对象的特征的是(C,D).(两项)A) 重载B) 重写C) 封装D) 继承 2. 以下代码运行输出是(C)pub ...

  7. 经典的Java基础面试题集锦

    经典的Java基础面试题集锦,欢迎收藏和分享. 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 问题:Java里的传引用 ...

  8. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的

    ===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦]下载地址 http://www.eoeand ...

  9. J2EE面试题集锦(附答案)

    转自:http://blog.sina.com.cn/s/blog_4e8be0590100fbb8.html J2EE面试题集锦(附答案)一.基础问答 1.下面哪些类可以被继承? java.lang ...

随机推荐

  1. [转]基于国家标准的 EndNote 输出样式模板 ----直接用endnote导入到word,不用自己一个个改参考文献了

    EndNote 相当于一个数据库,将添加/导入的文献存档.需要引用文献的时候就从中选择一个插入到文档中,EndNote 会自动给你编号.在文档末尾建立相应的参考文献列表.但是各种杂志.单位要求的文献著 ...

  2. device not found解决方案

    今天在使用cordova tools进行真机调试的,报了一个错:device not found; 字面意思就是没有发现设备,这时候可以首先尝试重启adb服务 C:\Users\username\Ap ...

  3. JMeter3.0 post参数/BeanShell中文乱码问题

    在用JMeter,在http请求的 Body Data或BeanShell中写的中文,为什么都是乱码—都是方框中间有个问号. 而且字体非常小,看着吃力,乱码现象如下图:

  4. kudu的读取数据流程

    当客户端从Kudu的表中读取数据时,必须首先建立需要连接的系列tablet服务器. 通过执行tablet发现过程(如上所述)来确定包含要读取的主关键字范围的tablet的位置(读取不必在领导者tabl ...

  5. C# 类的序列化和反序列化

    序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态,重新创 ...

  6. byte数据常量池问题

    [代码] public class BufferPoolDemo { public static void main(String[] args) { Integer i1=127; Integer ...

  7. day29 网络编程

    网络通信原理: http://www.cnblogs.com/linhaifeng/articles/5937962.html 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络 ...

  8. 001.CDN概述

    一 互联网应用质量概述 1.1 互联网应用质量 互联网应用质量指标--QoE,其主要指标: 服务成功率:指用户所请求的服务成功完成的几率. 服务建立时间:指从服务请求到服务呈现所花费的时间,并且会因为 ...

  9. EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型

    官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新 ...

  10. SpringBoot+Jpa+MySql学习

    上一篇介绍了springboot简单整合mybatis的教程.这一篇是介绍springboot简单整合jpa的教程. 由于jpa的功能强大,后续会继续写关于jpa的介绍已经使用,本文只是简单介绍一下它 ...