当前位置:首页 > 范文大全 > 面试技巧 > 正文
 

java面试技巧

发布时间:2024-04-23 22:06:57 影响了:

小编语:为你精心整理的java面试技巧,希望对你有帮助! 如果喜欢就请继续关注我们博文学习网(www.hnnscy.com)的后续更新吧!

java面试技巧篇一:java程序员面试时经常被问到的10个问题

java程序员面试时经常被问到的10个问题

java程序员,尤其是做web开发的,面试时,面试官最喜欢问到以下10个问题,掌握面试的动态和技巧,有利于提高我们面试的成功率,了解以下10个问题,有利于java程序员的面试。

1、简单描述一下Log4J?

2、简单描述JavaBean的特点?

3、Hibernate在MVC模式中处于哪里?且它主要完成什么工作?

4、列举Hibernate中常见的几种主键产生方法,并做简要说明?

5、简单说说HQL与SQL的异同,试着写个例子?

6、Hibernate 运行时需要获取一些底层实现的基本信息,其中几个关键属性包括哪些?

7、利用Hibernate操作数据库,主要有哪几个步骤?

8、Hibernate中调用Session.flush()的目的是什么,什么时候调用,什么时候不用调用?

9、简单描述SessionFactory 与Sesson;

10、描述一下Hibernate,MySQL,Oracle 分别用什么方法来实现查询制定条记录

如{从检索结果中获取第x条记录开始的y条记录}(简单分页)?

java面试技巧篇二:java技术面试常见问题

Java基础

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

? "=="和equals方法究竟有什么区别? 静态变量和实例变量的区别? String 与stringbuffer区别 Integer与int的区别 java中实现多态的机制是什么? 现在有一个页面,向下拖动滚动条,才能看到内容,点击查询,才能正常在页面中显示。请分析这个原因。 List是线程安全的吗?若不是安全,怎么变成安全的 List中存储的对象,移除以后,会有什么现象,请解释? List迭代器,能自己写一个迭代器吗 HashMap和Hashtable的区别 final, finally, finalize的区别 ArrayList和Vector的区别 HashMap和Hashtable的区别 你是怎么理解java的泛型的? 解释你用过的设计模式 请写出一个单例模式。 cookie和session的区别 泛型的概念 Jsp与 servlet 区别 请写一个jdbc连接 用JDBC如何调用存储过 ajax异步刷新图片上传是怎么实现的? 说说你用过那些ajax技术和框架,说说它们的区别 解释一下你前台都用过那些框架? jsp有哪些内置对象?作用分别是什么?(至少三个) 邮箱验证是怎么实现? Tomact中的哪些参数你配置过 请解释ajax跨域 Jquery选择器都有那几种?

数据库知识

?

?

?

?

?

?

?

?

? 内连接与外连接是怎么实现的 手写存储过程与触发器 用SQL如何实现插入列或者属性 用一条SQL语句查询出每门课都大于80分的学生姓名 MySQL 和 Oracle的区别(不要说什么收费不收费,开源不开,更远听到的是细致区分) Mysql与oracle分页查询是怎么实现的? 数据库常见数据类型都有那些? 过滤器和拦截器的区别 大概有2.5亿个数,你怎么找出不重复的数?

?

?

?

?

?

?

? 负载均衡有没有听过 Servelt生命周期 数据源应该配置在那个文件中 值传递,引用传递的区别 索引怎么建立 sql优化的经验 如果一个文件中有100个手机号,请在读取后排序。

请写一个快排

请写一个二分查找

请写一个二叉数(要求:左侧比右侧的小)

? 你用没用过web Serveric ,用没用过其他公司的接口

框架的问题

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

