这些题目为找工作前准备,但是面试的时候基本上没用上。
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程序员面试中你需要注重的技巧
【Java面试资料】-Java面试准备指南
Java面试准备指南.zip
同学及自己面试题目(java面试准备).doc
以下是一些建议的Java面试准备要点和资源描述: 一、Java基础知识 数据类型、变量与运算符:理解Java中的基本数据类型、变量声明与初始化,以及常用的运算符和表达式。 控制流语句:熟悉if-else、switch、for、...
这份资源是一份包含1000+道Java面试题的整理版,旨在帮助广大Java开发者更好地准备面试,提升面试成功率。内容涵盖了Java的基础知识、高级特性、常见问题等多个方面,每个问题都附带了详细的答案解析,有助于读者...
java中级面试要点
总结了很久,包含Java基础语法常见面试题,并发,JVM,锁,Mysql,分布式,微服务架构,设计模式,算法
2019年自己面试整理,基本上在面试过程中知识点好多地方都问到了,最后找到了自己满意工作,希望在这个文档对大家有用,欢迎下载
面试很好的资料,针对初,中,高级职位 祝你找到一份好工作
java面试准备
很好的Java面试题第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的朋友在笔试时更好地赢得笔试和面试。由于这套面试题涉及的范围很泛,很广,很杂,至少需要一个月的时间才能消化和...
四、准备几个问题 面试主要是考察毕业生对单位和职位的了解程度、毕业生的专业知识和技能,以及他们的社会意识、综合素质、敬业精神等。所以在谈话和提问式的面试中,总有一些问题是面试者常常提问的,例如:“简单...
文件内容简介: ...总的来说,该文件提供了一份全面的Java面试准备指南,涵盖了从基础知识到高级概念的各个方面,适用于准备Java编程语言相关岗位的求职者,以及希望加深对Java语言理解的开发者和学习者。
《2024最强Java面试八股文》是一份针对Java面试的全面指南,内容涵盖JVM、MQ、MyBatis、MySQL、Redis、Spring Boot、Spring Cloud以及设计模式等多个方面。这份资料旨在帮助求职者系统地复习和掌握Java及相关技术的...
这些同学说自己也做了精心准备,网上搜集了不少Java面试题。 然而实际去互联网公司面试才发现,人家问的,和你准备的根本对不上号,面试现场经常弥漫着尴尬的气氛,最后的面试结果也是不言而喻! 先来体验一个真实的...
“Java面试宝典.pdf”是一份针对Java面试的指南,其中包含了大量面试题以及答案,对于准备Java面试的人来说非常有价值。 这份宝典的内容涵盖了Java的基础知识,如异常处理机制,到更高级的主题,如并发编程和网络...
最新最全的java面试题,这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的朋友在笔试时更好地赢得笔试和面试。由于这套面试题涉及的范围很泛,很广,很杂,大家不可能...