`
jubin2002
  • 浏览: 39574 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多
OOP的主要思想
    OOP认为程序是由对象组成的,这些对象有自己的属性和能够执行的操作。在OOP中,只需要关注对象的外表,不必关心其内部结构;绝大多数程序员不必关心对象的具体实现,只要保证对象满足他们的需求就可以了。OOP是以数据为第一其次才是操作数据的算法。
    OOP的关键是让每一个对象负责执行一组相关的任务。如果一个对象依赖另一个对象负责处理的任务,那么他就去访问那个包含该任务的对象。对象之间的所有通信都是通过方法调用完成。通过封装对象数据,最大限度地提高可重用性,减少数据的依赖性,并将程序的调试时间降到最低。

访问权限修饰符protected和(defaul)比较

    protected受到package和继承的保护,也就是说只有在同一个package下的类才能访问这些成员,通过在不同package中可以产生对象或是继承后访问类成员和直接使用父类的成员。
    如果声明一个成员时,没有加上任何的修饰符public,protected,private,就叫做(defaul)。它的限制比protected严格,只有在同一个package中的类才能互相的访问对象,在不同package中就算继承也没办法使用。

final、finally和finalize的区别是什么?
  final关键字

我们首先来说说final。它可以用于以下四个地方:
1. 定义变量,包括静态的和非静态的。
2. 定义方法的参数。
3. 定义方法。
4. 定义类。
我们依次来回顾一下每种情况下final的作用。首先来看第一种情况,如果final修饰的是一
个基本类型,就表示这个变量被赋予的值是不可变的,即它是个常量;如果final修饰的是
一个对象,就表示这个变量被赋予的引用是不可变的,这里需要提醒大家注意的是,不可改
变的只是这个变量所保存的引用,并不是这个引用所指向的对象。在第二种情况下,final的
含义与第一种情况相同。实际上对于前两种情况,有一种更贴切的表述final的含义的描述,
那就是,如果一个变量或方法参数被final修饰,就表示它只能被赋值一次,但是JAVA虚拟
机为变量设定的默认值不记作一次赋值。
被final修饰的变量必须被初始化。初始化的方式有以下几种:
1. 在定义的时候初始化。
2. final变量可以在初始化块中初始化,不可以在静态初始化块中初始化。
3. 静态final变量可以在静态初始化块中初始化,不可以在初始化块中初始化。
4. final变量还可以在类的构造器中初始化,但是静态final变量不可以。
最后我们再来回顾一下final用于类的情况。这个大家应该也很熟悉了,因为我们最常用的
String类就是final的。由于final类不允许被继承,编译器在处理时把它的所有方法都当作
final的,因此final类比普通类拥有更高的效率。而由关键字abstract定义的抽象类含有必须
由继承自它的子类重载实现的抽象方法,因此无法同时用final和abstract来修饰同一个类。
同样的道理,final也不能用来修饰接口。 final的类的所有方法都不能被重写,但这并不表
示final的类的属性(变量)值也是不可改变的,要想做到final类的属性值不可改变,必须
给它增加final修饰。

finally语句

接下来我们一起回顾一下finally的用法。这个就比较简单了,它只能用在try/catch语句中
并且附带着一个语句块,表示这段语句最终总是被执行。

finalize方法

最后,我们再来看看finalize,它是一个方法,属于java.lang.Object类,它的定义如下:
protected void finalize() throws Throwable { }


众所周知,finalize()方法是GC(garbage collector)运行机制的一部分。
在此我们只说说finalize()方法的作用是什么呢?
finalize()方法是在GC清理它所从属的对象时被调用的,如果执行它的过程中抛出了无法捕
获的异常(uncaught exception),GC将终止对改对象的清理,并且该异常会被忽略;直到
下一次GC开始清理这个对象时,它的finalize()会被再次调用。

接口与抽象类的区别
   简单来说,接口可以说是一个完全抽象的类,因为接口中所有的方法都是抽象的。
   一:构造函数,接口不像抽象类需要构造函数,它只有一下规范,功用的定义声明。
   二:抽象类中除了方法以外,还可以有类和实例属性,而接口中就只能有类常量而已。类常量被final和static修饰。

Collection 和 Collections的区别。


Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

Collection是个java.util下的接口,它是各种集合结构的父接口。

List, Set, Map是否继承自Collection接口?


List,Set是  Map不是

ArrayList和Vector的区别。


一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半

HashMap和Hashtable的区别


一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现

二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的

三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics