1.编程语言中的数据类型
(1)数据类型和变量之间的区别:数据类型是抽象,而变量是对数据类型的具体实例化
(2)数据类型分为:基本数据类型和对象数据类型
(3)对象类型之间可形成层次结构;对基本的数据类型也可以打包成对象数据类型,如Integer,但尽量避免使用
(4)操作:对于基本的数据类型,操作包括+-*/等;而对于对象数据类型,操作由其定义的方法决定
2.静态数据类型和动态数据类型
Java是一种静态类型的语言,在编译过程进行类型的检查;Python等语言是动态语言,在运行时进行类型检查
3.类型检查
静态类型检查更关心类型的检查,而动态类型检查则更关系对值的检查(非法参数值,非法返回值,越界等)
4.可变类型和不可变类型
5.学会使用snapshot来作为一个code-level,run-time和moment view
6.复杂数据类型:Arrays和Collections(慎用迭代器)
7.尽量使用immutable类型的数据
Java开发者为各种常见的mutable数据类型提供了包装器将其包装成不可变类型,但是在编译阶段无法类型检查
例如:public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)
8.java语言取消了指针,但不意味着不会出现指向空指针的问题