版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
总结4.ArrayList,Vector,LinkedList存储性能和特性5.Collection和Collections的区别6.List、Map、Set三个接口,存取元素时,各有什么特点?7.final,finally,finalize的区别8.Overload和Override的区别。Overload的方法是否可以改变返回值的类型?11.说一下“==〞和equals()方法在字串变量操作中的不同?12.sleep()和wait()有什么区别?13.&与&&的区别?15.请说出你所知道的线程同步的方法。16.网络编程中设计并发效劳器,使用多进程与多线程,请问有什么区别?17.什么是反射?18.什么是回调函数?19.遍历文件夹下所有.java的文件?20.线程的根本概念、线程的本状态以及状态之间的关系22.描述一下JVM加载class文件的原理机制?23.什么是触发器和存储过程?二.Servlet&Jsp局部:24.MVC的各个局部都有那些技术来实现?如何实现?,并说出Servlet和CGI的区别28.jsp有哪些内置对象?作用分别是什么?29.forward和redirect的区别31.什么是B/S结构,C/S结构?三.JDBC&XML35.解析一个XML文档有哪些方式?36.XML文档定义有几种形式?四.Oracle数据库局部:37.薪水排序后薪水排名在第3-5的员工38.删除一张表中所有数据的方式?40.去除oracle数据库表中重复数据应有如下两种方法五.三大框架局部:44.Hibernate的优点?45.J2EE共有23中设计模式,说出其中几种常用的46.Hibernate对象状态有哪几种,并简单介绍一下47.spring的优点?48.介绍一下Struts的工作原理?49.为什么要用Struts?50.什么是DI机制?51.什么是AJAX,什么是AOP?52.什么是Hibernate延迟加载?53.Hibernate中类之间的关联关系有几种?56.为什么要用spring?59.什么是UDDI、SOAP、WSDL?60.Java数据库编程包含哪些类?Java数据库编程的根本过程是什么?61.简要说明JVM、JSP、Servlet、WebServer、WebBrowser之间的关系。62.EJB与JAVABEAN的区别?63.spring有几种事务管理,spring的事务管理接口是什么?64.介绍一下springMVC的工作原理、为什么用spring?65.get和post的区别?66.请简单画出struts技术构建mvc的流程图67.JSP中动态INCLUDE与静态INCLUDE的区别?69.jsp有哪些动作?作用分别是什么?70.Struts的控制器局部,视图局部包括哪些内容?71.WEBSERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。72.Hibernate实现中,load和get方法的区别,find和iterate的区别?73.JAVA中如何进行事务的处理?答:Connection类中提供了3个事务处理方法:74.Hibernate有哪5个核心接口?解答:Configuration接口:配置Hibernate,根据其75.什么是ORM?76.数据连接池的工作机制是什么?77.解释四种会话跟踪技术?78.Statement,PreparedStatement,CallableStatment的区别79.OOAD中的Association〔联合〕、Aggregation(聚合)、Composition〔组合〕的区别?80.请说出你所知道的线程同步的方法。81.谈谈对ClassLoader的理解?82.进程和线程分别该怎么理解?83.同步和异步有何异同,在什么情况下分别使用他们?请举例说明84.sleep()和wait()有什么区别?85.java中会存在内存泄露吗?请简单描述。86.什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?87.程序注释的用途有哪些?带注释的程序有什么缺点?88.UDP和TCP连接有和异同?89.构造器Constructor是否可以被继承?是否可以被Override?90.什么是java序列化,如何实现java序列化?91.面向对象的特征有哪些方面?92.接口是否可继承接口?抽象类是否可实现接口?抽象类是否可继承实体类?93.nonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以94.Bit和Byte是什么意思?它们之间有什么关系?95.你认为java与其他〔你所了解的〕语言相比,有什么优点和缺点?96.一个subclass怎样调用superclass中的方法〔myMethod〕和构造函数?97.排序都有哪几种方法?用伪代码实现一个快速排序98.Stringa=null;if(a!=null&&a.length()>10){...},如果你用“&〞替换“&&〞将发生什么错误?99.多线程有几种实现方法,都是什么?同步的方法有几种,都是什么?100.如何格式化日期101.在java语言中int和Integer有什么区别102、struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的?103.说出几个与spring同类型的开源框架,说出几个与hibernate同类型的开源框架,说出几个与struts同类型的开源框架104.Struts1中actionform和action属于MVC哪一层,为什么?105.EJB包含哪3种bean106.Class.forName〔StringclassName〕这个方法的作用107.你认为在表上建立索引可以提高数据库系统的效率吗,为什么?108.hibernate中的java对象有几种状态,其相互关系如何〔区别和相互转换〕?109.对hibernate的延迟加载如何理解,在实际应用中,延迟加载与session关闭的矛盾是如何处理的?110.请写出一个单例模式。111.在java中,List是个接口,那实现List接口的类有哪些,有什么区别?112.String,StringBufferStringBuilder的区别。113.请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用户点击的是“确认〞还是“取消〞。114.JavaScript如何实现计时功能。115.Java反射机制的作用?116.你是怎么理解java的泛型的?117.简述基于Struts框架Web应用的工作流程118.在工程中用过Spring的哪些方面?及用过哪些Ajax框架?119、abstractclass和interface有什么区别?120.MVC模式中M,V,C每个代表意义,并简述在Struts中MVC的表现方式。121.简单说明什么是递归?什么情况会使用?并使用java实现一个简单的递归程序。122.列出自己常用的jdk包.123.列出自己常用的jdk中的数据结构124.简要描述如何结合struts、hibernate、spring开发Web应用?125.说明反转控制〔IOC〕和面向方向编程〔AOP〕在spring中的应用126.描述J2EE框架的多层结构,并简要说明各层的作用。127、HashMap与TreeMap的区别?128、ArrayList和Vector的区别?129.事务是什么?有哪些属性,并简要说明这些属性的含义。130.类有哪三个根本特性?各特性的优点?131.谈谈对XML的理解?说明Web应用中文件的作用?132.什么是Web容器?133.运行时异常与一般异常有何异同?134.J2EE是什么?它包括哪些技术?135、面向对象的特征有哪些方面?【根底】136、GC是什么?为什么要有GC?137、垃圾回收的优点和原理。并考虑2种回收机制。【根底】138、垃圾回收器的根本原理是什么?垃圾回收器可以马上回收内存吗?有什么方法主动通知虚拟机进行垃圾回收?【根底】139、Strings=newString(“xyz〞);创立了几个StringObject?140、Java中的异常处理机制的简单原理和应用?141、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?【根底】一.CoreJava局部:1.简述一下java根本数据类型及所占位数,java根本数据类型:4类8种逻辑型:booleanfalse/true1byte文本型:char2byte整数型:byte(1byte),short(2byte),int(4byte),long(8byte)浮点数型:float(4byte),double(8byte)2.说出5个的启动时异常:RunTimeException|NullPointerException空指针〔空引用〕异常|——ArrayIndexOutOfBoundsException数组下标越界异常|——ArithmeticException数学运算异常|——ClassCastException强制类型转换异常|——NumberFormatException数据格式转换异常3.HashMap和HashTable的区别:1)HashMap允许空键值对,HashTable不允许2)HashMap不是线程平安的,HashTable是3)HashMap直接实现Map接口,HashTable继承Dictionary类4ArrayList,Vector,LinkedList存储性能和特性它们都实现List接口ArrayList和Vector都是基于数组实现的LinkedList基于双向循环链表〔查找效率低,添加删除容易〕ArrayList不是线程平安的而Vector是线程平安的,所以速度上ArrayList高于Vector5.Collection和Collections的区别。Collection是集合类的上级接口,继承与他的接口主要有Set和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程平安化等操作。6.List、Map、Set三个接口,存取元素时,各有什么特点?List以特定次序来持有元素,可有重复元素。Set无法拥有重复元素,内部排序。Map保存key-value值,value可多值。7.final,finally,finalize的区别final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一局部,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。8.java语言中public、private、protected三个关键字的用法,Overload和Override的区别。Overload的方法是否可以改变返回值的类型?作用域当前类同包子类其它public√√√√protected√√√×default√√××private√×××方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写是父类与子类之间多态性的一种表现,方法名,参数列表(类型)、个数、顺序相同,返回值类型都得与父类的方法一致,访问权限不能更封闭,抛出异常不能宽泛.重载是一个类中多态性的一种表现。方法名相同,但是参数不同〔类型不同或个数不同或参数的顺序不同〕重载的方法是可以改变返回值的类型。9.用一句话总结一下冒泡排序。依次比拟相邻的两个数,将小数放在前面,大数放在后面.10.实现线程平安的两种方式1〕synchronized方法:通过在方法声明中参加synchronized关键字来声明synchronized方法。2〕synchronized块:通过synchronized关键字来声明synchronized块。11.说一下“==〞和equals()方法在字串变量操作中的不同?〞==〞比拟的是两个字符串对象的地址,equals()是比拟的两个字符串的具体值。12.sleep()和wait()有什么区别?sleep是线程类〔Thread〕的方法,导致此线程暂停执行指定时间,给执行时机给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法〔或notifyAll〕后本线程才进入对象锁定池准备获得对象锁进入运行状态。13.&与&&的区别?&位运算符:非短路运算符,它会把所有条件执行完毕之后,才会返回结果&&逻辑运算符〔and〕:短路运算符,遇到不符合条件,立即终止程序的执行14.error和exception区别error:表示恢复不是不可能的一种严重的问题,比方:内存溢出,不指望程序处理exception程序运行时的异常,如果程序设计合理从不会出现的情况15.请说出你所知道的线程同步的方法。wait():使一个线程处于等待状态,并且释放所持有的对象的lock;sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕InterruptedException异常;notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级;notityAll():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。16.网络编程中设计并发效劳器,使用多进程与多线程,请问有什么区别?1)进程:子进程是父进程的复制品子进程获得父进程数据空间堆和栈的复制品2)线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列两者都可以提高程序的并发度,提高程序运行效率和响应时间线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反同时,线程适合于在SMP机器上运行,而进程那么可以跨机器迁移17.什么是反射?在运行过程中:⑴.对于任意一个类,可以知道这个类的属性和方法.⑵.对于任意一个对象,可以调用这个对象的任意方法.对于这种动态获取的信息,以及动态调用对象方法的功能称为反射机制.java反射机制提供的功能:⑴.运行时判断任意对象的所属类;⑵.运行时构造任意类的对象;⑶.运行时判断和调用对象的成员变量和方法;⑷.生成动态代理.18.什么是回调函数?某个程序in)调用效劳程序A(Arrays)中的某个方法(sort),效劳程序A的sort方法在某个时候反过来调用S的某个方法(compareTo),这种情况下,compareTo叫做S的回调方法。例如:publicclassStudentimplementsComparable{privateintid;privateStringname;privateintage;privateintscore;//构造器//getter/setter方法//回调方法publicintcompareTo(Objectobj){returnthis.id-((Student)obj).id;}}Students1=newStudent(1,〞a〞,18,89);Students2=newStudent(2,〞x〞,22,94);Students3=newStudent(3,〞w〞,19,78);Student[]arrs={s1,s2,s3};Arrays.sort(arrs);19.遍历文件夹下所有.java的文件?publicvoidlistFiles(Stringpath){Filedir=newFile(path);Filesfiles[]=dir.listFiles(newFileFilter(){publicbooleanaccept(Filef){returnf.getName().endWith(“.java〞);}});for(Filefile:files){n(file.getName());}}20.线程的根本概念、线程的本状态以及状态之间的关系⑴新建(Born):新建的线程处于新建状态⑵就绪(Ready):在创立线程后,它将处于就绪状态,⑶等待start()方法被调用⑷运行(Running):线程在开始执行时进入运行状态⑸睡眠(Sleeping):线程的执行可通过使用sleep()方法来暂时中止。在睡眠后,线程将进入就绪状态等待(Waiting):如果调用了wait()方法,线程将处于等待状态。用于在两个或多个线程并发运行时。挂起(Suspended):在临时停止或中断线程的执行时,线程就处于挂起状态。恢复(Resume):在挂起的线程被恢复执行时,可以说它已被恢复。阻塞(Blocked)–在线程等待一个事件时〔例如输入/输出操作〕,就称其处于阻塞状态。死亡(Dead)–在run()方法已完成执行或其stop()方法被调用之后,线程就处于死亡状态。21.串行化的考前须知以及如何实现串行化答:如果有循环引用是不可以串行化的。对象输出流的WriteObject方法和对象输入流的ReadObect方法22.描述一下JVM加载class文件的原理机制?JVM中类的装载是由ClassLoader和它的子类来实现的,JavaClassLoader是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。23.什么是触发器和存储过程?触发器是存储在数据库中的块,这些块一旦被构造后,就可以屡次执行,当触发它的事件发生时调用该触发器。触发事件是指对表中数据的操作,如插入、删除和修改。存储过程是将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,那么以后要叫数据库提供与已定义好的存储过程的功能相同的效劳时,只需调用execute,即可自动完成命令。我的理解就是一堆sql的集合,可以建立非常复杂的查询,编译运行,所以运行一次后,以后再运行速度比单独执行SQL快很多UML方面标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图二.Servlet&Jsp局部:24.MVC的各个局部都有那些技术来实现?如何实现?MVC是Model-View-Controller的简写。〞Model〞代表的是应用的业务逻辑〔通过JavaBean,EJB组件实现〕,“View〞是应用的表示面〔由JSP页面产生〕,〞Controller〞是提供给用的处理过程控制〔一般是一个Servlet〕,通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。25.servlet的生命周期,并说出Servlet和CGI的区别web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的doGet()或者doPost()方法。结束效劳,web容器调用servlet的destroy()方法。与cgi的区别在于servlet处于效劳器进程中,它通过多线程方式运行其service方法,一个实例可以效劳于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,效劳完成后就销毁,所以效率上低于servlet。26.jsp与servlet的区别及联系JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是〞类servlet〞。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里别离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。\\两者的创立方式不一样.Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Servlet来生成动态网页很不直观.JSP由HTML代码和JSP标签构成,可以方便地编写动态网页.因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.27.数据库连接池的工作机制:J2EE效劳器启动的时候,会创立一定数量的池连接,并维持不少于此数量的池连接。程序需要时,池驱动程序会返回一个未使用的池连接并将其标记为忙。如果当前没有空闲连接,池驱动会新建一批,数量由配置参数决定。当调用池连接完成后,池驱动将此连接标记为空闲,其他调用就可以使用这个连接。28.jsp有哪些内置对象?作用分别是什么?答:JSP共有以下9种根本内置组件〔可与ASP的6种内部组件相对应〕:request用户端请求,此请求会包含来自GET/POST请求的参数response网页传回用户端的回应pageContext网页的属性是在这里管理session与请求有关的会话期applicationservlet正在执行的内容out用来传送回应的输出configservlet的构架部件pageJSP网页本身exception针对错误网页,未捕捉的例外29.forward和redirect的区别答:forward是效劳器请求资源,效劳器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道效劳器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。redirect就是效劳端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚刚请求的所有参数重新请求,所以session,request参数都可以获取。要跳转到一个其它效劳器上的资源,那么必须使用sendRedirect()方法30.Jsp的四种范围page否是代表与一个页面相关的对象和属性。作用域在当前页.request是是代表与Web客户机发出的一个请求相关的对象和属性。session只要访问的浏览器不关闭,作用域就一直存在。application只要访问的效劳器不关闭,作用域就一直存在。31.什么是B/S结构,C/S结构?C/S是Client/Server的缩写。效劳器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,效劳器安装Oracle、Sybase、Informix或SQLServer等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一局部事务逻辑在前端实现,但是主要事务逻辑在效劳器端实现。浏览器通过WebServer同数据库进行数据交互。32.编码格式转换问题:Stringstr=newString(“中国〞.getBytes(“ISO-8859-1〞),〞GBK〞).trim();三.JDBC&XML33.说说jdbc连接数据库的步骤⑴.注册驱动⑵.获得连接⑶.执行sql语句⑷.获得结果集,进行结果集的处理⑸.关闭结果集⑹.关闭连接,释放资源34.statement和preparedstatement的区别⑴.statement是preparedstatemnet的父类⑵.statement是直接发送sql语句到数据库,事先没有进行预编译。prepatedstatement会将sql进行预编译,当sql语句要重复执行时,数据库会调用以前编译好的sql,所以preparedstatement在性能方面会更好⑶.preparedstatement在执行sql时,对传入的参数进行强制类型转换,以保证数据格式与底层数据库格式一致。35.解析一个XML文档有哪些方式?解析有:dom和sax两种dom:把整个XML文档放入内存,适合XML随机访问,占用内存资源大sax:事件驱动型的XML解析方式,顺序读取,不用一次装载整个文件,遇到标签会触发一个事件,适和对XML的顺序访问,占用内存资源稍小36.XML文档定义有几种形式?a:两种形式dtdschemab:本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上开展schema的根本目的),c:有DOM,SAX,STAX等四.Oracle数据库局部:37.薪水排序后薪水排名在第3-5的员工1)select*from(selectename,sal,rownumrnfrom(selectename,salfromemp_44wheresalisnotnullorderbysaldesc)whererownum<6)wherern>2;2)select*from(selectename,sal,rownumrnfrom(selectename,salfromemp_44wheresalisnotnullorderbysaldesc))wherernbetween3and5;38.删除一张表中所有数据的方式?⑴.truncatetable命令将快速删除数据表中的所有记录⑵.delete产生rollback,如果删除在数据量的表速度会很慢,同时会占用很多的是DLL操作,不产生rollback,速度会快一些。39.用一条sql语句取出所有姓名有重复的学员姓名和重复的记录数.selectname,count(*)fromstudentgroupbynamehavingcount(*)>1orderbycount(*)desc;40.去除oracle数据库表中重复数据应有如下两种方法:方法一:创立新表删除旧表法1〕createtablestudent1asselectdistinctid,name,scorefromstudent;2〕droptablestudent;3〕renamestudent1tostudent;方法二:使用rowid(地址)伪列删除伪列地址除了最大地址值以外的记录deletefromtempwhererowidnotin(selectmax(rowid)fromtempgroupbyid);删除伪列地址除了最大地址值以外的记录deletefromtempwhererowidnotin(selectmin(rowid)fromtempgroupbyid);五.三大框架局部:41.应用效劳器有哪些:weblogic,jboss,tomcat42.Hibernate优于JDBC的地方⑴.对jdbc访问数据库进行了封装,简化了数据访问层的重复代码⑵.Hibernate操作数据库是面向对象的操作43.hibernate工作原理⑴.读取并解析配置文件⑵.读取并解析映射信息,创立SessionFactory⑶.翻开Sesssion⑷.创立事务Transation⑸.持久化操作⑹.提交事务⑺.关闭Session⑻.关闭SesstionFactory44.Hibernate的优点:⑴.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。⑵.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作⑶.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。⑷.hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。45.J2EE共有23中设计模式,说出其中几种常用的:Factory〔工厂模式〕,Builder〔建造模式〕,FactoryMethod〔工厂方法模式〕,Prototype〔原始模型模式〕,Singleton〔单例模式〕,Facade〔门面模式〕,Adapter〔适配器模式〕,Bridge〔桥梁模式〕,Composite〔合成模式〕,Decorator〔装饰模式〕,Flyweight〔享元模式〕,Proxy〔代理模式〕,Command〔命令模式〕,Interpreter〔解释器模式〕,Visitor〔访问者模式〕,Iterator〔迭代子模式〕,Mediator〔调停者模式〕,Memento〔备忘录模式〕,Observer〔观察者模式〕,State〔状态模式〕,Strategy〔策略模式〕,TemplateMethod〔模板方法模式〕,ChainOfResponsibleity〔责任链模式〕工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。46.Hibernate对象状态有哪几种,并简单介绍一下。⑴临时状态:内存对象,并没有保存在数据库⑵持久化状态已经保存在数据库并纳入了session缓存中⑶游离状题啊已经保存在数据库中,但没有纳入session缓存中47.spring的优点?1.降低了组件之间的耦合性,实现了软件各层之间的解耦2.可以使用容易提供的众多效劳,如事务管理,消息效劳等3.容器提供单例模式支持4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能5.容器提供了众多的辅助类,能加快应用的开发对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等属于低侵入式设计,代码的污染极低8.独立于各种应用效劳器的DI机制降低了业务对象替换的复杂性的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的局部或全部48.介绍一下Struts的工作原理?⑴读取配置。加载struts控制器.⑵用户请求用户提交表单或调用URL向WEB应用程序效劳器提交一个请求,请求的数据用协议上传给WEB效劳器。⑶通过struts控制器进行处理,⑷经过一系列的拦截器处理⑸进行业务逻辑的处理⑹响应用户JSP将结果展现给用户。49.为什么要用Struts:⑴JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱。⑵基于Struts开发的应用:⑴不用再考虑公共问题⑵专心在业务实现上⑶结构统一,易于学习、维护⑷新手也可写出好程序50.什么是IOC和DI机制?控制反转IOC(InversionofControl)控制指的就是程序相关类之间的依赖关系.传统观念设计中,通常由调用者来创立被调用者的实例,在Spring里,创立被调用者的工作不再由调用者来完成,而是由Spring容器完成,依赖关系被反转了,称为控制反转,目的是为了获得更好的扩展性和良好的可维护性。依赖注入(Dependencyinjection)创立被调用者的工作由Spring容器完成,然后注入调用者,因此也称依赖注入。控制反转和依赖注入是同一个概念。\\依赖注入〔DependecyInjection〕和控制反转〔InversionofControl〕是同一个概念,具体的讲:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创立被调用者的实例。但在spring中创立被调用者的工作不再由调用者来完成,因此称为控制反转。创立被调用者的工作由spring来完成,然后注入调用者因此也称为依赖注入。spring以动态灵活的方式来管理对象,注入的两种方式,设置注入和构造注入。设置注入的优点:直观,自然构造注入的优点:可以在构造器中决定依赖关系的顺序。51.什么是AJAX,什么是OOP,什么是AOP?Ajax的全称是:AsynchronousJavaScriptAndXML。Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。Ajax包括:XHTML和CSS使用文档对象模型(DocumentObjectModel)作动态显示和交互使用XML和XSLT做数据交互和操作使用XMLRequest进行异步数据接收使用JavaScript将它们绑定在一起。OOP面向对象编程〔ObjectOrientedProgramming,OOP,面向对象程序设计〕是一种计算机编程架构。面向切面编程〔AOP〕完善spring的依赖注入〔DI〕,面向切面编程在spring中主要表现为两个方面⑴面向切面编程提供声明式事务管理⑵spring支持用户自定义的切面面向切面编程〔aop〕是对面向对象编程〔oop〕的补充,面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop是动态的抽象,是对应用执行过程中的步骤进行抽象,,从而获得步骤之间的逻辑划分。aop框架具有的两个特征:⑴各个步骤之间的良好隔离性⑵源代码无关性52.什么是Hibernate延迟加载?延迟加载机制是为了防止一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。53.Hibernate中类之间的关联关系有几种?(如:一对多、多对多的关系)many-to-one、one-to-many、many-to-many、one-to-one54.说下Hibernate的缓存机制一、hibernate一级缓存〔1〕hibernate支持两个级别的缓存,默认只支持一级缓存;〔2〕每个Session内部自带一个一级缓存;〔3〕某个Session被关闭时,其对应的一级缓存自动去除;二、hibernate二级缓存(1)二级缓存独立于session,默认不开启;55.Hibernate的查询方式本地SQL查询、Criteria、Hql56.为什么要用spring?Spring是一个轻量级的IOC和AOP框架。IOC〔控制反转〕意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转AOP〔面向切面〕,它将那些影响多个类的行为封装到可重用的模块中,面向对象是把问题从同类事物中抽象出来,面向切面是把问题从不同类问题中抽象出来。57.struts框架提供了哪些辅助功能⑴自动收集数据〔成员变量〕⑵支持类型转换⑶国际化⑷异常处理⑸标签58.struts1和struts2的区别⑴struts1控制器servlet,struts2控制器filter⑵struts收集数据时ActionForm,Struts2成员变量⑶struts1execute(Resquest,Response),struts2execute()⑷struts1与ServletAPI耦合性强,struts2与ServletAPI耦合性低⑸struts1没有拦截器,struts2有拦截器(可以使代码各司其职)⑹struts1只能使用jstl标签,而struts2提供了OGNL表达式59.什么是UDDI、SOAP、WSDL?解答:UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准标准,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准。SOAP即简单对象访问协议(SimpleObjectAccessProtocol),它是用于交换XML编码信息的轻量级协议。WSDL是一种XML格式,用于将网络效劳描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(效劳)。60.Java数据库编程包含哪些类?Java数据库编程的根本过程是什么?解答:用到的类:Connection、ResultSet、PreparedStatement、StatementJava中访问数据库的步骤如下:1〕注册驱动;2〕建立连接;3〕创立Statement;4〕执行sql语句;5〕处理结果集〔假设sql语句为查询语句〕;6〕关闭连接。61.简要说明JVM、JSP、Servlet、WebServer、WebBrowser之间的关系。解答:当用户在JSP页面上提交了需要效劳器处理的数据后,通过WebBrowser发送到效劳器端,Servlet会根据用户的请求产生必要的相应,如果需要还会通过JVM或WebServer来获取资源,最后把效劳器端的相应结果返回给用户。62.EJB与JAVABEAN的区别?解答:JavaBean是可复用的组件,对JavaBean并没有严格的标准,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于JavaBean是被容器所创立〔如Tomcat)的,所以JavaBean应具有一个无参的构造器,另外,通常JavaBean还要实现Serializable接口用于实现Bean的持久性。JavaBean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。EnterpriseJavaBean相当于DCOM,即分布式组件。它是基于Java的远程方法调用〔RMI〕技术的,所以EJB可以被远程访问〔跨进程、跨计算机〕。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创立和管理。客户通过容器来访问真正的EJB组件。63.spring有几种事务管理,spring的事务管理接口是什么?解答:Spring提供的事务管理可以分为两类:编程式的和声明式的。编程式的,比拟灵活,但是代码量大,存在重复的代码比拟多;而声明式的比编程式的更灵活方便。接口:其中最重要的三个接口:TransactionDefinition、PlatformTransactionManager、TransactionStatus。在Spring中,事务是通过TransactionDefinition接口来定义的。该接口包含与事务属性有关的方法,TransactionDefinition接口中定义了五个表示隔离级别的常量、代表传播行为的常量,在TransactionDefinition中以int的值来表示超时时间,PlatformTransactionManager.getTransaction(…)方法返回一个TransactionStatus对象。返回的TransactionStatus对象可能代表一个新的或已经存在的事务〔如果在当前调用堆栈有一个符合条件的事务〕。TransactionStatus接口提供了一个简单的控制事务执行和查询事务状态的方法。64.介绍一下springMVC的工作原理、为什么用spring?解答:springMVC工作原理:1〕.springmvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。2〕.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.3〕.DispatcherServlet请请求提交到目标Controller4〕.Controller进行业务逻辑处理后,会返回一个ModelAndView5〕.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象6〕.视图对象负责渲染返回给客户端。为什么用spring:AOP让开发人员可以创立非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用AOP后,公共效劳〔比方日志、持久性、事务等〕就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。IOC允许创立一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词倒置所说明的,IOC就像反过来的JNDI。没有使用一堆抽象工厂、效劳定位器、单元素〔singleton〕和直接构造〔straightconstruction〕,每一个对象都是用其协作对象构造的。因此是由容器管理协作对象〔collaborator〕。Spring既是一个AOP框架,也是一IOC容器。Spring最好的地方是它有助于您替换对象。有了Spring,只要用JavaBean属性和配置文件参加依赖性〔协作对象〕。然后可以很容易地在需要时替换具有类似接口的协作对象。65.get和post的区别?解答:Form中的get和post方法,在数据传输过程中分别对应了协议中的GET和POST方法。二者主要区别如下:1〕Get是用来从效劳器上获得数据,而Post是用来向效劳器上传数据;2〕Get将表单中数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?〞连接,而各个变量之间使用“&〞连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL;3〕Get是不平安的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的;4〕Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post;5〕Get限制Form表单的数据集必须为ASCII字符,而Post支持整个ISO10646字符集;6〕Get是Form的默认方法。66.请简单画出struts技术构建mvc的流程图解答67.JSP中动态INCLUDE与静态INCLUDE的区别?解答:动态INCLUDE用jsp:include动作实现<jsp:includepage="head.jsp"/>它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;静态INCLUDE用include伪码实现,它不会检查所含文件的变化,适用于包含静态页面<%@includefile="head.htm"%>68.Session的根本原理是什么?答:Session对象的原理在于,效劳器可以为客户端创立并维护一个所谓的Session对象,用于存放数据。在创立Session对象的同时,效劳器将会为该Session对象产生一个唯一编号,这个编号称之为SessionID,效劳器以Cookie的方式将SessionID存放在客户端。当浏览器再次访问该效劳器时,会将SessionID作为Cookie信息带到效劳器,效劳器可以通过该SessionID检索到以前的Session对象,并对其进行访问。需要注意的是,此时的Cookie中仅仅保存了一个SessionID,而相对较多的会话数据保存在效劳器端对应的Session对象中,由效劳器来统一维护,这样一定程度保证了会话数据平安性,但增加了效劳器端的内存开销。存放在客户端的用于保存SessionID的Cookie会在浏览器关闭时去除。我们把用户翻开一个浏览器访问某个应用开始,到关闭浏览器为止交互过程称为一个“会话〞。在一个“会话〞过程中,可能会向同一个应用发出了屡次请求,这些请求将共享一个Session对象,因为这些请求携带了相同的SessionID信息。Session对象的正常使用要依赖于Cookie。如果考虑到客户端浏览器可能出于平安的考虑禁用了Cookie,应该使用URL重写的方式使Session在客户端禁用Cookie的情况下继续生效。69.jsp有哪些动作?作用分别是什么?解答:JSP共有以下6种根本动作:jsp:include:在页面被请求的时候引入一个文件;jsp:useBean:寻找或者实例化一个JavaBean。;jsp:setProperty:设置JavaBean的属性。;jsp:getProperty:输出某个JavaBean的属性;jsp:forward:把请求转到一个新的页面;jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记70.Struts的控制器局部,视图局部包括哪些内容?解答:控制器:在struts中,根本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射〔由ActionMapping类进行描述〕进行定义。对于业务逻辑的操作那么主要由Action、ActionMapping、ActionForward这几个组件协调完成的,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward那么指定了不同业务逻辑或流程的运行方向。文件配置控制器。视图:视图主要由JSP建立,struts包含扩展自定义标签库〔TagLib〕,可以简化创立完全国际化用户界面的过程。目前的标签库包括:BeanTags、HTMLtags、LogicTags、NestedTags以及TemplateTags等。71.WEBSERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。解答:WebService是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术标准,这些标准使得WebService能与其他兼容的组件进行互操作;JAXP(JavaAPIforXMLParsing)定义了在Java中使用DOM,SAX,XSLT的通用的接口,这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码;JAXM(JavaAPIforXMLMessaging)是为SOAP通信提供访问方法和传输机制的API;72.Hibernate实现中,load和get方法的区别,find和iterate的区别?解答:load和get方法的区别:hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;而对于get方法,hibernate一定要获取到真实的数据,否那么返回null。find和iterate的区别:find方法通过一条SelectSQL实现了查询操作,而iterate方法要执行多条第一次查询获取所有符合条件的记录的id,然后再根据各个id从库表中读取对应的记录,这是一个典型的N+1次的查询问题,如果符合条件记录有10000条,就需要执行10001条SelectSQL,性能会非常差。73.JAVA中如何进行事务的处理?答:Connection类中提供了3个事务处理方法:setAutoCommit(BooleanautoCommit):设置是否自动提交事务,默认为自动提交,即为true,通过设置false禁止自动提交事务;commit():提交事务;rollback():回滚事务。74.Hibernate有哪5个核心接口?解答:Configuration接口:配置Hibernate,根据其启动hibernate,创立SessionFactory对象;SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创立session对象,sessionFactory是线程平安的,意味着它的同一个实例可以被应用的多个线程共享,是重量级、二级缓存;Session接口:负责保存、更新、删除、加载和查询对象,是线程不平安的,防止多个线程共享同一个session,是轻量级、一级缓存;Transaction接口:管理事务;Query和Criteria接口:执行数据库的查询。75.什么是ORM?解答:对象关系映射〔Object—RelationalMapping,简称ORM〕是一种为了解决面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中;本质上就是将数据从一种形式转换到另外一种形式。76.数据连接池的工作机制是什么?解答:J2EE效劳器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。77.解释四种会话跟踪技术?解答:隐藏表单域、URL重写,Cookie、Session。1〕.隐藏表单域:<inputtype="hidden">,非常适合步需要大量数据存储的会话应用。2〕.URL重写:URL可以在后面附加参数,和效劳器的请求一起发送,这些参数为名字/值对。3〕.Cookie:一个Cookie是一个小的,已命名数据元素。效劳器使用SET-Cookie头标将它作为响应的一局部传送到客户端,客户端被请求保存Cookie值,在对同一效劳器的后续请求使用一个Cookie头标将之返回到效劳器。与其它技术比拟,Cookie的一个优点是在浏览器会话结束后,甚至在客户端计算机重启后它仍可以保存其值。4〕.Session:使用setAttribute(Stringstr,Objectobj)方法将对象捆绑到一个会话78.Statement,PreparedStatement,CallableStatment的区别解答:区别有以下几点:1〕Statement是PreparedStatement和CallableStatement的父类;2〕Statement是直接发送Sql语句到数据库,事先没有进行预编译。PreparedStatement会将sql进行预编译,当sql语句要重复执行时,数据库会调用以前预编译好的sql语句,所以PreparedStatement在性能方面会更好;3〕PreparedStatement在执行sql时,对传入的参数可以进行强制的类型转换。以保证数据格式与底层的数据库格式一致。4〕CallableStatement适用与存储过程的查询表达语句79.OOAD中的Association〔联合〕、Aggregation(聚合)、Composition〔组合〕的区别?解答:三者从概念上来讲:Association是一般的关联,有〞use-a〞的含义。Aggregation和Composition都有整体和局部的关系,其中Aggregation中的局部脱离了整体,局部仍然有意义,有〞hasa〞的含义,是共享式的。而Composition中的局部脱离了整体,局部将没有任何意义,是独占式的。从代码实现的角度上讲:三者都是以属性出现,其中Association中作为属性出现时,不需要对其进行强制赋值,只要在使用是对其进行初始化即可。Aggregation中作为属性出现时,需要在构造器中通过传递参数来对其进行初始化。Composition中作为属性出现时,需要在整体的构造器中创立局部的具体实例,完成对其的实例化。从数据库的层面上来讲:Association不需要被级联删除,Aggregation不需要被级联删除,Composition是需要被级联删除的。80.请说出你所知道的线程同步的方法。解答:wait():使一个线程处于等待状态,并且释放所持有的对象的lock;sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常;notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级;notityAll():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。81.谈谈对ClassLoader的理解?解答:ClassLoader加载类用的是全盘负责委托机制。所谓全盘负责,即是当一个classloader加载一个Class的时候,这个Class所依赖的和引用的所有Class也由这个classloader负责载入,除非是显式的使用另外一个classloader载入;委托机制那么是先让parent〔父〕类加载器(而不是super,它与parentclassloader类不是继承关系)寻找,只有在parent找不到的时候才从自己的类路径中去寻找。此外类加载还采用了cache机制,也就是如果cache中保存了这个Class就直接返回它,如果没有才从文件中读取和转换成Class,并存入cache,这就是为什么我们修改了Class但是必须重新启动JVM才能生效的原因。82.进程和线程分别该怎么理解?解答:进程是资源分配的根本单位。所有与该进程有关的资源,都被记录在进程控制块PCB中。以表示该进程拥有这些资源或正在使用它们。另外,进程也是抢占处理机的调度单位,它拥有一个完整的虚拟地址空间。与进程相对应,线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。当进程发生调度时,不同的进程拥有不同的虚拟地址空间,而同一进程内的不同线程共享同一地址空间。线程只由相关堆栈〔系统栈或用户栈〕存放器和线程控制表TCB组成。存放器可被用来存储线程内的局部变量,但不能存储其他线程的相关变量。发生进程切换与发生线程切换时相比拟,进程切换时涉及到有关资源指针的保存以及地址空间的变化等问题;线程切换时,由于同不进程内的线程共享资源和地址空间,将不涉及资源信息的保存和地址变化问题,从而减少了操作系统的开销时间。而且,进程的调度与切换都是由操作系统内核完成,而线程那么既可由操作系统内核完成,也可由用户程序进行。83.同步和异步有何异同,在什么情况下分别使用他们?请举例说明解答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。84.sleep()和wait()有什么区别?解答:sleep是线程类〔Thread〕的方法,导致此线程暂停执行指定时间,给执行时机给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法〔或notifyAll〕后本线程才进入对象锁定池准备获得对象锁进入运行状态。85.java中会存在内存泄露吗?请简单描述。解答:内存泄露是指系统中存在无法回收的内存,有时候会造成内存缺乏或系统崩溃。Java存在内存泄露。Java中的内存泄露当然是指:存在无用但是垃圾回收器无法回收的对象。而且即使有内存泄露问题存在,也不一定会表现出来。自己实现堆栈的数据结构时有可能会出现内存泄露。86.什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?解答:应用程序域:一种边界,它由公共语言运行库围绕同一应用程序范围内创立的对象建立〔即,从应用程序入口点开始,沿着对象激活的序列的任何位置〕。应用程序域有助于将在一个应用程序中创立的对象与在其他应用程序中创立的对象隔离,以使运行时行为可以预知。在一个单独的进程中可以存在多个应用程序域。托管代码:由公共语言运行库环境〔而不是直接由操作系统〕执行的代码。托管代码应用程序可以获得公共语言运行库效劳,例如自动垃圾回收、运行库类型检查和平安支持等。这些效劳帮助提供独立于平台和语言的、统一的托管代码应用程序行为。强类型系统:通过运行时类型识别〔RTTI〕(Run-TimeTypeIdentification),程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。装箱、拆箱:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。重载:是方法的名称相同。参数或参数类型不同,进行屡次重载以适应不同的需要。CTS:通用语言系统。CLS:通用语言标准。CLR:公共语言运行库。87.程序注释的用途有哪些?带注释的程序有什么缺点?解答:注释可以说明程序,给自己或他人在阅读程序时提供帮助,使程序更容易理解,也就是增强程序代码的可读性。过多的代码注释会使程序结构变得不清晰。88.UDP和TCP连接有和异同?解答:TCP协议是面向连接的,每个数据包的传输过程是:先建立链路、数据传输、然后去除链路。数据包不包含目的地址。受端和发端不但顺序一致,而且内容相同。它的可靠性高;UDP协议是面向无连接的,每个数据包都有完整的源、目的地址及分组编号,各自在网络中独立传输,传输中不管其顺序,数据到达收端后再进行排序组装,遇有丧失、过失和失序等情况,通过请求重发来解决。它的效率比拟高89.构造器Constructor是否可以被继承?是否可以被Override?解答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。90.什么是java序列化,如何实现java序列化?解答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题;序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需实现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Objectobj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话那么用输入流。91.面向对象的特征有哪些方面?解答:面向对象的特征主要有以下几个方面:1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一局部,暂时不用局部细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类〔子类〕,而原始类称为新类的基类〔父类〕。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3)封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个根本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。4)多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。92.接口是否可继承接口?抽象类是否可实现接口?抽象类是否可继承实体类?解答:接口是可以继承接口的并且可以继承多个其它接口;抽象类可以实现接口中的方法;抽象类可以继承实体类。93.nonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?解答:匿名内部类是可以继承其它类,同样也可以去实现接口的,用法为:JButtonbutton=newJButton();button.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){//somemothod...}});这样的用法在swing编程中是经常使用的,就是因为它需要用到注册监听器机制,而该监听类如果只效劳于一个组件,那么,将该类设置成内部类/匿名类是最方便的。94.Bit和Byte是什么意思?它们之间有什么关系?解答:bit中文名称是位,是用以描述电脑数据量的最小单位。byte〔字节〕是计算机信息技术用于计量存储容量和传输容量的一种计量单位1byte=8bit95.你认为java与其他〔你所了解的〕语言相比,有什么优点和缺点?解答:1).Java没有预处理指令。〔如C中的#define,#include,#ifdef等〕。C中的常量定义在Java中用staticfinal来取代。2).Java中没有C中的全局变量。3).Java中的主类型的size是确定的,而C中主类型的size跟平台相关。4).Java中没有了指针,它使用了类似的句柄来取代指针,但是Java中不允许对句柄进行加减,没有取地址操作符之类的东东。5).Java有垃圾收集机制,不需要自己释放空间。6).Java没有goto语句。Java在C提供的控制语句根底上增加了异常处理和标签break和continue语句。这些可以替代goto的作用。7).C要求一个方法或块中使用的所有局部变量的定义在该方法或块的最开始处定义,而Java允许这些定义在方法或块的任意地方出现。8).Java不要求在调用一个函数以前已经定义了该函数,可以在调用点后面定义。而C有这个要求。9).Java不支持C中的strut和union类型。Java支持方法重载。10).Java不支持C中的enum关键字。11).Java不支持C中的bitfields能力。12).Java不支持C的typedef。13).Java不支持C的方法指针。14).Java不支持C的可变参数表。java和.net的都不适合做桌面程序,这两个比拟适合写WEB的程序;c++比拟适合写桌面程序c++/java都是强类型的静态预编译型语言。优点是结构性强,程序可读性好,开发效率高,适合开发大型应用。就本人的经验而言,java的开发效率优于c++,实际上java大行其道的首要因素就是它够简单。java尤其不适合开发桌面程序,GUI的API一直都是java的弱点;perl/python是动态解释型语言。perl是弱类型的而python是强类型的,后者的变量一旦赋值,就拥有了类型,不能再赋其他类型的值。不象javascript/perl可以随便定义。perl是unix下的王牌工具,在缺乏IDE的字符界面下,很好地弥补了unix;shell/utility的缺乏,并且局部继承了面向对象语言的灵活性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林艺术学院《媒体发布与管理》2021-2022学年第一学期期末试卷
- 吉林艺术学院《构成与表现》2021-2022学年第一学期期末试卷
- 企业互关互助协议书范文范本
- 【初中数学】正数和负数课件 2024-2025学年人教+数学七年级上册
- 吉林师范大学《小学跨学科教学案例研究》2021-2022学年第一学期期末试卷
- 吉林艺术学院《教育学》2021-2022学年第一学期期末试卷
- 【初中数学】实际问题与一元一次方程(6)余缺和差倍数课件 2024-2025学年人教版数学七年级上册
- 吉林师范大学《数字图像处理技术》2021-2022学年期末试卷
- 2014年广西桂林市中考语文试卷(学生版)
- 2014年湖南省湘潭市中考语文试卷(含解析版)
- 民办小学招生方案
- 承包人实施计划
- 神经外科标准护理的计划范文
- 数列部分单元教学设计
- 人教版八年级数学上册《幂的运算》专项练习题-附含答案
- 青少年情绪管理
- GH-T 1384-2022 大麦青汁粉标准
- 山地旅游问卷调查
- 山东省青岛市即墨区2023-2024学年九年级上学期期中英语试卷
- 《大学生就业指导》课件-大学生职业素养
- 广东省华南师范大学附中2023-2024学年高一上学期期中生物试题(解析版)
评论
0/150
提交评论