简单的java数据类型总结

java数据类型

  1. 基本数据类型(一般使用小写)

    • 特点
      1. 除了值没有任何标识,1=1
      2. 不可变数据类型
      3. 在作用域范围内,局部栈中存储
      4. 建立成本低
  2. 对象数据类型(除了基本数据类型以外的数据类型)

    • 特点
      1. 除了值以外还有标识
      2. 部分可变
      3. 堆中存储,自动回收
      4. 泛型进行统一的表示
      5. 建立成本高
    • 祖先:均为object的子类(缺省则其父类为object)
  3. 基本数据类型的包装类

    • 将基本数据类型封装成为对象,从而进行操作
    • 尽可能少用,效用较低
    • java会自动进行转换,将基本数据类型转化成基本数据类型
  4. 运算符

    • ”+”可以完成字符串的拼接
      1. 运算符形式
      2. 对象的方法形式
      3. 函数形式MATH.sin()

静态语言与动态语言

  1. JAVA是一种静态语言
    • 编译时检查
    • PYTHON是动态语言,运行时检查
  2. 静态检查
    • 在运行之前进行bug检查,编译时检查
    • 目的:避免使用错误类型的操作导致的bug
    • 内容:
      1. 语法错误
      2. 参数个数错误
      3. 参数类型错误
      4. 返回值错误
  3. 动态检查
    • 在程序运行时进行检查
    • 内容
      1. 数组越界
      2. 空对象调用方法
      3. 得到结果无法明确表达
  4. 静态检查为检查类型,动态检查为检查数值
  5. 基本数据类型可能显示的不是它原本结果
    • 溢出
    • 浮点数的特殊值表示NAN,POSITIVE_INFINITY, NEGATIVE_INFINITY
  6. 可变性与不可变性
    • 不变性:
      1. 不变数据类型创建完成后,值不能修改
      2. 不变引用,一旦指定引用位置,不可再次指定
      3. final修饰,避免出现错误,易于理解
      4. notation
        • final类不能继承
        • final方法不能重写
        • final变量不能修改
    • 可变性:
      1. 修改时不会改变变量的指向,直接修改数据
    • 可变性 vs 不可变
      1. 可变类型优点:
        • 最小化对变量的拷贝副本
        • 可以进行共享
      2. 可变类型缺点:不安全!
      3. 别名,alias
        • 名字不同但是访问相同的区域,可能导致问题!
        • 所以需要使用防御性编程
        • 所以在传可变数据类型可以使用如下的表示方法: return new DATE(end.modify()),或者clone

快照图表

- 显式地表示模型
    - 单线是可变的,双线是不可变的
    - 不可变的引用指向可变的值

复杂数据类型

- 数组:
    1. 数组一旦创建,长度不可以进行修改—>a.length().
- 数组列表
    1. 变长数组,只能放对象数据类型
    2. List本身是一个接口,new时必须时要初始化具体实现,arraylist或linkedlist
- 迭代器(Iterator)
- 集合set 同样也只是一个接口
    - 不允许重复 - 无序性 - 表 MAP 接口++,键值对 - Iteration 遍历器。 1. for each循环时隐式地使用Iterator

不可变数据类型

  1. 包装类
    • 可以控制用户的使用权限
    • 使得集合建立之后便不可修改

空引用

  1. NULL是对应于对象数据类型的
  2. 粗心使用NULL会导致各种问题
  3. NULL的含义是含糊不清的

猜你喜欢

转载自www.cnblogs.com/jimmyLearning/p/9193181.html
今日推荐