简单的java数据类型总结
java数据类型
- 
基本数据类型(一般使用小写)
- 特点
- 除了值没有任何标识,1=1
 - 不可变数据类型
 - 在作用域范围内,局部栈中存储
 - 建立成本低
 
 
 - 特点
 - 
对象数据类型(除了基本数据类型以外的数据类型)
- 特点
- 除了值以外还有标识
 - 部分可变
 - 堆中存储,自动回收
 - 泛型进行统一的表示
 - 建立成本高
 
 - 祖先:均为object的子类(缺省则其父类为object)
 
 - 特点
 - 
基本数据类型的包装类
- 将基本数据类型封装成为对象,从而进行操作
 - 尽可能少用,效用较低
 - java会自动进行转换,将基本数据类型转化成基本数据类型
 
 - 
运算符
- ”+”可以完成字符串的拼接
 - 运算符形式
 - 对象的方法形式
 - 函数形式MATH.sin()
 
 
静态语言与动态语言
- JAVA是一种静态语言
- 编译时检查
 - PYTHON是动态语言,运行时检查
 
 - 静态检查
- 在运行之前进行bug检查,编译时检查
 - 目的:避免使用错误类型的操作导致的bug
 - 内容:
- 语法错误
 - 参数个数错误
 - 参数类型错误
 - 返回值错误
 
 
 - 动态检查
- 在程序运行时进行检查
 - 内容
- 数组越界
 - 空对象调用方法
 - 得到结果无法明确表达
 
 
 - 静态检查为检查类型,动态检查为检查数值
 - 基本数据类型可能显示的不是它原本结果
- 溢出
 - 浮点数的特殊值表示NAN,POSITIVE_INFINITY, NEGATIVE_INFINITY
 
 - 可变性与不可变性
- 不变性:
- 不变数据类型创建完成后,值不能修改
 - 不变引用,一旦指定引用位置,不可再次指定
 - final修饰,避免出现错误,易于理解
 - notation
- final类不能继承
 - final方法不能重写
 - final变量不能修改
 
 
 - 可变性:
- 修改时不会改变变量的指向,直接修改数据
 
 - 可变性 vs 不可变
- 可变类型优点:
- 最小化对变量的拷贝副本
 - 可以进行共享
 
 - 可变类型缺点:不安全!
 - 别名,alias
- 名字不同但是访问相同的区域,可能导致问题!
 - 所以需要使用防御性编程
 - 所以在传可变数据类型可以使用如下的表示方法: return new DATE(end.modify()),或者clone
 
 
 - 可变类型优点:
 
 - 不变性:
 
快照图表
- 显式地表示模型
    - 单线是可变的,双线是不可变的
    - 不可变的引用指向可变的值
复杂数据类型
- 数组:
    1. 数组一旦创建,长度不可以进行修改—>a.length().
- 数组列表
    1. 变长数组,只能放对象数据类型
    2. List本身是一个接口,new时必须时要初始化具体实现,arraylist或linkedlist
- 迭代器(Iterator)
- 集合set 同样也只是一个接口
    - 不允许重复
    - 无序性
- 表 MAP 接口++,键值对
- Iteration 遍历器。          
    1. for each循环时隐式地使用Iterator
不可变数据类型
- 包装类
- 可以控制用户的使用权限
 - 使得集合建立之后便不可修改
 
 
空引用
- NULL是对应于对象数据类型的
 - 粗心使用NULL会导致各种问题
 - NULL的含义是含糊不清的
 
                    
                
                
            
        
浙公网安备 33010602011771号