




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成都软件公司考过的题目重点-表示很多公司面试笔试的题目大家要对简历上面写的技术负责,熟练的就写熟练,了解就写了解。不知道的就不要写上去了,不要有侥幸心理,技术面试基本会按照你简历上面的顺序来提问。Core Java 大家应该没有问题 问得很简单Struts和Hibernate大家要非常熟悉它的配置流程,公司问得非常之多(重点)Spring和J2EE考得很简单,大家主要了解基本概念Oracle数据库大家有时间应该看看 公司对数据库方面的知识非常看重测试 版本控制 也要了解题目:Core java部分1谈谈final, finally, finalize的区别。(聚时力笔试题)答案:final 用于声明属性,方法和类,分别表示属性不可变,注意:如果是基本类型说明变量本身不能改变,如果是引用类型,说明它不能指向其他的对象了。但对象还是可以改变的。方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示无论是否出现异常总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。2怎样将一个字符串倒转?(索贝笔试题目)String str=”abcd”StringBuffer sb = new StringBuffer(str); return sb.reverse().toString();3作用域public,private,protected,以及不写时的区别。(速集笔试题目)private-类可见,不写-包可见protected-包可见,并子类可见 public-都可见4接口和抽象类的区别?(金证第一轮面试题)(1)接口可以被多重implements,抽象类只能被单一extends(2)接口只有定义,抽象类可以有定义和实现(3)接口的字段定义默认为:public static final, 抽象类字段默认是friendly(本包可见)5重载和重写的区别?(金证第一轮面试题目,新波)方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被屏蔽了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。6TCP协议和UDP协议的区别?(创立第2轮面试问过)TCP协议提供了一种可靠的数据传输服务,它是一种面向连接的数据传输协议。在数据传输之前,通信节点之间必须建立起连接。为确保正确地接收数据,TCP协议要求在目标电脑成功收到数据时发回一个确认(即ACK)。如果在某个时限内未收到相应的ACK,将重新传送数据包。如果网络拥塞,这种重新传送将导致发送的数据包重复。但是,接收电脑可使用数据包的序号来确定它是否为重复数据包,并在必要时丢弃它。UDP协议是一种面向无连接的数据传输服务,它不能保证数据包以正确的顺序被接收。该协议不能保证数据准确无误地到达目的地。UDP在许多方面非常有效。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用UDP协议。QQ、ICQ等聊天软件使用UDP协议发送消息。7. 解析XML文档有哪几种方式?(索贝笔试题目)DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问 SAX:不同于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问8.error 与 exception的区别?(银海软件,新波)Error表示系统级的错误和程序不必处理的异常,Exception表示需要捕捉或者需要程序进行处理的异常9.String与StringBuffer StringBuilder区别?(银海软件)答:String的长度是不可变的;2(StringBuffer的长度是可变的,如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法;线程安全;CPStringBuilder是从 JDK 5 开始,为StringBuffer该类补充了一个单个线程使用的等价类;通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。g10.集合(Collection)设计模式及UML1. 编程题: 写一个Singleton出来以及指出哪种线程安全?(创立第一轮面试题目)方式一:线程安全public class Singletonprivate static Singleton test = new Singleton();/静态的。保留自身的引用。/必须是私有的构造函数private Singleton()public static Singleton getInstance()/公共的静态的方法。return test;方式二:不安全public class Singletonprivate static Singleton test = null;/静态的。保留自身的引用。/必须是私有的构造函数private Singleton()public static Singleton getInstance()/公共的静态的方法。if(test = null)test = new Singleton();return test;2写一个ProtoType模式?(速集公司考过)以勺子为例:public abstract class AbstractSpoon implements Cloneable String spoonName; public void setSpoonName(String spoonName) this.spoonName = spoonName;public String getSpoonName() return this.spoonName;public Object clone() Object object = null;try object = super.clone(); catch (CloneNotSupportedException exception) System.err.println(AbstractSpoon is not Cloneable);return object;有个具体实现(ConcretePrototype):public class SoupSpoon extends AbstractSpoon public SoupSpoon()setSpoonName(Soup Spoon); 调用Prototype模式很简单:AbstractSpoon spoon = new SoupSpoon();AbstractSpoon spoon2 = spoon.clone(); 当然也可以结合工厂模式来创建AbstractSpoon实例。在Java中Prototype模式变成clone()方法的使用,由于Java的纯洁的面向对象特性,使得在Java中使用设计模式变得很自然,两者已经几乎是浑然一体了。这反映在很多模式上,如Interator遍历模式。3.有几种工厂模式?(聚斯力考过)简单工厂工厂方法抽象工厂4UML有几种图?(重点,简历上写了UML的话这个基本都要问)静态结构图(Static Structure Diagram),其中包括类图(Class Diagram)和对象图(Object Diagram); Use Case图 (Use Case Diagram); 顺序图(Sequence Diagram); 协作图(Collaboration Diagram); 状态图(Statechart Diagram); 活动图(Activity Diagram); 实现图(Implementation Diagram),其中包括成分图(Component Diagram)和展开图(Deployment Diagram)两种图 JSP,Servlet及Struts部分1.Servlet和HttpServlet的区别?(重点)HttpServlet从GenericServlet扩展而来,GenericServlet实现了Servlet接口。当开发你的servlets时,你通常需要扩展GenericServlet的子类。你必须实现service()方法。2.Servlet的生命周期?(重点)Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。3.JSP的内置对象及方法?答:request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header和session数据的有用的方法。 response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)。 out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。 pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。 session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息。 application 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息。 config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。 page表示从该页面产生的一个servlet实例。4. jsp有哪些动作?作用分别是什么? 答:JSP共有以下6种基本动作 jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个JavaBean。 jsp:setProperty:设置JavaBean的属性。 jsp:getProperty:输出某个JavaBean的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。5. JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?答:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是类servlet。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑6.Servlet 和ActionServlet的区别?(重点)Struts中视图产生一个请求,请求被ActionServlet(控制器)接收它在struts-config.xml文件中寻找请求的URI,找到对应的Action类后,Action类执行相应的业务逻辑。7.描述Struts的工作流程及它的XML文件的配置?(重点)处理过程由5个基本的步骤组成。下面是处理步骤的描述。1 由显示视图产生一个请求。2 请求被ActionServlet(控制器)接收,它在struts-config.xml文件中寻找请求的URI,找到对应的Action类后,Action类执行相应的业务逻辑。3 Action类执行建立在模型组件基础上的业务逻辑,模型组件是和应用程序关联的。4 一旦Action类处理完业务逻辑,它把控制权返回给ActionServlet。,Action类提供一个键值作为返回的一部分,它指明了处理的结果。ActionServlet使用这个键值来决定在什么视图中显示Action的类处理结果。5 当ActionServlet把Action类的处理结果传送到指定的视图中,请求的过程也就完成了。8.javascipt的优缺点和内置对象; XX(答:关于javascipt:va1)优点:简单易用,与Java有类似的语法,可以使用任何文本编辑工具编写,只需要浏览器就可执行程序,并且事先不用编译,逐行执行,无需进行严格的变量声明,而且内置大量现成对象,编写少量程序可以完成目标;IZ2)缺点:不适合开发大型应用程序&3)javascript有11种内置对象:/Array,String,Date,Math,Boolean,Number,Function,Global,Error,RegExp,ObjectOracle部分1分别给内连接,左连接,右连接写一个实例?(什么是内连接,左连接和外连接)2数据库的索引和数据字典区别 Hibernate及JDBC 部分1. JDBC怎样连接到数据库Class.forName(driver);/加载驱动Connection con=DriverManager.getConnection(url,user,passwd);PreparedStatment pstat=con.prepareStatement(“insert into t_user values (?,?)”);pstat.setInt(1,100); /setXXX方法第一个参数为占位符的序号pstat.setString(2,”genfv”);pstat.excuteUpdate();2JDBC和Hibernate的区别?3Hibernate的一级和二级缓存?hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等,需要设置vider_class,我们这里用ehcache,在2.1中就是 vider_class=net.sf.hibernate.cache.EhCacheProvider 如果使用查询缓存,加上 hibernate.cache.use_query_cache=true缓存可以简单的看成一个Map,通过key在缓存里面找value。4Hibernate 的主键生成策略?5Hibernate中inverse和cascade的区别这两个属性本身互不影响,但起的作用有些类似,都能引发对关系表的更新。1. inverse只对set+one-to-many(或many-to-many)有效,对many-to-one, one-to-one无效。cascade对关系标记都有效。2. inverse对集合对象整体起作用,cascade对集合对象中的一个一个元素起作用,如果集合为空,那么cascade不会引发关联操作。比如将集合对象置为null, school.setStudentSet(null)inverse导致hibernate执行:udpate STUDENT set SCHOOL_ID=null where SCHOOL_ID=?cascade则不会执行对STUDENT表的关联更新, 因为集合中没有元素。再比新增一个school, session.save(school)inverse导致hibernate执行:for( 对(school的每一个student )udpate STUDENT set SCHOOL_ID=? where STUDENT_ID=? /将学生的school_id改为新的school的idcascade导致hibernate执行:for( 对school的每一个student )session.save(aStudent); /对学生执行save操作extends:如果改变集合中的部分元素(比如新增一个元素),inverse: hibernate先判断哪些元素改变了,对改变的元素执行相应的sqlcascade: 它总是对集合中的每个元素执行关联操作。(在关联操作中,hibernate会判断操作的对象是否改变)3.两个起作用的时机不同:cascade:在对主控方操作时,级联发生。inverse: 在flush时(commit会自动执行flush),对session中的所有set,hibernate判断每个set是否有变化,对有变化的set执行相应的sql,执行之前,会有个判断:if( inverse = true ) return;可以看出cascade在先,inverse在后。inverse 对set + one-to-many 和 set + many-to-many 起的作用不同。hibernate生成的sql不同。对one-to-many,hibernate对many方的数据库表执行update语句。对many-to-many, hibernate对关系表执行insert/update/delte语句,注意不是对many方的数据库表而是关系表。cascase 对set都是一致的,不管one-to-many还是many-to-many。都简单地把操作传递到set中的每个元素。所以它总是更新many方的数据库表。建议:只对set + many-to-many设置inverse=false,其他的标记不考虑inverse属性,都设为inverse=true。对cascade,一般对many-to-one,many-to-many,constrained=true的one-to-one 不设置级联删除。Spring部分主要是解释IOC,DI和AOPDI叫依赖注射,在模式里叫LOC(控制反转)控制反转(Ioc)模式(又称DI:Dependency Injection)就是Inversion of Control,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。IoC(Inversion of Control)是近年来兴起的一种思想,不仅仅是编程思想。主要是协调各组件间相互的依赖关系,同时大大提高了组件的可移植性,组件的重用机会也变得更多。在传统的实现中,由程序内部代码来控制程序之间的关系。我们经常使用new关键字来实现两组键间关系的组合,这种实现的方式会造成组件之间耦合(一个好的设计,不但要实现代码重用,还要将组件间关系解耦)。IoC很好的解决了该问题,它将实现组件间关系从程序内部提到外部容器来管理。也就是说由容器在运行期将组件间的某种依赖关系动态的注入组件中。控制程序间关系的实现交给了外部的容器来完成。AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。J2EE部分1.什么是J2EE?2.J2EE的技术体系?3. EJB与JAVA BEAN的区别?答:Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。4. SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。 Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。测试 版本控制 自动打包1Ant的用法2JUnit用法3CVS 的用法公司面试题目:智乐软件:各种运算符运算之后的表达式结果。包括类型转换和类型提升。比如 int+ 用位运算表达下列算式:1, a=b*256 2, a=b%16 3,a=b/13问答题:1,垃圾回收的概念?什么时候触发垃圾回收?如何减少JVM触发垃圾回收的频率?垃圾回收可以保证足够的内存吗?2,为什么java没有全局变量?用什么可以代替?3,什么叫做混淆(obtuse?)?有那些工具可以混淆jar文件?4,什么是状态机?游戏开发中何时需要用到状态机?5,你认为优秀的程序员应该具有那些素质?以重要性排列顺序。6,名词解释:1,j2ME 2,Ant 3,CVS 4,pathon? 5,javac改错题:代码省略,1,代码改错 2,flagx的作用是什么? 3,最后调用charTemp()函数是为何?写代码:1,写一个函数判断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中华传统木雕工艺师认证考试模拟题库
- 2025年中国农业科技发展高峰论坛专家讲座要点预测题
- 拉晶清装工安全知识培训课件
- 拉力试验培训课件
- 护士肝病科普知识培训课件
- 抢车安全知识培训内容课件
- 2025年环氧丙烷项目发展计划
- 2025年计算机数字信号处理板卡项目发展计划
- 2024-2025学年湖南省常德市石门县九年级(上)期末数学试卷(含答案)
- 2025年煤制合成氨项目建议书
- 婴幼儿的保育与教育 课件 第七章 婴幼儿语言发展与教育
- 2025中国人民抗日战争暨世界反法西斯战争胜利80周年课件PT
- 医德医风培训课件内容
- 挖孔桩孔内气体检测
- 《备课专业化》读书心得
- 《大学生创新创业基础》教案 第1课 大学生创新创业教育概论一
- CJ/T 120-2016给水涂塑复合钢管
- 盾构机施工工艺流程介绍
- 肌肉注射技术试题及答案
- 《界面设计》课件
- 腹腔镜胆囊切除术护理查房 课件
评论
0/150
提交评论