分享

软件构造3.1 数据类型和类型检查

 印度阿三17 2019-06-23
一、java中的数据类型
类型是一组值,以及可以对这些值执行的造作
数据类型
1、基本数据类型:在堆中 不可变
2、对象数据类型:在栈中

二、静态、动态数据类型检查
静态:编译阶段——与类型有关(语法错误、类名、函数名错误等,避免因错误类型的操作而导致的bug)(针对类型、与变量特定值无关的错误)
动态:运行阶段——与值有关(运行时才知道非法的参数、超出范围的索引值、调用空对象的方法)(针对由特定值引起的错误)

三、可变、不可变性
改变一个变量:将变量指向另一个存储空间
改变一个变量的值:将改变量空间写入一个新的值
Immutability:“final”——值不可变、引用不可变、类型不能被继承、方法不能override

对象 不可变(String)
String的快照图
对象 可变 (StringBuilder)
StringBuilder快照图
当有多个引用时
多个引用的快照图

只用可变数据类型的风险
1、传递可变类型的参数(可能会改变其中的值,再次使用问题)
2、返回可变类型的数据(如果接受放进行修改,也许会影响到程序内部)

四、Arrays

1、Arrays(定长的数据类型)一但被创建,不可修改数组的长度

int[] a = new int[100];

迭代
在这里插入图片描述

2、List (长度可修改)

	List<Integer> list = new ArrayList<Integer>(); 

ps.List是一个接口,List中的成员必须为对象

迭代
在这里插入图片描述
3、Set(是零个或多个惟一对象的无序集合)

Set<Integer> numbers = new Hashset<>();

set是一个抽象接口
4、Map

Map<key,value> map = new HashMap <key,value>

map是一个抽象接口

来源:https://www./content-4-262401.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多