android中java的知识(一)

来源:互联网 发布:耶稣是韩国人 知乎 编辑:程序博客网 时间:2024/04/30 03:38

做Android开发最重要的是要有一个很好的java基础。所以在我们的面试过程中也会被经常问到有关java的问题,其实在小编看来,如果java基础不好,那开发起Android来,怎一个累字了得。我记得小编在大二的时候,刚接触Android,那是java基础相当不好,做起来那个费劲都不用说,所以害的我重新又好好研读和学习了一遍java,之后,做起Android来简直就是顺风顺水。其实现在很多培训机构出来的学员,之所以做Android困难,就是因为时间太短,java的底子没有打好。好了,说了这么多,言归正传,今天这篇文章我们来说一说java中容易混淆和不容易记住,又不太常用而且用感觉很重要的几个问题。


转自 http://www.apkbus.com/home.php?mod=space&uid=47151&do=blog&id=59317


接口和抽象类的区别是什么?

Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:

  • 接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。

  • 类可以实现很多个接口,但是只能继承一个抽象类

  • 类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。

  • 抽象类可以在不提供接口方法实现的情况下实现接口。

  • Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。

  • Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。

  • 接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用的。


创建线程有几种不同的方式?你喜欢哪一种?为什么?

有三种方式可以用来创建线程:

继承Thread类

实现Runnable接口

应用程序可以使用Executor框架来创建线程池

实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。同时,线程池也是非常高效的,很容易实现和使用。


Java集合类框架的基本接口有哪些?

Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有:

  • Collection:代表一组对象,每一个对象都是它的子元素。

  • Set:不包含重复元素的Collection。

  • List:有顺序的collection,并且可以包含重复元素。

  • Map:可以把键(key)映射到值(value)的对象,键不能重复。


HashMap和Hashtable有什么区别?

HashMap和Hashtable都实现了Map接口,因此很多特性非常相似。但是,他们有以下不同点:

HashMap允许键和值是null,而Hashtable不允许键或者值是null。

Hashtable是同步的,而HashMap不是。因此,HashMap更适合于单线程环境,而Hashtable适合于多线程环境。

HashMap提供了可供应用迭代的键的集合,因此,HashMap是快速失败的。另一方面,Hashtable提供了对键的列举(Enumeration)。

一般认为Hashtable是一个遗留的类。


ArrayList和LinkedList有什么区别?

ArrayList和LinkedList都实现了List接口,他们有以下的不同点:

ArrayList是基于索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。与此对应,LinkedList是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。

相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者是更新索引。

LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。



其他的记录:

final关键字:final可以修饰类,方法,属性和变量。
final修饰类,这个类不允许被继承。
final修饰方法,这个方法不允许被覆盖(重写)。

子类构造函数会自动调用父类的构造函数,这里super是隐式调用的。
super();//调用父类的构造方法,一定要放在方法的首个语句

equal http://www.imooc.com/video/2763  ,equal方法也是比较两个对象的内存地址。
比较两个对象的值得对象可以用ide自己生成,详情也见链接的视频。
多态:http://www.imooc.com/video/2684
instanceof 关键字的含义
接口中方法不能有方法体,同时方法的访问修饰符不能是 private 和 protected
0 0
原创粉丝点击