❶ java应届生面试问题
首先要有足够的自信。能够把你所学的知识发挥出来。
其次,技术的复习要到位,面试之前最好把Java的知识点过一遍。比如JavaSE基础,数据库原理,Web技术要点(Servlet/JSP),三大框架的概念和三大框架如何整合的。最后能够说出一到两个你做过的项目,把项目的模块描述清楚,自己在项目的负责模块和分工解释好,还有遇到的问题如何解决等等之类的问题。
还有,在面试中要保持自信和谦虚,让面试公司感觉到你有实力,但又不骄傲。毕竟公司都喜欢踏实的人。
❷ 急!请大家帮解答一下,JAVA面试题。
1、Spring的主要精华是AOP面向切面编程,和DI依赖注入机制。
2、2就不说了
3、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使
用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
4、前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
5、MVC是Model-View-Controller的简写。Model 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), View 是应用的表示面(由JSP页面产生),Controller 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
6、sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep方法并不会释放锁,即使当前线程使用sleep方法让出了cpu,但其他被同步锁挡住了的线程也无法得到执行。wait是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁,以便其他正在等待此锁的线程可以得到同步锁并运行,只有其他线程调用了notify方法(notify并不释放锁,只是告诉调用过wait方法的线程可以去参与获得锁的竞争了,但不是马上得到锁,因为锁还在别人手里,别人还没释放。如果notify方法后面的代码还有很多,需要这些代码执行完后才会释放锁,可以在notfiy方法后增加一个等待和一些代码,看看效果),调用wait方法的线程就会解除wait状态和程序可以再次得到锁后继续向下运行。
7、Vector是线程安全的,也就是说是它的方法之间是线程同步的,而ArrayList是线程序不安全的
=========================================================================
亲,记得给好评哦 我不容易啊!
❸ 我是有三年工作经验JAVA后台开发人员,今天去面试JAVA开发工程师一职,那个面试官一直问我三大框
面试题和你面试的公司有关,你应聘的公司不同,题会相应不同。 说说我自己的面试, 第一次是家的一般的公司(小公司只考技术),自己直接带简历过去的。 先是笔试,很基础的java题。然后面试聊。(基本就能过了) 去过一家外企(考综合能力的运...
❹ java面试题 面向对象三大特征的理解
面向对象技术是目前流行的系统设计开发技术,它包括面向对象分析和面向对象程序设计。面向对象程序设计技术的提出,主要是为了解决传统程序设计方法——结构化程序设计所不能解决的代码重用问题。
面向对象的编程方法具有四个基本特征:
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。比如,我们要设计一个学生成绩管理系统,考察学生这个对象时,我们只关心他的班级、学号、成绩等,而不用去关心他的身高、体重这些信息。抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。
2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。这也体现了大自然中一般与特殊的关系。继承性很好的解决了软件的可重用性问题。比如说,所有的Windows应用程序都有一个窗口,它们可以看作都是从一个窗口类派生出来的。但是有的应用程序用于文字处理,有的应用程序用于绘图,这是由于派生出了不同的子类,各个子类添加了不同的特性。
3.封装:
封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口。通常,应禁止直接访问一个对象的实际表示,而应通过操作接口访问对象,这称为信息隐藏。事实上,信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。
4. 多态性:
多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在一起肯定完全不同。又比如,同样的选择编辑-粘贴操作,在字处理程序和绘图程序中有不同的效果。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
面向对象程序设计具有许多优点:
1、开发时间短,效率高,可靠性高,所开发的程序更强壮。由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短了开发时间。
2、应用程序更易于维护、更新和升级。继承和封装使得应用程序的修改带来的影响更加局部化。
❺ java三大框架面试题
SSH:
spring 初始化组件----分层理念(就类似与中央管理省,省管理市等等)里,你想用下一层某个类的实例,但又不想自己new,好了,spring做的就是这个工作----初始化你需要的实例对象(通常是在xml文件中进行配置,希望简化配置可以用注解)。(再通俗点说,某个省的代表在驻京办,这时中央如果想了解某个省的情况的话,就直接问驻京办的该省代表,而不用再派专人到该省询问了。此时,可以近似理解为,中央为一个类,该省为一个类,驻京办为spring容器,该省代表为该省的一个实例(但未初始化,因为不在驻京办他的价值也就没了),如果他在驻京办而且告诉驻京办他是该省的代表,那就代表中央可以使用他了---此时可以说,驻京办实例化了该省类的对象。)
struts 控制跳转-----比如说,你用SSH写了一个登陆的逻辑,如果输入信息正确跳转到成功界面,如果不正确就跳转到错误提示界面,那跳转的方向由谁指定呢,对就是struts.xml文件(里面对应的跳转逻辑名)。
hibernate 将对象型的数据类型保存到关系型数据库中的工具。比如说,Java是面向对象的开发语言,而现在的数据库(Oracle、MySQL、sqlserver等等)基本上都是关系型的,如何把面向对象的数据类型保存在关系型的数据库中呢?hibernate就是干这行的。
❻ java面试 谈谈对ssh三大框架的理解
首先hibernate是一个持久层框架,轻量级(性能好),orm映射灵活,对表与表的映射关系处理的很完善,对jdbc做了良好的封装,使得我们开发时与数据库交互不需要编写大量的sql语句。
而struts是一个mvc的web层框架,底层是对servlet的大量封装,拥有强大的拦截器机制,主要负责调用业务逻辑Service层。
三大框架的大致流程jsp->struts->service->hibernate。因为struts负责调用Service从而控制了Service的生命周期,使得层次之间的依赖加强,也就是耦合。
所以我们引用了spring,spring在框架中充当容器的角色,用于维护各个层次之间的关系。通过IOC反转控制DI依赖注入完成各个层之间的注入,使得层与层之间实现完全脱耦,增加运行效率利于维护。
并且spring的AOP面向切面编程,实现在不改变代码的情况下完成对方法的增强。比较常用的就是spring的声明式事务管理,底层通过AOP实现,避免了我们每次都要手动开启事物,提交事务的重复性代码,使得开发逻辑更加清晰。
这样应付面试应该可以了,不过他可能会细问,比如hibernate的懒加载,spring的AOP和IOC原理等,这个还需要在准备准备
❼ 想面试Java开发岗位,请问过来人要准备的专业面试题都有哪些
首先确认,你是java行业的新手。
面试题。
java基础部分(常见的):
1、java有几种基本数据类型。
2、冒泡排序,(笔试常出现)
3、解释什么是类的成员变量,局部变量,实例成员变量,类成员变量?
4、最狠得就是——什么是面向对象,这个只能自己组织语言,按自己的理解来回答,根本找不到具体答案。
5、抽象类与接口的区别。
6、线程有几种实现方式,分别是什么?
7、如何使线程同步?
8、什么是GC?
9、构造方法是否能被重写?为什么?
10、java关键字是否区分大小写?
11、for循环里的三个表达式的执行顺序是什么?
12、简述什么是关系型数据库?
13、arrayList与linkedList的区别?
14、String与StringBuffer的区别?
数据库部分(常见):
1、组函数,
2、having和where的区别,
3、伪列,
4、怎么实现数据分页?
5、表链接
6、事务(ACID)
7、数据安全
8、序列
9、索引
10、你所参与过的项目用了几个表?
JDBC部分(常见):
1、JDBC的六个步骤。
2、JDBC分页。
Servlet(常见):
1、客户端发送请求的几种方式。
2、servlet的生命周期的几个阶段。
3、forward跳转与redirect跳转的区别。
4、cookie与session的区别。
5、三大作用域。
6、连接池。
JSP(常见):
1、jsp的九大内置对象。
2、EL表达式。
3、JSTL标签库。
javaScript(很少会问,了解即可):
1、DOM:对象,文档,模型
2、鼠标点击事件:
AJAX(了解):
1、ajax请求与传统请求的区别。
框架相关:
1、Struts2数据处理机制。
2、OGNL表达式。
3、了解下值栈。
4、MVC开发模式的好处。
5、Hibernate与MyBatis的区别。
6、连接池
7、struts2与SpringMVC的区别。
8、IOC,DI。
9、AOP。
10、运用框架的好处。
11、用到过的开发模式有哪些?
注:以上内容只要会一大部分,面试基本都会通过,如果全部会的话,就可以挑offer了,会一半就有很大的可能了(手都敲麻了.。。。)。
❽ Java的三大框架是什么
Java的三大框架是:
1.Structs框架是最早的Java开源框架之一.Struts是MVC设计模式的一个优秀实现.
Struts是最早的java开源框架之一,它是MVC设计模式的一个优秀实现。 Struts定义了通用的Controller(控制器),通过配置文件(通常是 Struts -config.xml)隔离Model(模型)和View(视图),以Action的概念以对用户请求进行了封装,使代码更加清晰易读。 Struts还提供了自动将请求的数据填充到对象中以及页面标签等简化编码的工具。 Struts能够开发大型Java Web项目。
2.Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架
Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架。 Struts2引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器、减少或者消除配置文件、贯穿整个框架的强大表达式语言、支持可变更和可重用的基于MVC模式的标签API, Struts2充分利用了从其它MVC框架学到的经验和教训,使得 Struts2框架更加清晰灵活。
3.Hibernate是一个开放源代码的对象关系映射框架
它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。