android中java的知识(一)
2015-08-19 13:48
239 查看
做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
转自 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
相关文章推荐
- Android 列表按照时间排序
- Android移动非编开发过程--NDK、OPENGL ES开发中的一些常见错误及解决办法
- Android 线程 thread 两种实现方法
- Android doGet方法
- android自定义Seekbar你还将你的拖动数值显示在旁边固定的TextView上么?
- android自定义Seekbar你还将你的拖动数值显示在旁边固定的TextView上么?
- Android Api Demos登顶之路(三十七)Fragment-->Dialog
- 《疯狂Android讲义》第二版目录
- 关于Android:lineSpacingExtra属性在Android5.0与之前版本存在的区别
- Android adb.exe连接不上问题解决
- Android笔记:管理所有活动
- Android应用程序基础(二)
- Android三种播放视频的方式
- android 自定义字体
- Android中访问资源的几种方式总结
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- Android ImageView 使用assets里的图片
- Android(java)学习笔记176:BroadcastReceiver之 短信发送的广播接收者
- ANDROID音频系统散记之五:如何绕开多媒体音轨的重采样
- Android之CheckBox复选框控件使用inelayout.xml Xml代码