Java教程

java面试题(五)

本文主要是介绍java面试题(五),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  1. java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
    字节流,字符流。字节流继承于InputStream \ OutputStream,字符流继承于InputStreamReader \ OutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
  2. java中会存在内存泄漏吗,请简单描述。
    会。如:int i,i2; return (i-i2); //when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。
  3. java中实现多态的机制是什么?
    方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
  4. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
    对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。
  5. 静态变量和实例变量的区别?
    static i = 10; //常量 class A a; a.i =10;//可变
  6. 什么是java序列化,如何实现java序列化?
    序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
    序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
  7. 是否可以从一个static方法内部发出对非static方法的调用?
    不可以,如果其中包含对象的method();不能保证对象初始化。
  8. 写clone()方法时,通常都有一行代码,是什么?
    Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。
  9. 在JAVA中,如何跳出当前的多重嵌套循环?
    用break; return 方法。
  10. List、Map、Set三个接口,存取元素时,各有什么特点?
    List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。
  11. 说出一些常用的类,包,接口,请各举5个 常用的类;
    常用的类:BufferedReader Bufferedwriter FileWirter String Integer
    常用的包:java.lang java.awt java.io java.util java.sql
    常用的接口:Remote List Map Document NodeList
  12. Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以
    implements(实现)interface(接口)?
    可以继承其他类或完成其他接口,在swing编程中常用此方式。
  13. 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 区别:
    a.硬件环境不同:
      C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
      B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
    b.对安全要求不同
      C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
      B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。
    c.对程序架构不同
      C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
      B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.
    d.软件重用不同
      C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
      B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
    e.系统维护不同
      C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统
      B/S 构件组成,方面构件个别的更,实现系统的无缝升级。系统维护开销减到最。用户从网上自己下载安装就可以实现升级.
    f.处理问题不同
      C/S 程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关.。应该都是相同的系统
      B/S 建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的。与操作系统平台关系最小.
    g.用户接口不同
      C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
      B/S 建立在浏览器上,有更加丰富和生动的表现方式与用户交流。并且大部分难度减低,减低开发成本。
    h.信息流不同
      C/S 程序一般是典型的中央集权的机械式处理,交互性相对低。
      B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更像交易中心。
  14. 内部类可以引用他包含类的成员吗?有没有什么限制?
    一个内部类对象可以访问创建它的外部类对象的内容
这篇关于java面试题(五)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!