Java之区别总结

Java之区别总结

1.char和varchar

  • char:长度固定
  • varchar:长度可变

2.“==”和equals()

  • ==:比较值
  • equals():比较地址
  • 注意:自动装箱和自动拆箱

3.Comparable和Comparator接口

  • Comparable:Java提供了只包含compare To()方法的Comparable接口。这个方法可以对两个对象排序。输出结果0、负数、正数三种
  • Java提供了包含compare()和equals()两个方法的Comparator接口。compare()方法用来给两个对象排序。

4.Collection和Collections

  • Collection:是集合类的上级接口,继承于他的接口主要是set和list
  • Collections:Collections类是针对于集合类的一个帮助类。他提供了一系列的静态方法堆各种集合的搜索、排序、线程安全化等操作

5.run()和start()

  • run():只是调用普通的run()方法
  • start():启动了线程,由jvm调用run方法

6.sleep()和wait()

  • sleep():是线程类Thread的方法,导致此线程暂停执行指定时间,把执行的机会让给其他线程,但是监控状态依然保持,到时候会自动恢复。调用sleep()不会释放对象锁。
  • wait():是Object类的方法,对此对象调用wait()方法导致本线程放弃对象锁,进入等待此对象的等待池。

7.同步方法和同步代码块

  • 同步方法默认用this或者当前类class对象作为锁
  • 同步代码块可以选择以什么来加锁,比同步方法更细颗粒度。

8.Array和ArrayList

  • Array:长度固定
    可以包含基本类型和对象类型
  • ArrayList:动态变化
    值可以包含对象类型
    ArrayList处理基本数据类型的时候,比较慢。

9.访问修饰符

Java之区别总结
10.抽象类和接口

  • 抽象类可以在不提供接口方法实现的时候实现接口
  • Java接口中声明的变量默认都是final的。抽象类可以包含非final变量
  • Java中接口成员函数默认为public。抽象类可以是private,protected,public
  • 接口是绝对抽象的,不可以被实例化,抽象类也不可以被实例化,但是,如果他包含main方法的话是可以被调用的

本人才疏学浅,如有错误,烦请指出,谢谢!