`
yousking
  • 浏览: 33404 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

java面试大总结(2)

    博客分类:
  • J2EE
阅读更多

设计模式方面

1、开发中都用到了那些设计模式?用在什么场合?
答:   每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需再重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。

2、UML方面
答: 标准建模语言UML。 用例图,  静态图 ( 包括 类图、对象图 和 包图 ),  行为图,  交互图
( 顺序图, 合作图 ),  实现图,


1、 概述struts,以及struts如何实现MVC架构的?
答:struts framework是一种基于java的技术,Web应用程序开发人员通过struts framework即可充分利用面向对象设计、代码重用以及“编写一次、到处运行”的优点。Struts提供了一种创建Web应用程序的框架,其中对应用程序的显示、表示和数据的后端代码进行了抽象。Struts采用jsp作为MVC的视图,由ActionServlet具体指定的action动作类作为控制器即MVC中的C,负责视图与模型之间的交互。控制器的每个入口点都由名为struts-config.xml的配置文件设置。该文件把来自视图的请求映射为特定的JAVA类以进行相应的处理,控制器还指定下一个视图的位置。Struts中的模型主要指的就是javabean,它是模型的代表,主要封装数据和业务逻辑。
Struts的处理流程:
 控制器进行初始化工作,读取配置文件,为不同的Struts模块初始化相应的ModulConfig对象。
 控制器接收Http请求,并从ActionConfig中找出对应于该请求的Action子类,如果没有对应的Action,控制器直接将请求转发给JSP或者静态页面,否则控制器将请求分发至具体的Action类进行处理。
 在控制器调用具体的Action的Execute方法之前,ActionForm对象将利用Http请求中的参数来填充自已。还可以在ActionForm类中调用Validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的ActionErrors对象。
 执行具体的的Execute的方法,它负责执行相应的业务逻辑。执行完后,返回一个ActionForward对象,控制器通过该ActionForward对象来进行转发工作。也可以把Action要处理的业务逻辑封装在JavaBean中,如果系统中还有EJB,那么通过JavaBean调用EJB以完成业务处理;如果没有EJB,那么就直接在JavaBean中连接数据库,进行数据库相关的操作。

2、 概述MVC体系结构
答:MVC包括三类对象,model是应用对象,view是视图,controller是控制器,它定义用户界面对用户输入的响应方式。
在MVC体系中,模型通常被称为“业务逻辑”,是真正完成任务的代码,视图就是使用界面,反映数据的变化。控制器控制着模型和视图之间的交互过程,它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型
在MVC中,表示层和逻辑层分离,各部分可相互独立进行开发,便于开发和维护,提高了开发效率。

3、 多线程的优点
答:可分两方面来答:
 相对于单线程而言 :
可以响应多任务的并发操作。
多线程取消了主循环和轮流检测机制,一个线程可以暂停而不阻止系统其他的部分的执行,而且当程序中一个线程阻塞时,只有那个被阻塞的线程暂停,所有其他的线程继续执行。
 相对于进程而言:(可以答也可以不答)
它所要求的开销比较小,转换成本较小。
所有线程共享同一地址空间,相互协作。
彼此之间通信很容易。

4、 用java访问Oracle数据库、取得记录并输出到界面
答:……………………..
   Class.forName(“oracle.jdbc.driver.OracleDriver”);
   Connection conn=DriverManager.getConnection( url , username , 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类是否可以多继承,怎么实现多继承?
答:java没有多继承,但可以通过接口的形式来达到多继承的目地。

7、 面向对象的特点
答:面向对象有三大特点:封装、继承、多态。(如果要回答四个,可加上  抽象性  这一特点)

9、接口有什么优点
答:接口有以下优点:
 接口只是一个框架而没有实现,因此在接口定义时不需要考虑接口中的方法如何实现。
 利用接口可达到实现多继承的目地。
 可以在不暴露对象的类的前提下,暴露对象的编程接口。
 不用强迫类关系在无关类中截获相似处(采用适配器就可以了)。
 声明想执行的一个或多个方法。

10、 ArrayList 与 Vector 的区别
答:主要从两个方面来说明:
 安全、效率方面
如果要实现同步安全,则要用Vector,否则则用ArrayList,因为ArrayList不考虑同步安全的问题,所以效率要高些。
 资源方面
当两者的容量已满时,它们都会自动增长其容量,但Vector是按其容量的一倍增长,而ArrayList则按其容量的50%增加,所以Vector更能节省资源。

11、MVC结构在Jtable中怎样实现的,这种结构有什么好处?
答、在Jtable中不存储它的单元数据,它的所有实例把它们的单元值交给实现了TableModel接口的对象来维护和管理,所以在MVC结构中,Jtable的表格主要体现了一个V的作用,其表格将数据变化体现出来,而数据模型则体现了M的作用,封装数据和业务逻辑。
 注:详细解说见第二题
12、在控制台中输入一个字符串,然后按照逆序打印出来
答:import java.io.*;
   
public  class  test{
 public 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=str.length()-1;I>=0;I--){
          C=C+A.substring(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 有几种修饰符?默认的是什么?
答:(注:修饰符是影响类、变量及成员方法的生存空间和可访问性的关键字)
修饰符 类 成员方法 成员变量 局部变量
abstract √ √ - -
static - √ √ -
public √ √ √ -
protected - √ √ -
private - √ √ -
private protected - √ √ -
synchronized - √ - -
native - √ - -
volatile - - √ -
final √ √ √ -
transient - - √ √
 
 以下是访问控制修饰符: 默认为friendly
修饰符 同类 同包 子孙类 不同包
public √ √ √ √
protected √ √ √ -
friendly √ √ - -
private √ - - -

18、toString方法的概述
答:因为每个类都继承了Object类,所以都实现了toString()方法。
    通过toString()方法可以决定所创建对象的字符串表达形式。

19、Object类的概述
答:Object类是所有其他的类的超类,Object的一个变量可以引用任何其他类的对象。因为数组是作为类实现的,所以Object的一个变量也可以引用任何数组,它包括以下几种方法:
    clone()  equals()  finalize()  getClass()  hashCode()  notify()  notifyAll()  toString()  wait()

20、java特点
答:java具有以下几个主要特点:
 简单性
 面向对象:JAVA是完全面向对象的,它支持静态和动态风格的代码继承及重用
 分布式:包括数据分布和操作分布
 健壮性:java系统仔细检测对内存的每次访问,确认它是否合法,而且在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。
 结构中立
 安全性:java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。
 与平台无关:java写的应用程序不用修改就可在不同的软硬平台上运行。平台无关性有两种:源代码级和目标代码级。 Java主要靠JAVA虚拟机在目标代码级上实现平台无关性
 解释执性:运行JAVA程序时,它首先被编译成字节代码,字节代码非常类似机器码,执行效率非常高。
 高性能
 多性程
 动态性:它允许程序动态的装入运行时需要的类。

21、什么叫抽象类?抽象类跟接口有什么区别?为什么引进数据接口概念?
答:具有关键字abstract ,在实现内容上没有完全定义的类就叫抽象类。
抽象类和接口的区别如下:
① 在类来继承抽象类时,只需实现部分具体方法和全部抽象方法,而实现接口则要实现里面的全部方法。
②在接口中无成员变量,而抽象类中可有成员变量。
在Java中引进接口主要是为了解决多继承的问题。

22、doGet与doPut的区别?
答: doPut会把地址作为一个文件写到服务器,而doGet不会,而只显示在地址栏。

23、多线程实现有那几种方法,同步有哪几种方法?
答:实现同步主要有两种方法:1.synchronized   2.wait  notify
实现多线程主要继承Thread 类和实现Runnable接口。

24、JSP页面的跳转?
答:jsp页面实现跳转主要有jsp:forward 和 sendRedirect 两种方法
jsp:forward:在本容器内跳转 。 跳转后,地址栏地址不变 。效率高。跳转后立即结束本页的内容。
sendRedirect:在容器之间的跳转,跳转后地址栏地址为跳转后的地址,效率较低。
通常采用jsp:forward方式跳转。
25、类变量的初始化
答:在Java中类变量在局部中一定要初始化,因为局部变量会覆盖全局变量,否则会报错:变量未初始化。全局变量则可以不初始化,而到具体的内部方法或其他的类成员中初始化。
26、数组的定义
答:数组是作为一种对象实现的。数组元素可以包含作何类型值,但数组里面的每个元素的类型必须一致创建数组步聚如下:
 声明
 构造
 初始化
27、Hastable 与HashMap的区别?
答:Hashtable和Hashmap的主要区别如下:
 Hashtable是同步的,而HashMap不是同步的。所以不要求同步的时候,用HashMap的效率较高
 Hashtable版本较HashMap版本低。
28、说明List和Set的区别
答:两者主要区别如下:
 List用来处理序列,而Set用来处理集。
 List中的内容可以重复,而Set则不行。

分享到:
评论

相关推荐

    java面试题总结资料

    这份"java面试题总结资料"涵盖了多个Java核心领域的关键知识点,包括但不限于: 1. **基础语法**:理解基本的数据类型(如整型、浮点型、字符型和布尔型),变量的声明与使用,以及运算符的优先级。同时,要熟悉...

    Java面试总结(珍藏版)

    2012各大公司Java面试题目总结 珍藏版 2012各大公司Java面试题目总结 珍藏版 2012各大公司Java面试题目总结 珍藏版 2012各大公司Java面试题目总结 珍藏版 2012各大公司Java面试题目总结 珍藏版 2012各大公司Java面试...

    java面试100题及面试技巧总结

    java面试100题及面试技巧总结,自己整理总结的java面试技巧及面试题。 java面试100题及面试技巧总结,自己整理总结的java面试技巧及面试题。 java面试100题及面试技巧总结,自己整理总结的java面试技巧及面试题。 ...

    java面试大全。各大公司面试总结。知识点总结,共31个文档

    Java面试大全涵盖了大量的技术知识点,这些内容通常会出现在各大公司的面试过程中。为了帮助你更好地准备,以下是基于描述中提到的“31个文档”可能涉及的一些核心Java面试知识点的详细阐述: 1. **基础概念**:...

    Java面试题总结

    Java作为一门广泛应用于后端开发的语言,其面试题涵盖了众多的知识点,包括但不限于基础语法、数据结构、算法、多线程、并发编程、...希望这份"Java面试题总结"能帮助你在面试中展现出最佳状态,祝你找到满意的工作。

    java面试笔试总结

    Java面试笔试总结主要涵盖了许多Java开发中的核心概念和技术,这些知识点是面试官在评估候选人技能时经常关注的焦点。以下是一些重要的Java知识点,对于准备Java Web开发职位的面试者尤其重要。 1. **Java基础** -...

    java中高级面试题十大总结

    Java作为一门广泛使用的编程语言,其中高级面试题往往涵盖了多方面的知识点,旨在考察候选人的技术深度和广度。以下是对这些面试题的详细解析: 1. **内存管理与垃圾回收** - Java的内存分为堆内存(Heap)和栈...

    java面试题总结 下载

    这份"java面试题总结资料"应该包含了作者精心整理的各类常见问题和解答,旨在帮助求职者更好地准备面试。 首先,让我们来看看Java基础部分。这部分通常会涉及变量、数据类型、运算符、流程控制语句、类与对象、封装...

    Java面试汇总.pdf+总结全面+八股文

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Java 高频面试题。...

    10万字总结java面试题和答案(八股文之一)Java面试题指南

    JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 ...

    java面试总结文档

    ### Java面试总结文档知识点解析 #### 一、Java基础篇 - 概念 ##### 1. Linux概述 - **起源与发展**:Linux是由芬兰学生Linus Torvalds于1991年开始创建的一个开源操作系统内核。随着社区的不断发展与完善,Linux...

    java面试问题总结

    (实际面试题) 1.在执行速度方面的比较:StringBuilder 快于 StringBuffer 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的...

    阿里大佬总结的Java面试资料

    阿里大佬总结的Java面试资料阿里大佬总结的Java面试资料阿里大佬总结的Java面试资料阿里大佬总结的Java面试资料阿里大佬总结的Java面试资料阿里大佬总结的Java面试资料阿里大佬总结的Java面试资料阿里大佬总结的Java...

    java面试题总结

    在Java面试中,面试官通常会考察应聘者的语法基础、数据结构与算法、多线程、集合框架、异常处理、IO流、网络编程、设计模式等多个方面的能力。以下是对这些关键知识点的详细阐述: 1. **Java语法基础**:Java的...

    Java面试题,10万字208道Java经典面试题总结(附答案)

    以下是一些Java面试中常见的知识点: 1. JDK和JRE的区别: JDK(Java Development Kit)是Java开发工具包,它包含了编写、编译和调试Java应用程序所需的所有工具,包括JRE(Java Runtime Environment)。JRE则是...

    JAVA面试问题,自己和别人总结

    JAVA面试问题总结 JAVA是一种广泛应用的编程语言,作为一名JAVA开发者,需要具备扎实的基础知识和实践经验。本文总结了常见的JAVA面试问题,涵盖了JAVA基础、JSP、Servlet、XML、J2EE、MVC、数据库等方面的知识点。...

    西安2010Java面试总结

    【西安2010Java面试总结】 在2010年的西安Java面试中,面试官主要关注以下几个核心知识点,这些内容对于Java开发者来说至关重要,也是面试官用来评估候选人技术实力的关键标准。 1. **Java基础知识**:面试通常从...

    最新Java面试八股文10万字总结

    这份"最新Java面试八股文10万字总结"包含了全面的Java知识体系,旨在帮助求职者准备面试,提升对Java技术的理解。 首先,基础篇涵盖了Java语言的基础语法,包括变量、数据类型、运算符、流程控制(如if语句、switch...

    华为java面试题总结

    【华为Java面试题总结】 在Java开发者的眼中,华为无疑是中国IT行业的巨头,其面试流程严谨,技术要求高。这份“华为Java面试题总结”旨在为准备进入华为的Java工程师提供一些关键知识点的梳理和复习指导。以下是对...

    android和java面试大全集

    JAVA面试题集合(项目2部).chm 华为笔试题大全(史上最齐全).doc JAVA题库.doc java面试题.zip Java面试宝典2011版-1A,Java基础部分.doc jsp笔试题全集.doc Java学习笔记(必看经典).doc android和java面试大全.rar ...

Global site tag (gtag.js) - Google Analytics