? 框架都用过那些? 谈谈三大框架在web应用 Struts和springmvc有什么不同 连接池在hibernate中是怎么实现呢? Sping运行机制是什么? 三个大框架是如何整合?如何配置? Hibernate和Mybatis区别 Spring MVC和Struts 的区别 Spring IOC AOP 解释 Tomact集群做过吗? Hibernate中几个表联合查询,只要其中几列,怎么办? Hibernate Get和load区别 工作流,框架用过哪些 介绍一下Hibernate的二级缓存 工作流中出现并行,你怎么处理? Spring MVC使用过吗 MyBatis使用过吗 谈谈你对Struts的理解 Struts优缺点 谈谈你对Hibernate的理解 你对Spring的理解 谈谈你对Struts的理解 谈谈你对Hibernate的理解 你对Spring的理解 struts工作原理 Spring的依赖注入是什么意思? 说明反转控制(IOC)和面向方向编程(AOP)在spring中的应用

项目的问题 ? ? ? ? ? ? ? ? ? ?

? 为什么做这个项目? 在项目中你都导入那些包? 讲讲你在项目开发的一个类? 你们之间怎么分工? 负载均衡有没有听过? 项目是否上线? 客户的反馈的问题? 技术在项目中是怎么实现? 项目部署在什么样的环境下? 工作流中出现并行,你怎么处理? 在项目的遇到的问题?

java面试技巧篇三:2017全面JAVA面试经历总结

2017JAVA面试经验问题

0、对SSH的理解:

SSH即:Struts(表示层)+Spring(业务层)+Hibernate(持久层) Struts:

Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。 在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。 (View:沿用JSP,HTTP,Form,Tag,Resourse;Controller:ActionServlet,struts-config.xml,Action) Hibernate:

Hibernate是一个持久层框架,它只负责与关系数据库的操作。

Spring:

Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。

1、对Spring的相关理解

Spring框架目的是为了让模块与模块(对象与对象)之间的关联不是通过代码来关联而是通过配置来关联。

Spring的核心是IOC与AOP。

IOC(Inversion of Control)控制反转是关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。控制反转可以理解为生产和管理Bean的容器,原来需要在调用类中New的东西,现在都有IOC容器产生。

IOC的三种注入方式:inject

1、根据属性注入也就是Set方法注入

2、根据构造方法注入

3、根据注解注入

IOC最大的好处是什么?因为把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变成很简单(一般这样的对象都是实现于某种接口的),只要修改XML就可以了,这样我们甚至可以实现对象的热插拔(有点像USB接口和SCSI硬盘了)。

DI依赖注入:Dependency injection

依赖注入是一个IOC的特殊实现,依赖注入是指一个对象应用另外一个对象来提供一个特殊的能力,例如:把一个数据库连接以参数的形式传到一个对象的结构方法里面而不是在那个对象内部自行创建一个连接。控制反转和依赖注入的基本思想就是把类的依赖从类内部转化到外部以减少依赖。

AOP(Aspect Oriented Programming):针对一个切面来编程。 AOP面向切面编程 将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。 面向切面编程通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.

AOP可以理解为实现调用某个方法之前或者之后,自动执行一系列自定义的语句(例如:每做一次数据库操作都要生成一句日志)。

实现AOP功能采用的是代理技术,客户端程序不再调用目标,而调用代理类,代

理类与目标类对外具有相同的方法声明,有两种方式可以实现相同的方法声明,一是实现相同的接口,二是作为目标的子类在, JDK 中采用 Prox类产生动态代理的方式为某个接口生成实现类,如果要为某个类生成子类,则可以用CGLB。

AOP的主要作用是:日志记录,性能统计,安全控制,事务处理,异常处理等等

AOP与OOP的区别:

OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。

举个简单的例子,对于“雇员”这样一个业务实体进行封装,自然是OOP/OOD的任务,我们可以为其建立一个“Employee”类,并将“雇员”相关的属性和行为封装其中。而用AOP设计思想对“雇员”进行封装将无从谈起。

同样,对于“权限检查”这一动作片断进行划分,则是AOP的目标领域。而通过OOD/OOP对一个动作进行封装,则有点不伦不类。

换而言之,OOD/OOP面向名词领域,AOP面向动词领域。

