`

Java面试--设计模式(一部分)

阅读更多
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  ”;

  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面试题84集、java面试专属及面试必问课程

    设计模式和常用的设计模式.mp4 │ Java面试题16.http get post请求的区别.mp4 │ Java面试题17.说说你对Servlet的理解.mp4 │ Java面试题18.Servlet的生命周期.mp4 │ Java面试题19.forward和redirect的区别.mp4 │ ...

    java面试大全视频版

    Java面试题01.面试的整体流程 Java面试题02.java的垮平台原理 Java面试题03.搭建一个java的开发环境 Java面试题04.java中int占几个字节 Java面试题05.java面向对象的特征 ...Java面试题23.mvc模式和mvc各部分的实现

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    Java面试题23.mvc模式和mvc各部分的实现 Java面试题24.数据库分类和常用数据库 Java面试题25.关系型数据库的三范式 Java面试题26.事务的四大特征 Java面试题27.mysql数据库最大连接数 Java面试题28.mysql和oracle的...

    android和java面试大全集

    Java面试宝典2011版-1C,Java基础部分.doc 三大框架面试题.zip 技术面试题.zip Android笔试题库 C语言终极面试宝典.doc Java笔试题目汇总.pdf Java面试宝典_2010.doc 面试全攻略100题.doc 智力题和答案.doc C语言面试...

    Java面试宝典-经典

    13、在DAO中如何体现DAO设计模式? 123 14、spring+Hibernate中委托方案怎么配置? 123 15、spring+Hibernate中委托方案怎么配置? 123 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有...

    【Java学习+面试宝典】 一份涵盖大部分Java程序员所需要掌握的核心知识

    【Java学习+面试宝典】 一份涵盖大部分Java程序员所需要掌握的核心知识。 目录: Java 面试题 文章推荐 设计模式 学习书籍 Java: HTTP API 认证授有哪些方法? Java 技术栈中的技术点缩写 面试题: 【美团】Java ...

    Java面试宝典-由浅入深-涵盖技术广

    Java面试宝典,从最基础的javaSE到Javaweb、设计模式、jvm基础知识、linux、前端框架、mysql和oracle数据库。 框架部分:spring框架、springMVC、shiro、Mybatis、struts2 技术:redis、消息队列ActiveMq、dubbo框架...

    20万字必备java面试八股文宝典-多线程.数据库.Spring.SpringBoot.Linux.分布式.设计模式.面试指导

    这份宝典囊括了Java编程中的基础知识、多线程编程、数据库操作、Spring框架、Spring Boot、Spring Cloud、Linux操作系统、分布式系统、设计模式、面试指导以及自我介绍等内容。 基础部分,包括Java编程语言的核心...

    java面试题库2021.pdf

    目录 一、 JavaSE 部分 ...九、 设计模式 1、 结构型模式 ①代理模式 ②装饰模式 ③适配器模式 2、 创建型模式 ①单例模式 3、 行为型模式 ①策略模式 ②观察者模式 4、 所有模式汇总 十、 场景题 十一、 UML

    2021最新java面试合集pdf.rar

    Docker —— 从入门到实践 - v1.0.pdf Dubbo部署文档.doc Dubbo面试专题.docx java后端面试题答案.pdf ...设计模式面试专题及答案.pdf 详细解析_Log4j_配置 .docx 阿里百度美团面试题集合.pdf 面试宝典.pdf

    java面试800题

    《java面试800题(包括java,数据库,前台等,绝对全面)》 Q0027 哪些SQL语句在执行时是自动提交的? 数据定义语言DDL是自动提交的。 Q0028 索引对数据库的影响? 提高查询速度 Q0029 主外键有什么关系? 外键是从...

    Java开发工程师-应届生面试宝典

    Java开发工程师-应届生面试宝典,主要包含如下内容: ...八、软件工程与设计模式 技术点共3个 九、J2ee部分 技术点约12个 十、EJB部分 技术点共8个 十一、webservice部分 技术点共7个 十二、其他部分 技术点共3个

    Java 最新面试宝典 java 面试宝典 java 最新面试宝典 Java面试Java 工程师进阶知识完全扫盲

    需要完整版Java面试宝典的朋友,只需要关注我后[戳这里,暗号:CSDN](()即可。 [](()一、面试经验技巧篇 ============================================================================ 1.面试官箴言 无论...

    JAVA面试题最全集

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...

    「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识 准备 Java 面试,首选.zip

    基础 知识点/面试题总结 : (必看 ): Java 基础常见知识点&面试...IO 设计模式总结 IO 模型详解 并发 知识点/面试题总结 : (必看 ) Java 并发常见知识点&面试题总结(上) Java 并发常见知识点&面试题总结(中) Jav

    【Java面试+Java学习指南】一部分大部分Java招聘所需要掌握的核心知识

    7种常见的设计模式及使用场景 Java必会基础与新版本特性 线上问题排查 集合框架 哈希映射 并发哈希映射 数组列表 向量 深入浅出JVM JVM内存模型 性能调优、线上问题排查 类加载机制详解 垃圾回收机制 垃圾回收...

    JAVA-SSH面试题

    MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。 MVC中的模型、视图、控制器它们分别担负着不同的任务。 视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。...

    互联网公司Java面试题及核心知识点

    内容概要:本书从近一百套最新一线互联网公司面试题中精选而出,涵盖Java架构面试所有技术栈,包 括JVM,Mysql,并发,Spring,Mybatis,Redis,MQ,Zookeeper,Netty, Dubbo,Spring Boot,Spring Cloud,数据结构...

    Java常见面试题208道.docx

    面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...

Global site tag (gtag.js) - Google Analytics