




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. Set实现的基础是Map(HashMap);2. Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象;性能时Map所要面对的一个大问题。如果你知道get()时怎么工作的,你就会发觉(比方说)在ArrayList里面找对象会是相当慢的。而这正是 HashMap的强项。它不是慢慢地一个个地找这个键,而是用了一种被称为hash code的特殊值来进行查找的。散列(hash)时一种算法,它会从目标对象当中提取一些信息,然后生成一个表示这个对象的“相对独特”的int。 hashCode()是Object根类的方法,因此所有Java对象都能生
2、成hash code。HashMap则利用对象的hashCode()来进行快速的查找。这样性能就有了急剧的提高。设计模式方面 1、开发中都用到了那些设计模式?用在什么场合? 答:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需再重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。 2、UML方面 答: 标准建模语言UML。 用例图, 静态图 ( 包括 类图、对象图 和 包图 ), 行为图, 交互图 ( 顺序图, 合作图 ), 实现图, *1、
3、 概述struts,以及struts如何实现MVC架构的?答:struts framework是一种基于java的技术,Web应用程序开发人员通过struts framework即可充分利用面向对象设计、代码重用以及“编写一次、到处运行”的优点。Struts提供了一种创建Web应用程序的框架,其中对应用程序的显示、表示和数据的后端代码进行了抽象。Struts采用jsp作为MVC的视图, 由ActionServlet具体指定的action动作类作为控制器即MVC中的C,负责视图与模型之间的交互。控制器的每个入口点都由名为struts-config.xml的配置文件设置。该文件把来自视图的请求映射
4、为特定的JAVA类以进行相应的处理,控制器还指定下一个视图的位置。Struts中的模型主要指的就是javabean,它是模型的代表,主要封装数据和业务逻辑。Struts的处理流程:1 控制器进行初始化工作,读取配置文件,为不同的Struts模块初始化相应的ModulConfig对象。2 控制器接收Http请求,并从ActionConfig中找出对应于该请求的Action子类,如果没有对应的Action,控制器直接将请求转发给JSP或者静态页面,否则控制器将请求分发至具体的Action类进行处理。3 在控制器调用具体的Action的Execute方法之前,ActionForm对象将利用Http请
5、求中的参数来填充自已。还可以在ActionForm类中调用Validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的ActionErrors对象。4 执行具体的的Execute的方法,它负责执行相应的业务逻辑。执行完后,返回一个ActionForward对象,控制器通过该ActionForward对象来进行转发工作。也可以把Action要处理的业务逻辑封装在JavaBean中,如果系统中还有EJB,那么通过JavaBean调用EJB以完成业务处理;如果没有EJB,那么就直接在JavaBean中连接数据库,进行数据库相关的操作。*2、 概述MVC体系结构答:MVC包括三类对象
6、,model是应用对象,view是视图,controller是控制器,它定义用户界面对用户输入的响应方式。在MVC体系中,模型通常被称为“业务逻辑”,是真正完成任务的代码,视图就是使用界面,反映数据的变化。控制器控制着模型和视图之间的交互过程,它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型在MVC中,表示层和逻辑层分离,各部分可相互独立进行开发,便于开发和维护,提高了开发效率。3、 多线程的优点答:可分两方面来答:? 相对于单线程而言 :可以响应多任务的并发操作。多线程取消了主循环和轮流检测机制,一个线程可以暂停而不阻止系统其他的部分的执行,而且当程序中一个线程
7、阻塞时,只有那个被阻塞的线程暂停,所有其他的线程继续执行。? 相对于进程而言:(可以答也可以不答)它所要求的开销比较小,转换成本较小。所有线程共享同一地址空间,相互协作。彼此之间通信很容易。4、 EJB概述答:EJB是企业级的JavaBean,它提供了构建企业级业务逻辑的一种组件模型。 EJB分为三种:Session Bean Entity Bean Message-Driven Bean 三种,其中Session Bean分为有状态和无状态Session Bean两种,Entity Bean分为容器管理的Entity Bean ( CMP ) 和 Bean管理的 Entity Bean (
8、BMP )。每一个EJB由一个远程接口、一个本地接口和一个EJB容器实现组成,远程接口声明了提供给EJB客户调用的各种应用方法,本地接口声明了创建新的EJB实例的create方法、寻找EJB实例的查找(finder)方法以及刪除EJB实例的remove方法。EJB容器提供了EJB的运行环境和生命周期的管理。4、 用java访问Oracle数据库、取得记录并输出到界面答:. Class.forName(“oracle.jdbc.driver.OracleDriver”); Connection conn=DriverManager.getConnection( url , username ,
9、password ); Statement stmt=conn.createStatement(); String str=”select * from table”; ResultSet rs=stmt.executeQuery(str); While(rs.next() rs.close(); stmt.close(); conn.close();5、 概述java垃圾回收机制答:它的工作原理如下: 当不存在对一个对象的引用时,我们就假定不再需要那个对象,那个对象所占有的存储单元可以被收回,可通过System.gc()方法回收,但一般要把不再引用的对象标志为null为佳。6、 java类是
10、否可以多继承,怎么实现多继承?答:java没有多继承,但可以通过接口的形式来达到多继承的目地。7、 面向对象的特点答:面向对象有三大特点:封装、继承、多态。(如果要回答四个,可加上 抽象性 这一特点)9、接口有什么优点答:接口有以下优点:1 接口只是一个框架而没有实现,因此在接口定义时不需要考虑接口中的方法如何实现。2 利用接口可达到实现多继承的目地。3 可以在不暴露对象的类的前提下,暴露对象的编程接口。4 不用强迫类关系在无关类中截获相似处(采用适配器就可以了)。5 声明想执行的一个或多个方法。10、 ArrayList 与 Vector 的区别答:主要从两个方面来说明:? 安全、效率方面如
11、果要实现同步安全,则要用Vector,否则则用ArrayList,因为ArrayList不考虑同步安全的问题,所以效率要高些。? 资源方面当两者的容量已满时,它们都会自动增长其容量,但Vector是按其容量的一倍增长,而ArrayList则按其容量的50%增加,所以Vector更能节省资源。11、MVC结构在Jtable中怎样实现的,这种结构有什么好处?答、在Jtable中不存储它的单元数据,它的所有实例把它们的单元值交给实现了TableModel接口的对象来维护和管理,所以在MVC结构中,Jtable的表格主要体现了一个V的作用,其表格将数据变化体现出来,而数据模型则体现了M的作用,封装数据
12、和业务逻辑。注:详细解说见第二题12、在控制台中输入一个字符串,然后按照逆序打印出来答:import java.io.*; public class testpublic static void main(String args) String A=”; String B=”; String C=”; try BufferedReader br=new BufferedReader(new InputStreamReader(System.in); If (B=br.readLine()!=null) A=A+B; for(int I=A.length()-1;I=0;I-) C=C+A.su
13、bstring(I,I+1);System.out.println(C); catch(Exception e) System.out.println(e.getMessage(); 13、java是否存在内存泄露答:存在,当一个对象引用另一对象后,当另一对象为空时,会出现内存泄露。14、String类的值是否可以改变答:String类的值在初始后不能改变,如果要改变,可转换为StringBuffer类,这个类的值是可以动态改变的。(这里主要考String 和 StringBuffer 的区别)17、java 有几种修饰符?默认的是什么?答:(注:修饰符是影响类、变量及成员方法的生存空间和可访
14、问性的关键字)修饰符 类 成员方法 成员变量 局部变量abstract static public protected private private protected synchronized native volatile final transient 以下是访问控制修饰符: 默认为friendly 修饰符 同类 同包 子孙类 不同包public protected friendly private 18、toString方法的概述 答:因为每个类都继承了Object类,所以都实现了toString()方法。 通过toString()方法可以决定所创建对象的字符串表达形式。19、Obj
15、ect类的概述答:Object类是所有其他的类的超类,Object的一个变量可以引用任何其他类的对象。因为数组是作为类实现的,所以Object的一个变量也可以引用任何数组,它包括以下几种方法: clone() equals() finalize() getClass() hashCode() notify() notifyAll() toString() wait()20、java特点答:java具有以下几个主要特点:? 简单性? 面向对象:JAVA是完全面向对象的,它支持静态和动态风格的代码继承及重用? 分布式:包括数据分布和操作分布? 健壮性:java系统仔细检测对内存的每次访问,确认它是
16、否合法,而且在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。? 结构中立? 安全性:java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。? 与平台无关:java写的应用程序不用修改就可在不同的软硬平台上运行。平台无关性有两种:源代码级和目标代码级。 Java主要靠JAVA虚拟机在目标代码级上实现平台无关性? 解释执性:运行JAVA程序时,它首先被编译成字节代码,字节代码非常类似机器码,执行效率非常高。? 高性能? 多性程? 动态性:它允许程序动态的装入运行时需要的类。
17、21、什么叫抽象类?抽象类跟接口有什么区别?为什么引进数据接口概念?答:具有关键字abstract ,在实现内容上没有完全定义的类就叫抽象类。抽象类和接口的区别如下: 在类继承抽象类时,只需实现部分具体方法和全部抽象方法,而实现接口则要实现里面的全部方法。在接口中无成员变量,而抽象类中可有成员变量。在Java中引进接口主要是为了解决多继承的问题。22、doGet与doPut的区别?答: doPut会把地址作为一个文件写到服务器,而doGet不会,而只显示在地址栏。23、多线程实现有那几种方法,同步有哪几种方法?答:实现同步主要有两种方法:1.synchronized 2.wait notify
18、 实现多线程主要继承Thread 类和实现Runnable接口。24、JSP页面的跳转?答:jsp页面实现跳转主要有jsp:forward 和 sendRedirect 两种方法jsp:forward:在本容器内跳转 。 跳转后,地址栏地址不变 。效率高。跳转后立即结束本页的内容。sendRedirect:在容器之间的跳转,跳转后地址栏地址为跳转后的地址,效率较低。通常采用jsp:forward方式跳转。25、类变量的初始化答:在Java中类变量在局部中一定要初始化,因为局部变量会覆盖全局变量,否则会报错:变量未初始化。全局变量则可以不初始化,而到具体的内部方法或其他的类成员中初始化。26、数
19、组的定义答:数组是作为一种对象实现的。数组元素可以包含作何类型值,但数组里面的每个元素的类型必须一致创建数组步聚如下:? 声明? 构造? 初始化27、Hastable 与HashMap的区别?答:Hashtable和Hashmap的主要区别如下:? Hashtable是同步的,而HashMap不是同步的。所以不要求同步的时候,用HashMap的效率较高? Hashtable版本较HashMap版本低。Java代码查错:1. abstract class Name private String name; public abstract boolean isStupidName(String n
20、ame) 大侠们,这有何错误?答案: 错。abstract method必须以分号结尾,且不带花括号。2.public class Something void doSomething () private String s = ; int l = s.length(); 有错吗?答案: 错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。3.abstract class Somet
21、hing private abstract String doSomething ();这好像没什么错吧?答案: 错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstractmethod封锁起来呢? (同理,abstract method前不能加final)。4.public class Something public int addOne(final int x) return +x; 这个比较明显。答案: 错。int x被修饰成final,意味着x不能在addOne
22、 method中被修改。5.public class Something public static void main(String args) Other o = new Other(); new Something().addOne(o); public void addOne(final Other o) o.i+; class Other public int i;和上面的很相似,都是关于final的问题,这有错吗?6.class Something int i; public void doSomething() System.out.println(i = + i); 有什么错呢
23、? 看不出来啊。答案: 正确。输出的是i = 0。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default 的default value是0。7.class Something final int i; public void doSomething() System.out.println(i = + i); 和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?答案: 错。final int i是个final的instant variable (实例变量,或叫成员变量)。final的inst
24、ant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为final int i = 0;。8.public class Something public static void main(String args) Something s = new Something(); System.out.println(s.doSomething() returns + doSomething(); public String doSomething() return Do something .; 看上去很完美。答案: 错
25、。看上去在main里call doSomething没有什么问题,毕竟两个methods都在同一个class里。但仔细看,main是static的。static method不能直接call non-static methods。可改成System.out.println(s.doSomething() returns + s.doSomething();。同理,static method不能访问non-static instant variable。9.此处,Something类的文件名叫OtherThing.javaclass Something private static void m
26、ain(String something_to_do) System.out.println(Do something .); 这个好像很明显。答案: 正确。从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名相同。10interface A int x = 0;class B int x =1;class C extends B implements A public void pX() System.out.println(x); public static void main(String args) new C().pX(); 答案:错
27、误。在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两个包时直接声明Date一样)。对于父类的变量,可以用super.x来明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确。11.interface Playable void play();interface Bounceable void play();interface Rollable extends Playable, Bounceable Ball ball = new Ball(Pin
28、gPang);class Ball implements Rollable private String name; public String getName() return name; public Ball(String name) = name; public void play() ball = new Ball(Football); /错在这儿 System.out.println(ball.getName(); 这个错误不容易发现。答案: 错。interface Rollable extends Playable, Bounceable没有问题。interf
29、ace可继承多个interfaces,所以这里没错。问题出在interface Rollable里的Ball ball = new Ball(PingPang);。任何在interface里声明的interface variable (接口变量,也可称成员变量),默认为public static final。也就是说Ball ball = new Ball(PingPang);实际上是public static final Ball ball = new Ball(PingPang);。在Ball类的Play()方法中,ball = new Ball(Football);改变了ball的reference,而这里的ball来自Rollable interface,Rollable interfa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届广西北部湾四市同城联考九年级物理第一学期期末质量跟踪监视试题含解析
- 四川省成都市新都区2024-2025学年八上物理期末复习检测模拟试题含解析
- 河南省长葛市2024-2025学年物理八年级第一学期期末联考试题含解析
- 浙江省杭州拱墅区四校联考2024-2025学年化学九上期末复习检测模拟试题含解析
- 浙江省临海市2024年数学八上期末监测模拟试题含解析
- 贵州省黔东南市2024年物理九年级第一学期期末调研试题含解析
- 黑龙江省哈尔滨市延寿县2026届中考物理最后一模试卷含解析
- 安徽省合肥市科大附中2026届中考数学全真模拟试卷含解析
- 2026届四川省资阳市雁江区中考适应性考试数学试题含解析
- 广西河池市巴马县2026届初中物理毕业考试模拟冲刺卷含解析
- 阀门维修与更换操作规范考核试卷
- 2024年快递员职业技能大赛考试题库(含答案)
- 防洪防汛施工现场应急预案(16篇)
- 中华护理学会老年人误吸的预防团体标准解读
- 肝切除合并糖尿病
- 喷漆作业安全培训
- 商业项目计划书模板32
- 硫酸装置内焚硫炉筑炉工程施工方案
- 《出口退税培训》课件
- 雾化吸入疗法课件
- 中国个人财富报告
评论
0/150
提交评论