1.1.Spring常用注解

1、@Controller

用于标注控制层组件(如struts中的action),负责注册一个bean 到spring 上下文中,bean 的ID 默认为类名称开头字母小写。

例如:

@Controller

public class UserAction extends BaseAction{}

? 或者

@Controller("userAction")

使用@Controller注解标识UserAction之后,就表示要把UserAction交给

Spring容器管理,在Spring容器中会存在一个名字为"userAction"的action,这个名字是根据UserAction类名来取的。

2、@Service

@Service对应的是业务层Bean,例如:

@Service("userService")

public class UserServiceImpl implements UserService { ??? }

3、@Repository

用于标注数据访问组件,即DAO组件。例如:

@Repository(value="userDao")

public class UserDaoImpl extends BaseDaoImpl<User> {??? }

4、@RequestMapping

在类前面定义,则将url和类绑定。

在方法前面定义,则将url和类的方法绑定

5、@RequestParam

@Scope用于指定scope作用域的(用在类上)

@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。 @Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:

@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用

@PostConstruct 初始化注解

@PreDestroy 摧毁注解 默认 单例 启动就加载

1.4、Spring事务管理机制

事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作。这样可以防止出现脏数据,防止数据库数据出现问题。开发中为了避免这种情况一般都会进行事务管理。

spring提供了几(出自:WwW.HNNscy.Com 博 文学习 网:java面试技巧)个关于事务处理的类:

TransactionDefinition //事务属性定义

TranscationStatus //代表了当前的事务,可以提交,回滚。

PlatformTransactionManager这个是spring提供的用于管理事务的基础接口,其下有一个实现的抽象类AbstractPlatformTransactionManager,我们使用的事务管理类例如DataSourceTransactionManager等都是这个类的子类。

一般事务定义步骤如下:

TransactionDefinition td = new TransactionDefinition();TransactionStatusts = transactionManager.getTransaction(td); try

{ //do sth

transactionManager.commit(ts);

}catch(Exception e){

transactionManager.rollback(ts);

}

spring提供的事务管理可以分为两类:编程式的和声明式的。

编程式的,比较灵活,但是代码量大,存在重复的代码比较多;声明式的比编 程式的更灵活。

编程式主要使用transactionTemplate。省略了部分的提交,回滚,一系列的事务对象定义,需注入事务管理对象

声明式:使用TransactionProxyFactoryBean:

围绕Poxy的动态代理能够自动的提交和回滚事务

org.springframework.transaction.interceptor.TransactionProxyFactoryBean

PROPAGATION_REQUIRED–支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

PROPAGATION_SUPPORTS–支持当前事务,如果当前没有事务,就以非事务方式执行。

1.5、spring中的核心类有那些,各有什么作用?

BeanFactory:产生一个新的实例,可以实现单例模式

BeanWrapper:提供统一的get及set方法

ApplicationContext:提供框架的实现,包括BeanFactory的所有功能。

2、Spring MVC

Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC.

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用

Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。

2.1.SpringMVC工作原理operating principle

1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。

2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.

3.DispatcherServlet请请求提交到目标Controller

4.Controller进行业务逻辑处理后,会返回一个ModelAndView

5.Dispathcher查询一个或多个ViewResolver视图解析器,找到

ModelAndView对象指定的视图对象

6.视图对象负责渲染返回给客户端。

DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:

1、截获符合特定格式的URL请求。

2、初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。

3、初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。

2.2、SpringMVC接口解释

1、DispatcherServlet接口:

Spring提供的前端控制器,所有的请求都有经过它来统一分发。在

DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。

2、HandlerMapping接口:

能够完成客户请求到Controller映射。

3、Controller接口:

需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。

Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦

Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。

从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型(Model)和视图(View)。

相关热词搜索:面试技巧 java java面试视频 java面试技巧视频

相关文章
最新文章

Copyright © 2008 - 2017 版权所有 博文学习网

工业和信息化部 湘ICP备09005888号-2