欢迎来到天天文库
浏览记录
ID:42604870
大小:44.00 KB
页数:24页
时间:2019-09-18
《android面试总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、方法重载与覆盖的区别?(Overload与Override的区别)答:方法的重载属于编译时多态,方法名相同参数列表不同,返回值必须相同或都没有返回值类型。方法的覆盖属于运行时多态,子类覆盖父类的方法,子类指向父类引用,在调用方法的时候用父类的引用调用。2、String和StringBuffer的区别答:String的长度是不可变的,StringBuffer的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法
2、。3、字符串“abcde”通过写一个函数不让调用第三方的字符串,实现一个字符串倒序,比如字符串“abcde” 变成“edcba”答: Stringsrc="ABCDEF";Stringdst = new StringBuffer(src).reverse().toString();4、抽象类与接口的区别(abstract与interface的区别)答:abstract可以修饰抽象方法,而一个类只要有一个抽象方法,就必须用abstract定义该类,即抽象类。用interface修饰的类,里面的方法都是抽象方法,因此在定义接口的时候,可以直接不
3、加那些修饰,系统会默认的添上去。接口里面的字段都是公有常量,即publicstaticfinal修饰的字段。含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstractclass,abstractclass类中的方法不必是抽象的。abstractclass类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。接口(interface)可
4、以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为publicabstract类型,接口中的成员变量类型默认为publicstaticfinal。下面比较一下两者的语法区别:1.抽象类可以有构造方法,接口中不能有构造方法。2.抽象类中可以有普通成员变量,接口中没有普通成员变量3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口中的抽象方法只能
5、是public类型的,并且默认即为publicabstract类型。5. 抽象类中可以包含静态方法,接口中不能包含静态方法6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是publicstaticfinal类型,并且默认即为publicstaticfinal类型。5、集合的实现类与区别?答:Collection接口,集合结构总的父接口,有两个子接口list和set *List接口元素有序可重复. **实现类有:ArrayList数组实现轻量级,运行快,线程不安全。JDK1.2查询快V
6、ector 数组实现重量级,运行慢,线程安全。JDK1.0,已不用LinkedList链表实现常用语堆栈与队列的实现增删操作快*Set接口元素无序不可重复**实现类有:HashSet,底层用hashCode()算法实现,保证元素的无序唯一,自定义对象存进HashSet为了保证元素内容不重复需要覆盖hashCode()与equals()方法。 SortedSet(不重要)元素有序(Unicode升序)唯一,SortedMap特点:元素是key-value,key 唯一,无序; TreeSet要求元素有序,自定义的对象需要实现Compa
7、rable接口的compareTo(objecto)方法Map(接口):与Collection接口无关,有一个子接口value可重复**实现类:HashMap轻量级线程不安全的,允许key或value为nullJDK1.2 HashTable重量级线程安全的不允许key或value为null JDK1.0Properties是HashTable的子类,主键和值都是字符串SortedMap:(不重要)特点:key唯一,有序(Unicode升序)实现类:TreeMap6、线程有几种状态,分别是哪些?(调用run()和调用start()的区
8、别)答:1)、新建状态(New):新创建了一个线程对象。 2)、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的s
此文档下载收益归作者所有