知识库主页 ? 规范制度 ? 文档 1021
[1021] 电话面试-java语言基础
? 返回到类目
级别: 尚未评级
相关文档
No Related Documents
作者: 冯 春培, 创建于: 2009-3-31 下午5:21 语言: C hinese
l StringBuffer的实现方式,容量如何扩充 tringBuffer是通过char[]来实现的,实例化一个StringBuffer时,初始容量是16,然后以其一倍的容量进行扩充。 S ? l 了解JVM启动参数吗?-verbose -Xms -Xmx的意思是什么? http://www.cnblogs.com/wenfeng762/archive/2011/08/14/2137810.html ? l 垃圾收集,火车算法 http://www.360doc.com/content/09/0109/00/15643_2293675.shtml ? ? l Java中的内存溢出和C++中的内存溢出,是一个概念吗? l ClassLoader的功能和工作模式 ? 要点: 1、JVM在运行时会产生三个ClassLoader:Bootstrap ClassLoader、Extension ClassLoader和AppClassLoader,他们之间存在父子关系。 1、了解classloader采用双亲委托模型的方式加载class,从而更好的保证Java平台的安全。在此模型下,当一个装载器被请求装载某个类时,它首先委托自己的parent去装载,若parent能装载,则返回这个类所对应的Class对象,若parent不能装载,则由parent的请求者去装载。 ? l jvm gc 如何判断对象是否需要回收,有哪几种方式? 引用计数,对象引用遍历; ? jvm有哪几种垃圾回收机制?讲讲分代回收机制 考察对垃圾回收机制的了解程度。 ? l java类静态属性:static xxx= new yyy(),jvm什么时候生成yyy这个类的对象? 考察静态属性的加载时间,加载顺序(可以扩展到静态成员和类加载机制)。 答案:类加载的时候。 ? l 反射,是否可以调用私有方法,在框架中的运用 可以 ? l 面向对象的特征有哪些方面 抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 ? l Error、Exception和RuntimeException的区别,作用又是什么? 基本问题。 error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。 exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况 l reader和inputstream区别 Reader用于读入16位字符,也就是 Unicode 编码的字符;而 InputStream 用于读入 ASCII 字符和二进制数据。 ? l ==和equals的区别 ==比的是java的基本类型,是考虑值是否相等;比对象的变量类型,引用是否是指向同一个引用;equals比的是内容是否相等。 ? l String s = \编译器会做什么优化 如果答对了,String s = \会继续问 String s = \也是个字符串 ,编译器会做什么优化处理 jdk1.4和jdk1.5分别是 New StringBuffer().append(\//1.4 New StringBuilder().append(\//1.5 ? ? l Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 Java数据类型: 基本数据类型(内置类型);扩展数据类型 java基本类型八种: boolean、char(16bit)、byte(8bit有符号)、short(16bit有符号)、int(32bit有符号)、long(64bit有符号)、float(32bit)、double(64bit). Java里面整数长度固定,且没有提供无符号整型。 内置类型也称作基本类型(Primitive Types),是其他类型的基础。所有的其他类型(包括Java核心库和用户自定义类型)都是通过基本类型扩展而来的。这些类型是我们描述对象最基本的方式。比如:判断是否使用boolean;衡量大小、长度使用各种整型(包括short, int, long)和浮点数(float和double);表达字符使用char;而处理二进制数据块使用byte。 ? l Object类中有哪些方法 equal(); Getclass(); hashCode(); Notify(); Wait(); toString(); l hashCode的作用 hashcode 有哪些算法 ? l 如果在hashCode中返回常量1,会有什么结果? 在HashMap中,所有这个类的对象都会互相出现hash冲突,从而使HashMap的查找性能降级为线性查找 ? l char型变量中能不能存贮一个中文汉字?为什么? 能,因为Java在内部使用UTF8 ? l 字节流/字符流 ? l IO和NIO本质不同在实际项目使用场景及如何使用 主要考察NIO使用场景 ? l 用过哪些集合类?能分别说下他们的应用场景吗? 主要考察集合这块系统学习能力及实际应用习惯 ? l 列举几个Java Collection类库中的常用类,试简述其类结构 常用集合类,对应算法, ArrayList LinkedList HashMap Hashtable ? l HashMap和Hashtable的区别 1.HashMap不是线程安全 HashTable是线程安全的Collection 2.HashMap允许null key和null value,而hashtable不允许。 ? l List、Set、Map是否都继承自Collection接口?HashMap中是否任何对象都可以做为key,用户自定义对象做为key有没有什么要求? List,Set继承自Collection接口;Map接口是一组成对的键-值对象,Map中不能有重复的key。拥有自己的内部排列机制; 用户自定义的类实例对象做为key,么自定义的对象必须同时重写equals和hashCode方法,主要考察应试者对hashCode()/equals()的了解情况; ArrayList中的对象排序 主要考察应试者对Collections集合辅助类的应用熟练情况,如果不清楚Collections中sort的使用,回答通过遍历可实现,可以顺着问些排序的算法。 ? l 一个Java对象作为Map的Key时需要满足的前提条件是什么? 需要重载equals及hashCode方法,考查基本的Java中? 的约定是否掌握。 ? l 什么是java序列化,如何实现java序列化? 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。 序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。 ? l 集合类型。常问如果集合中key值是自己定义的类,hashmap该怎么处理,list能怎样方便的排序 ? l interface 和 abstrat class的区别 .相同点 A. 两者都是抽象类,都不能实例化。 B. interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法。 2. 不同点 A. interface需要实现,要用implements,而abstract class需要继承,要用extends。 B. 一个类可以实现多个interface,但一个类只能继承一个abstract class。 C. interface强调特定功能的实现,而abstract class强调所属关系。 D. 尽管interface实现类及abstrct class的子类都必须要实现相应的抽象方法,但实现的形式不同。interface中的每一个方法都是抽象方法,都只是声明的 (declaration, 没有方法体),实现类必须要实现。而abstract class的子类可以有选择地实现。 E. abstract class是interface与Class的中介。 interface是完全抽象的,只能声明方法,而且只能声明pulic的方法,不能声明private及protected的方法,不能定义方法体,也 不能声明实例变量。然而,interface却可以声明常量变量,并且在JDK中不难找出这种例子。但将常量变量放在interface中违背了其作
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2014阿里巴巴电话面试在线全文阅读。
相关推荐: