java应该注意的各种区别

学习不是一件看起来很容易的事,对于厌烦背课文的人来说,“区别”的具体区别就是烦恼!!!

因为会做不代表会表述。那么,我这里写的就是我的烦恼

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()会将优先级相同或更高的线程运行

 

posted on 2016-11-01 20:33  攻速鞋  阅读(238)  评论(0编辑  收藏  举报

导航