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.访问修饰符
10.抽象类和接口
- 抽象类可以在不提供接口方法实现的时候实现接口
- Java接口中声明的变量默认都是final的。抽象类可以包含非final变量
- Java中接口成员函数默认为public。抽象类可以是private,protected,public
- 接口是绝对抽象的,不可以被实例化,抽象类也不可以被实例化,但是,如果他包含main方法的话是可以被调用的
本人才疏学浅,如有错误,烦请指出,谢谢!