这些题目为找工作前准备,但是面试的时候基本上没用上。
1.Java多态表现:重写
2.多线程共享数据:多线程共享数据时,可以将需要共享的数据封装成一个对象,将每个线程对该数据对象的操作分别定义类(该类实现Runnable接口,并提供参数为共享数据对象的构造方法),然后再调用是直接使用new Thread(实现Runnable接口类的实例)
小知识点:多个内部内如何共享数据?可以将Runnable设置成内部类,1. 数据设置成外部类的成员变量(代码如下图)2. 将共享的数据封装起来,然后逐个传递给Runnable对象。3. 共享数据设置成外部类的成员变量,Runnable写成内部类,在外部类增加带有synchronized关键字的成员方法。
3. 接口可以继承接口,抽象类可以继承具体类
4. hibernate缓存机制ehcache,在sessionFactory中的hibernateProperties配置信息中指定开启二级缓存,然后在对应实体类的配置文件中指定开启缓存,就实现了开启了hibernate的缓存机制();
5. 请你大概介绍下做过的项目和用到的技术,目前来说印象最深的是模拟电子商务平台,这个项目除了美工外,其他从前台的脚本编写和数据展示,到后台业务逻辑处理,与数据库进行交互操作均为独立完成。用到的技术:前台主要是ognl和JS和JSTL,MVC前端控制器为Struts2,bean的创建和销毁,事务处理,缓存主要交由Spring来控制,数据库连接工具为hibernate,全文搜索使用的技术为compass,也交由Spring容器控制。
6. 好,请你介绍下MVC模式:MVC是JavaEE开发中常用的一种分层模式,一种软件设计典范,即把用户的输入、处理和输入按照M,V,C的方式进行分离,用于将业务逻辑和数据显示分离,分为Model,View和Controller层,其中Model层主要负责业务的处理,这里面可以编写业务处理的实现算法,以及进行数据库操作(值得一提的是现在的数据操作一般也业务处理分离开来,数据操作作为单独的一层,业务处理为一层,这就是后台的分层模式了),Controller层主要负责对请求的转发和处理,View即为表现层(jsp,freemarker等)
7. 请你讲一下权限是如何实现的?关于权限这里,按照部门和用户等级划分的,不同部门的人有不同的权限,不同等级的人也有不同的权限,因为同一部门的人也可以有不同的级别,比如说经理、普通员工。
8. LRU最近最少使用算法;
9. 说一下软件工程原理?
10. 说一下敏捷开发?敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。四个核心价值观:沟通、简单、反馈、勇气,现在有加上了谦逊。
11. 说一下cookie和session的区别,cookie数据存放到客户端,session数据存放到服务器端,cookie不能超过4k,session则没有此项限制,session有时间的限制(服务器停掉session中保存的数据就会消失,而且session中存放的信息过多的话会影响服务器性能),cookie则可以保存很长时间;
12. 说一下http中get和post的区别?说到这里,应该说下http的请求包含有get,post,put,delete。其中最常用的应该是get和post,其中get方式是将表单中的数据编码到url中进行传送,而是用post方式进行传送时则将表单中的数据则封装到了http协议中的header中传送。get是请求幂等的(即如果两次请求的url一样,那么返回的结果应该也是一样的,请求本身不会改变服务器的状态),post可以进行文件上传或者更新数据等功能(即会改变服务器的状态时)。重复访问get方式创建的请求,浏览器会用缓存进行后续处理。get传输的数据量为2K,post传输的数据量较大,一般认为不受限制,但是理论上IIS4中最大量为80K,IIS5中最大量为100K。
13. 使用pageContext获取部署的应用程序名,pageContext.request.contextPath.
14 jsp:include page="" 与 @include file=""的区别?首先名词解释,第一个是include动作,第二个是include指令,include动作可以动态的检查页面的数据修改并及时动态的刷新数据,适用于包含动态页面,而include指令不会去自动检查页面数据是否有改动,适用于包含静态页面,但是include指令中允许包含的文件中含有影响jsp主页面的代码。
15. 事务的四大特性:一致性、原子性、隔离性和持久性。
16. 软件生命周期的六大的阶段:问题定义及规划、需求分析、软件设计、编码、测试、维护
17.web容器:web容器是一种服务程序,为应用服务器提供一个运行环境,可以是jsp,servlet直接跟容器中的环境变量进行交互,而不必关心其他问题
18. 数据库三范式:第一范式:字段具有原子性,不可再分(数据表中的字段都是单一属性,不可再分);
第二范式:每行必须可以被唯一的区分,即加上唯一主键,非主属性部分依赖于主属性部分;
第三范式:除了满足第一、第二范式外,不能包含其他表包含的非主关键字信息;
19. 数据库优化经验:a. 去掉多余的外键(影响插入和删除的性能);b.尽量使用union all而不是union(会进行排序去重操作)
20. AOP和IOC
IOC:主要用于实现模块间的解耦,类与类之间的依赖关系改为有Spring容器控制,不需要程序员手动在代码中进行注入。
AOP:程序中有很多不相干的类的方法,但是这些方法前后需要加上一些固定的操作,比如日志记录,事务提交、权限判断等
21. 动态代理的过程:得到逻辑实现类(new Real)->根据Proxy(需要使用InnovacationHandler)得到代理对象->调用代理对象相关方法
22. 单例模式、工厂模式
23. finalize方法在Object下,在对象被清理出内存之前被调用,做必要的清理工作,这个方法是垃圾回收器在确定这个对象没有被引用时调用的,子类可以覆盖该方法,此方法将在垃圾回收器回收之前调用此方法,可用于整理系统资源和其他清理工作。
相关推荐
【Java面试准备指南】是为Java开发者准备的面试攻略,旨在帮助求职者充分准备Java相关的技术面试。在面试前,你需要关注以下几个方面: 1. **自我介绍**:清晰地介绍你的Java开发经验,涵盖你参与过的项目类型和...
Java面试准备是每位Java程序员在职场跳槽时不可避免的一个环节。在面试中,除了要展示个人的专业技能和项目经验,还需要掌握一些面试技巧来更好地表达自己。以下根据给定文件信息总结出的Java面试准备知识点: 1. ...
【Java面试资料】-Java面试准备指南 在Java开发者的职业生涯中,面试是至关重要的一个环节,它决定了你是否能够进入理想的公司或者晋升到更高的职位。这份【Java面试资料】-Java面试准备指南包含了丰富的Java知识,...
java面试准备文档 完整面试前准备
Java面试准备指南是一个针对Java开发者进行面试准备的重要资源。它涵盖了Java编程语言的核心概念、高级特性、框架应用以及面试常问问题,旨在帮助求职者在面试中展现出扎实的技术功底和解决问题的能力。以下是一些...
Java面试准备资料大全涵盖了多个IT领域的关键知识点,是为求职者和开发者提升技能、准备面试而精心整理的资源集合。以下是对这些主题的详细解读: 1. **Java基础语法**:Java是一种广泛使用的面向对象编程语言,其...
Java面试准备指南(面试题和答案).pdf
以下是一些建议的Java面试准备要点和资源描述: 一、Java基础知识 数据类型、变量与运算符:理解Java中的基本数据类型、变量声明与初始化,以及常用的运算符和表达式。 控制流语句:熟悉if-else、switch、for、...
"史上最强java面试宝典" 本资源是一份关于 Java 面试的宝典,旨在帮助 Java 开发者更好地准备面试,并提高自己的技术水平。下面是对该资源的详细解读和知识点总结: 标题和描述 该资源的标题是“史上最强java面试...
一、Java面试准备的必要性与实用性 1. 应聘Java开发岗位时,面试准备的重要性,尤其对于应届毕业生。 2. 通过实用的面试技巧,有助于快速掌握面试要点,提升面试通过率。 二、Java市场就业形势分析 1. 2015年Java...
总之,这些资料构成了一个全面的Java面试准备库,无论你是初学者还是有经验的开发者,都能从中受益。通过深入学习和实践这些题目,不仅可以巩固Java基础,还能提升解决实际问题的能力,从而在面试中展现出自己的专业...
Java面试准备指南是一个重要的资源,对于那些希望在Java开发领域找到理想工作的求职者来说,它提供了宝贵的指导。本文将深入探讨Java面试中的关键知识点,帮助你充分准备并提高成功几率。 1. **基础语法** - 理解...
总的来说,这份资源包是一个全面的Java面试准备工具,它能帮助求职者系统地复习Java技术,理解面试题目的考察点,并掌握如何有效地展示自己的项目经验和技能。无论是对于初入职场的新人还是有一定经验的开发者,它都...
Java 面试突击快速掌握八股文是一份非常重要的 Java 面试准备资源,旨在帮助 Java 开发者快速掌握 Java 面试必备的八股文知识点。本资源包含了 Java 面试的各个方面,包括 Java 基础知识、Java 框架、系统设计、...
标题《Java面试宝典.pdf》表明这是一本针对Java面试准备的书籍或资料集,而描述中的内容涵盖了Java的基础知识、Java线程、Java集合、JVM、数据库以及各种框架,这些都是Java开发者在面试过程中经常会被问到的关键...
在Java面试准备中,这些知识点都是经常出现的基础题目,了解和掌握它们对于通过技术面试至关重要。面试者不仅需要记忆这些知识点,更应该理解其背后的原理和应用场景,以便在面试中能够灵活应对各种问题。
"Java面试题详解" 在Java面试中,了解final、finally、finalize的区别是非常重要的。final是一个修饰符(关键字),如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。将变量或方法声明...
总的来说,这个压缩包提供了全面的C++和Java面试准备材料,包括特定语言的面试题、通用编程方法的讨论、知名企业的笔试题,以及可能的智力挑战。通过深入学习和解答这些题目,求职者可以提高自己的编程技能和面试...
总结来说,这是一份全面且实用的Java面试准备资料,涵盖了从基础到进阶的各类知识点,帮助求职者在面试过程中展现自己的专业素养和技术实力。只有不断巩固和实践,才能在激烈的竞争中脱颖而出,成功进入心仪的大厂。