学习不是一件看起来很容易的事,对于厌烦背课文的人来说,“区别”的具体区别就是烦恼!!!
因为会做不代表会表述。那么,我这里写的就是我的烦恼
1、 switch和if的区别:
switch只能判断等值的情况
if判断范围和等值的情况
2、while和do..while的区别:
while:先判断条件,再根据条件是否为真来执行代码块。
do..while:先执行一次代码块,再判断条件。不管条件是否为真,都会至少执行一次。
3、基本数据类型和引用数据类型数据在传参时区别:
1)基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。
2)引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用。
4、方法重写和方法重载的区别:
1)方法重载在同一个类中,方法重写是子类重写父类(不同类中)
2)方法重载方法名相同,参数类型和个数不同
方法重写方法名与父类相同,参数类型和个数与父类相同
3)方法重载与返回类型和访问修饰符无关
方法重写:返回类型与父类的相同或是其子类;访问修饰符不能严于父类
5、抽象类和接口的区别:
不同点:
1)关键字:抽象类是使用abstract来修饰类的,接口是使用interface来修饰的。
2)在抽象类里可以有抽象方法和普通方法,接口中只能有抽象方法
3)在抽象类里可以有静态属性和非静态属性,接口中只能有静态的常量属性。
4)抽象类只能单继承,接口可以多实现(接口可以继承接口,多个接口之间使用逗号分隔)。
相同点:
1)都不能实例化。
2)接口是一个特殊的抽象类。
6、ArrayList和LinkedList的区别:
1)查询效率:
ArrayList因为底层是数组,有下标索引,所以可以快速定位索引位置,查询效率快。
LinkedList因为使用的是链表方式,没有下标索引,所以查询数据需要遍历整个链表,效率相对于ArrayList低。
2)插入、删除数据:
ArrayList数组进行插入和删除时需要改变数据的位置
LinkedList使用链表,只需要改变前一个和后一个指向的元素地址。
7、sleep()与yield()的区别:
1)sleep()使当前线程处于被阻塞状态
yield()使当前线程转入暂停执行的状态
2)sleep()即使没有其它等待运行的线程,当前线程也会等待指定的时间
yield()如果没有其它等待执行的线程,当前线程会马上回复执行
3)sleep()其它等待执行的线程的机会是均等的
yield()会将优先级相同或更高的线程运行