常见的JAVA基础面试题总结.docVIP

  • 6
  • 0
  • 约3.42千字
  • 约 9页
  • 2017-04-24 发布于重庆
  • 举报
常见的JAVA基础面试题总结

1.java的8种基本类型 4211 : 4整型:byte short int long 2浮点型:float double 1字符型:char 1布尔类型:boolean 2.float f = 1.00f ; double d = 1.0f ; float f = 1.0f+1 ; int i = (int)(1.0f+1) ; 3.面向对象的基本特征: 封装:将对代码实现隐藏,并保护数据操作。 继承:子类复用父类的代码。 多态:多态的本质是:父类使用子类的方法。他的表现形式有:1.父类引用指向子类对象。2.重写。 4.继承:我们继承父类的所有方法与属性,只是无法直接方法私有的方法与属性。 5.作用域修饰词: public protected (default) private 6.final,finally, finalize final:终态修饰词。用来定义类,不可被继承。 用来定义属性,变量变常量。 用来定义方法,不能被重写。 finally:异常捕获中,最后的一个语句块,不管异常是否发生,此语句块都必须执行。(常见于IO操作中) finalize:Object类中的一个方法,用于回收此对象前的最后操作。 7.值传递,引用传递。 值传递:将数值传入方法,即使在方法中对数据进行了修改,不会对原变量指向的数据产生影响。(形参不影响实参) 引用传递:将地址传入方法,在方法中对数据进行修改,会对原变量指向的数据产生影响。(形参影响实参) 8.ArrayList,LinkedList,HashMap,HashSet都输入Collection接口的子类? HashMap不属于,他属于Map接口。 9.Vector与ArrayList的区别。 Vector效率更低,因为他实现了线程安全。 HashMap与HashTable的区别。 HashTable线程安全的。HashTable键值不能为null。 HashSet与TreeSet的区别。 HashSet是无序的,TreeSet是有序的。 10.为什么有人说HashMap的效率介于LinkedList与ArrayList之间。 ArrayList,使用数组实现。遍历迅速,查询方便。 LinkedList,使用双向链表实现。对数据的删除与添加很方便。查询不便。 HashMap,以key的hash值,存入一个数组(这个数组又被叫做Hash表)。java的hash算法,会出现hash值的重复。当两个不想关的数据的hash值相等,那么他们讲存入hash表的一个index上。我们就以链表的形式存储。 (hash值都一样,HashMap其实就是链表,hash值都不一样,那么就是数组) 11.集合容器的泛型,可以使用8种基本类型么?泛型用以规定集合中存入的数据的类型。 不可以使用8种基本类型,我们需要使用它们的封装类 :Byte,Short,Integer,Long,Float,Double, Character,Boolean。 12.下列哪个类不属于集合框架() a.Collections b.Collection c.Arrays d.Map TIPS:集合小心Collection与Collections的区别。 Array与Arrays 13.IO包的流都从属与4个基类: InputStream,OutputStream,Reader,Writer 14.IO包的分类: 字符流,字节流。 输入流,输出流。 节点流,处理流。 15.代码块:静态代码块,普通代码块,同步代码块,构造代码块。 16.java是否可以实现多重继承。 不能多重继承。java提供了一个改良方案:实现接口。 多重继承的解决方案: 使用内部类。 17.String的compareTo方法: “String” “Staing” S - S = 得到ASC码差值 = 0 t - t = i - a != 0 代表这个两个字符串,不相等。 18.如何实现序列化。 实现Serializable接口,Externalizable接口。 19.如何避免某个属性被序列化。 transient修饰为临时变量,将不被序列化。 static 静态,会被视为属于类,也不会被序列化。 20.如何将一个临时变量,序列化。 实现writeObject(),自定义序列化,手动写入此临时变量。 21.线程的实现方法: 继承Thread类,实现Runnable接口。 22.线程如何停

文档评论(0)

1亿VIP精品文档

相关文档