黑马程序员_java12_java中的异同

本文对比了抽象类和接口的特点,介绍了它们之间的相似之处及不同之处,并探讨了成员变量与局部变量、构造函数与一般函数等概念的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

——- android培训java培训、期待与您交流! ———-

抽象类和接口的异同

相同点
1 都是可以在内部定义抽象的方法
2 通常都是在顶层
3 都不可以实例化,都需要子类来实现

不同点
1 抽象类中可以定义抽象方法和非抽象方法。而接口中只能定义抽象方法。
2 接口的出现可以多实现。抽象类只能单继承,也就是说:接口的出现避免了单继承的局限性。
3 继承和实现的关系不一致,继承是is a ;实现是 like a

成员变量与局部变量

不同点:
1 作用范围
成员变量作用于整个类中。局部变量作用于函数中或者语句中。
2 在内存中的位置
成员变量在堆内存中,随着对象的存在而存在。而局部变量存在栈内存中。

构造函数与一般函数的不同

1 写法上的不同
构造函数必须与类名相同,而一般的函数没有这方面的限制。
2 在运行上也是不同的
构造函数时在对象一建立就运行,给对象就行初始化。而一般函数是在对象调用才执行,是给对象添加具备的功能。
3 运行次数上的不同
构造函数时一个对象建立,构造函数只运行一次,而一般的函数可以被对象调用多次。

构造代码快与构造函数的不同

构造代码快是对象一建立就运行而且是优先于构造函数运行。
构造代码块是给所有的对象进行统一的初始化。而构造函数时给对应的的对象进行初始化。

类变量和实例变量的不同

1 存放位置的不同
类变量随着类的加载而加载而存在与方法区中,实例变量是随着对象的建立而存在于堆内存中
2 生命周期的不同
类变量生命周期最长,随着类的加载而加载,随着类的消失而消失。实例变量是随着对象的消失而消失。当类可以生成多个对象,可以随时创建,但是当类没有的时候就没有办法创建实例变量了。

Collections与Collection的不同
Collection是集合框架的uige顶层接口,它里面定义了单列集合的共性问题,它有两个常见的子接口List 与Set。

Collections是集合框架中的一个工具类。该类中的方法都是静态的。提供的方法中有可能对list集合进行排序,二分查找等方法。通常常见的集合都是线程不安全的。因为要提高效率。如果多线程操作这些集合时,可以通过该工具类中的同步方法,讲不安全的集合转换成安全的。

传统for和高级for的不同
高级for有一个局限性。必须有被遍历的目标。
建议在遍历数组的时候,还是希望是用传统的for,因为传统的for可以定义角标。

throw与throws的不同点

throw定义在函数内,用于抛出异常对象
throws定义在函数上,用于抛出异常类,可以抛出多个,用逗号隔开。

线程与进行的不同
进程是一个正在执行的程序。每一个进程执行都有一定的执行顺序。该顺序是一个执行路径或者叫一个控制单元。

线程就是进程中的一个独立的控制单元。线程在控制着进程的执行。一个进程中至少有一个线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值