《Java面试题个人总结-+-复习资料.docx》由会员分享,可在线阅读,更多相关《Java面试题个人总结-+-复习资料.docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本人最近参加了大大小小许多公司的面试,在这里我把自己面试遇到的 问 题给大家说一下基础篇1、在类加载器中,系统类加载器和用户自定义加载器那个先加载?(遇到这个问题时感觉很意外,没有想到会问这样的问题)先加载系统类加载器类加载器加载类依次依次为:类加载器:这个模式会加载下的包扩展类加载器:会加载下的包系统类加载器:这个会去加载指定了参数指定的文件用户自定义类加载器:供应的是可以被继承的,允许用户自己实现类加载器2、堆和栈分别存放什么?栈:基本数据类型和对象的引用堆:对象和数组3、的区分(1)是不行变对象,也就是说每次修改都是新建了一个对象并赋值(2)是字符缓冲区,修改它不会新建对象,可以运用()
2、方法和()方法 修改的值(3)可以替代,它是一个单线程运用的类,和比速度快、效率高,但2、给添加一个来自的外键:(这个很简洁被我们自己忽视) 00;3、数据库三范式:属性唯一、记录唯一、表唯一4、查询结果按排序(降序):*;(默认是按升序的)5、的左外连接* d e =框架1、和相比有什么优势?1 .对访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复 性代码。2 .是一个基于的主流许久化框架,是一个优秀的实现。他很大程度的 简化层的编码工作3 .运用反射机制,而不是字节码增加程序来实现透亮性。4 .的性能特殊好,因为它是个轻量级框架。映射的灵敏性很精彩。它支持各种关系数据库,从一对一到
3、多对多的各种困难关系。、技术的出现给我们构建强大的企业应用系统供应了可能。但用这些 技术构建的系统特殊的繁乱,所以在此之上,我们须要一个规则、一个把 这些技术组织起来的规则,这就是框架,便应运而生。3、为什么要用?让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们 插入到应用程序代码中。运用 后,公共服务(比如日志、许久性、事 务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象 模型的困难性。允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协 作对象。正如单词 倒置 所表明的,就像反 过来的。没有运用一堆抽象 工厂、服务定位器、单元素O和干脆构造(),每一个
4、对象都是用其协 作对象构造的。因此是由容器管理协作对象O o即使一个框架,也是一容器。最好的地方是它有助于您替换对象。有了, 只要用 属性和配置文件加入依靠性(协作对象)。然后可以很简洁地在 须要时替换具有类似接口的协作对象。4、什么是模式?有什么作用?全名,即模型-视图-限制器,是一种特殊经典的软件架构模式。从设计角度看,它将多个设计模式在一种解决方案中结合起来,用来 解决许多设计问题。模式把用户界面交互分拆到不同的三个角色中,即:(1)模型:持有全部的数据、状态和程序逻辑,独立于视图和限制器。(2)视图:用来呈现模型。视图通常干脆从模型中取得它要显示的状态和数据。对于相同的信息可以有多个不
5、同的显示形式或视图。(3)限制器:位于视图和模型中间,负责接收用户的输入,将输入进行解析并反馈给模型,通常有一个模型具有一个限制器。5、的三种状态:瞬时状态许久状态游离状态6、和的区分:优点:占用网速小,对于一些网速比较慢的电脑有明显的优势。:不须要安装客户端,只须要阅读器就能打开。缺点:须要安装客户端,有时候须要更新。:对网速的需求大,对于一些网速慢的电脑不适合。7、2的核心是什么?它与1有什么关系?2的核心是,与1没关系8、列举五个2中的拦截器:实现在不同请求中相像参数别名的转换。:自动装配的拦截器,主要用于当2和整合时,2可以运用自动装配 的方式来访问容器中的。:该拦截器负责创建一个对象
6、,主要用于那些须要有对象才能正常工 作的拦截器。:当运用2的开发模式时,这个拦截器会供应更多的调试信息。:这个拦截器负责处理异样,它将异样映射为结果。:这个拦截器主要用于文件上传,它负责解析表单文件域中的内容。il8n:支持国际化的拦截器,它负责把所选的语言、区域放入用户中。:这是一个最基本的拦截器,它负责解析请求中的参数,并将参数值 设置成对应的属性值。:防止重复提交,它检查传到中的,从而防止多次提交。:通过执行中定义的校验器,从而完成数据校验。9、注入方法:设值注入:通过访问容器实现构造注入:通过构造函数实现P命名空间注入10、实现注解的配置:其中是指须要扫描的基类包,多个包之间用逗号隔开
7、,默认扫描全部类路径是是非平安的(4)三者都是被修饰的(这一点面试官的问我的时候始终在说,你确 定吗?搞得我有点虚)4、的异样和错误有什么区分?是的错误,这种错误会严峻影响程序的运行,设计者不会设计程 序代码去捕获这种错误,因为即使捕获到也无法赐予适当的处理,比如 内存溢出。包含了一般性的异样,这些异样同在在捕获到之后便可做妥当的 处理,以确保程序接着运行。有许多种分类,从产生的时机上我们可以 把分为运行时异样运行时异样是指程序运行过程中可能出现的非正常状态非运行时异样非运行时异样是指方法声明时的异样5、&和的区分&是位运算符,表示按位与运算。是逻辑运算符,表示逻辑与。在条 件推断的时候&必需
8、逐一检查各个条件,具有短路功能,只要一个条件为则不会进行后续的推断。(1)是抽象类,声明方法的存在而不去实现它的类叫做抽象类,它 用于创建一个体现某些基本行为的类。抽象类中不能有构造方法、不能有 静态方法,抽象类不能被实例化。抽象类中可以有变量、可以有一般方法、 可以有抽象方法,在继承抽象方法后,必需实现它的全部抽象方法。(2)是接口,接口中的变量必需是静态常量(),接口中的方法必 需都是抽象方法(),不过由于接口中全部变量、方法修饰符都一样,因 可以不写。接口的实现必需实现接口中全部的方法。7、的区分(1)是用来描述变量、方法、类的关键字,表示变量值不行变、 方法不行被重写、类不行被继承(2
9、)是异样处理的关键字,表示块里面的代码确定会被运行 到(3)是类中的方法,垃圾回收器执行的时候会调用被回收的 类的此方法。8、接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以 实现实体类?(1)接口可以继承接口(2)抽象类里可以有一般方法,因此抽象类可以实现接口,只须要实现接口内全部方法就可以了(3)抽象类里可以有一般方法,变量也不须要是常量,因此抽 象类可以实现实体类9、一个”源文件中是否可以包含多个类(非内部类)?有什么限制? 可以。必需只有一个类名与文件名相同且该类以修饰10、是怎么通过包名.类名来获得该类的实例的?通过()方法11、介绍一下集合?:是最基本的集合接口,一个代
10、表一组,即的元素。:是的扩展,作用是收集对象,并以索引方式保留收集对象的依次。其元素有放入依次,元素可重复。1):利用类似于数组的形式来存储数据,它的随机访问速度极 快。2):内部实现是链表,它适合于在链表中间须要常见的插入和删除操作。3):与相像,但是两者不同,主要用在事先不知道数组的大 小,或者只是须要一个可以变更大小的数组的状况。4)与的区分:是非线程平安的,效率高 是基于线程平安的,效率低。:也是的扩展,在中的元素对象要求不能重复(留意:元素虽然无放 入依次,但是元素在中的位置是有该元素的确定的,其位置其实是固定 的)。常用实现类有和。1) :其核心是,中存放的值为中的,这也就是不允许
11、重复的缘由。2) :底层由平衡二叉树实现,它会将投入其中的元素自动排序,这就要求投入其中的元素是可排序的,也就是说,存 放的必需是同一种数据类型。其实现自动排序的实质是, 即()()(0;)1;这个方法称为比较器,可以比较两个对象,假如对象都一样相 等,则返回0:没有继承接口,供应到的映射,也就是说,它是一种把键对象和值 对象进行关联的容器。1) :不允许重复,假如后面的重复,则会覆盖前面的值,允许为,但是只能有一个。2) :假如是一个对象的话,这个对象所在的类确定要实现接口,并且重写方法。3) 与比较:非线程平安,高效率,支持:线程平安,低效率,不支持12、和的遍历方法比较:可以用循环、循环
12、和迭代。:可以用循环和迭代。:只能用迭代。13、写一个单例设计模式:()()()()(14、说说关键字:表示“全局”或“静态”的意思,可以用来修饰成员变量和成员方法, 也可以形成静态代码块,还可以用来修饰类,但只能修饰内部类。变量:被修饰的变量叫静态变量或者类变量;没有被修饰的变量叫实 例变量。二者的区分是:静态变量:在内存中只有一个拷贝(节约内存),只会为静态支配一次 内存,而且在加载类的过程中就完成静态变量的内存支配。可用类名干脆 访问(便利),也可以用对象来访问(不举荐)。静态变量一般用于对象 之间须要共享值时。实例变量:每创建一个实例,就会为实例支配一次内存,实例变量在内 存中可以有多
13、个拷贝,互不影响(灵敏)。静态方法:它可以干脆通过“类名.静态方法”来访问,任何的实 例亦可以调用。静态方法中不能用和关键字。不能干脆访问所属类的实例变量和实例方法, 只能访问所属类的静态变量和成员方法。代码块:代码块也叫静态代码块,是在类中独立于类成员的语句块, 可以有多个,位置也可以随意放,它不在任何的方法体内,在加载类时会 执行这些静态代码块,假如有多个,则会依据他们在类中出现的先后依次一次执行它们,而且每个代码块只会执行一次。15、的生命周期:加载和实例化:在容器检测到须要这个来响应第一个请求时,创建实 例。初始化:在实例化后,容器将调用的()方法初始化这个对象。请求处理:容器将调用的
14、()方法对请求进行处理。服务终止:当容器检测到一个的实例应当从服务中被移除的时候,容 器就会调用实例的O方法16、九大内置对象范围比较:排序为: = = = = =。:服务器启动到停止这段时间。:会话起先到结束这段时间(阅读器打开到关闭):请求起先到结束这段时间,即一个页面发出请求到另一个页面之间。:页面执行,当前页面从打开到关闭这段时间,它只能在同一个页面中 有效:页面执行,包含了客户请求的有关信息,但中很少用到它。:页面执行,向客户端输入内容时常用的对象:页面执行,取得任何范围的参数,通过它可以获得、等对象。:页面执行,取得服务器的配置信息。:仅在错误处理页面第一次运行的时候会编译成,驻留在内存中以供调用是开发技术,是服务器端运用的小程序更多的是进行页面显示,更多的是处理业务,即是页面,是实现方法开发界面是时,可以干脆编写:数据;而中则须要这样写:( 数据);18、关键字的作用(1)修饰的基本数据类型的值不行被变更,修饰的引用类型的引用不行变而引用的值还是可以变的(2)修饰的方法不行被重写(3)修饰的类不行被继承(4)修饰的基本数据类型的形参在方法体内不行以被重新赋值,修饰的引用类型的形参不行以被赐予一个新的引用数据库方面1、问你怎么同时更新一个表中的两个字段?(假设表名为A,要更新的字段分别为、)A =姚明,=35= 10;