`

java软件工程师面试常见问题!(五)

阅读更多

 101、java中会存在内存泄漏吗,请简单描述。
会。如:int i,i2;  return (i-i2);   当 i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。


102、java中实现多态的机制是什么?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。


103、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。


104、静态变量和实例变量的区别?
static i = 10; file://常量
   class A a;  a.i =10;//可变


105、什么是java序列化,如何实现java序列化?
       序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
       序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。


106、是否可以从一个static方法内部发出对非static方法的调用?
不可以,如果其中包含对象的method();不能保证对象初始化.


107、写clone()方法时,通常都有一行代码,是什么?
Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。


108、在JAVA中,如何跳出当前的多重嵌套循环?
用break; return 方法。


109、List、Map、Set三个接口,存取元素时,各有什么特点?
List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。


110、J2EE是什么?
J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。


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


112、说出一些常用的类,包,接口,请各举5个
常用的类:BufferedReader  BufferedWriter  FileReader  FileWirter  String  Integer
常用的包:java.lang  java.awt  java.io  java.util  java.sql
常用的接口:Remote  List  Map  Document  NodeList


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


114、jsp有哪些动作?作用分别是什么?
JSP共有以下6种基本动作 jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个JavaBean。 jsp:setProperty:设置JavaBean的属性。 jsp:getProperty:输出某个JavaBean的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。


115、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
可以继承其他类或完成其他接口,在swing编程中常用此方式。


116、应用服务器与WEB SERVER的区别?
应用服务器:Weblogic、Tomcat、Jboss
WEB SERVER:IIS、 Apache


117、BS与CS的联系与区别。
C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互。
C/S 与 B/S 区别:
1.硬件环境不同:
  C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
  B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
2.对安全要求不同
  C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
  B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。
3.对程序架构不同
  C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
  B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.
4.软件重用不同
  C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
  B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
5.系统维护不同 
  C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统
  B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
6.处理问题不同
  C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统
  B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.
7.用户接口不同
  C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
  B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.
8.信息流不同
  C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低
  B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更像交易中心。

118、LINUX下线程,GDI类的解释。
LINUX实现的就是基于核心轻量级进程的"一对一"线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。
GDI类为图像设备编程接口类库。

119、STRUTS的应用(如STRUTS架构)
Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。 Struts有如下的主要功能: 一.包含一个controller servlet,能将用户的请求发送到相应的Action对象。 二.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。 三.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。


120、Jdo是什么?
JDO是Java对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。
 

 

分享到:
评论

相关推荐

    java软件工程师面试常见问题

    Java软件工程师面试常见问题涵盖了广泛的知识点,这些知识点是每一位Java开发者在面试中可能遇到的。下面我们将逐一探讨这些主题,以帮助你更好地准备面试。 1. **基础语法与数据类型**:Java的基础包括变量、数据...

    java软件工程师面试常见问题.docx

    Java 软件工程师面试常见问题 Java 软件工程师面试常见问题中,涵盖了面向对象编程、Java 基础知识、异常处理、Servlet 生命周期、集合框架、EJB 等方面的知识点。 1. 面向对象编程的特征 面向对象编程(Object-...

    java软件工程师面试常见问题.pdf

    ### Java软件工程师面试常见问题解析 #### 一、面向对象的四大特征 1. **抽象** 抽象是面向对象编程中的一个重要概念,它指的是在设计阶段仅关注对象的关键特性和行为,忽略不必要的细节。抽象有两种形式: - *...

    java软件工程师面试大全

    Java软件工程师面试大全是针对求职者,特别是那些寻求Java开发岗位的专业人士精心准备的资源集合。这份资料旨在帮助应聘者全面了解并掌握Java语言的核心概念和技术,以便在面试中表现出色,成功获得理想的工作机会。...

    java软件工程师面试题

    Java软件工程师面试题是衡量求职者技术水平和项目经验的重要手段,涵盖了从基础语法到高级特性的广泛知识领域。以下是对这些面试题的一些关键知识点的详细解释: 1. **Java基础**: - **数据类型与变量**:Java...

    JAVA软件工程师面试题(含答案).doc

    ### JAVA软件工程师面试题知识点详解 #### 一、MVC设计模式的理解及其在Struts中的应用 **MVC设计模式**是一种广泛应用于软件工程的设计模式,尤其在Web应用开发中非常常见。它将应用程序分为三个核心组成部分:...

    最新深圳企业java软件工程师面试题

    Java软件工程师面试题是评估求职者技术水平和项目经验的重要手段,尤其在深圳这样的IT行业发展迅速的城市,竞争尤为激烈。以下是对最新深圳企业Java软件工程师面试题的一些解析和相关知识点的详细说明: 1. **基础...

    java软件工程师面试宝典

    Java软件工程师面试宝典是为准备Java开发职位面试者精心准备的一份参考资料,它涵盖了Java编程语言、软件工程原理、数据库管理、操作系统、网络技术等多个关键领域的知识点。这份宝典旨在帮助面试者全面理解Java技术...

    2018最新最全java高级工程师面试题

    Java作为一门广泛使用的编程语言,其高级工程师面试题往往涵盖了多方面的知识点,旨在考察候选人的技术深度、广度以及实际问题解决能力。2018年最全的Java高级工程师面试题集锦,包含了十几个文档,可以预见这些文档...

    java高级软件工程师面试题

    ### Java高级软件工程师面试知识点概览 #### 一、核心框架与技术栈 ...以上知识点覆盖了Java高级软件工程师面试中常见的技术领域和问题类型,对于准备面试的候选人而言,深入理解和熟练掌握这些内容至关重要。

    JAVA工程师面试常见问题及答案

    ### JAVA工程师面试常见问题及答案解析 #### 1. 事务隔离级别 事务隔离级别是数据库系统为了保证数据的一致性和防止并发操作引起的问题而设置的不同级别。主要有四种不同的隔离级别: - **READ UNCOMMITTED (未...

    Java开发软件工程师面试题(必备最全)

    Java开发软件工程师面试题是衡量求职者技能水平和专业素养的重要参考,涵盖了多个技术领域,包括Java编程语言、Oracle数据库、SQL查询语言、Linux操作系统以及Web服务器管理。这些知识点是Java开发者日常工作中不可...

    Java程序员面试宝典,Java高级工程师面试宝典,Java面试题大全

    这份宝典涵盖了Java高级工程师面试的各个方面,旨在帮助应聘者全面理解和掌握Java技术栈的核心概念、最佳实践以及实际问题解决能力。以下是对Java程序员面试和Java高级工程师面试的一些关键知识点的详细解析: 1. *...

    java软件工程师面试题集

    【Java软件工程师面试知识点】 ...这些知识点都是Java软件工程师面试中常见的问题,涵盖了EJB、MVC、Web服务和J2EE平台的基础概念和应用。理解并掌握这些内容对于成为一名合格的Java软件工程师至关重要。

    java开发工程师面试资料.zip

    Java开发工程师面试是一个深入考察求职者技术能力、项目经验和问题解决技巧的过程。这份"java开发工程师面试资料.zip"文件显然是一份集中的学习资源,旨在帮助准备面试的开发者提升自己的竞争力。下面,我们将深入...

    JAVA软件工程师-各个公司面试题

    【JAVA软件工程师面试知识点】 Java软件工程师面试题涵盖了广泛的领域,包括基础语法、面向对象编程、数据结构与算法、多线程、集合框架、JVM原理、设计模式、数据库操作、网络编程、Spring框架以及分布式系统等。...

Global site tag (gtag.js) - Google Analytics