哈工大2021软件构造复习心得3(Chapter 4)

Data Type and Type Checking

Java的基本数据类型有(一般是小写字母):

  • int
  • long
  • boolean
  • double
  • char

Java的对象数据类型有(一般开头是大写字母):

  • String
  • BigInteger

两种类型变量的对比:

在这里插入图片描述

Static Typing and Dynamic Typing

Static Typing : 在编译阶段进行类型检查

可在编译阶段发现错误,避免了将错误带入到运行阶段,可提高程序的健壮性/正确性

Dynamic Typing : 在运行阶段进行类型检查

Static Checking

  • 语法错误
  • 类名/函数名错误
  • 参数类型错误
  • 参数数目错误
  • 返回值类型错误

考虑类型的检查,由于编译阶段变量也没有值

Dynamic Checking

  • 非法的参数值 比如除0错误
  • 非法的返回值
  • 越界
  • 空指针

主要是对值的检查

对于除以0的考虑:

如果将double除以0,JVM将显示Infinity:

public static void main(String [] args){ double a=10.00; System.out.println(a/0); }
//打印 Infinity

如果将int除以0,则JVM将抛出算术异常。

public static void main(String [] args){

    int a=10;

    System.out.println(a/0);

}
结果为: Exception in thread "main" java.lang.ArithmeticException: / by zero
但是如果我们将int除以0.0,那么JVM将显示Infinity:
public static void main(String [] args){

    int a=10;

    System.out.println(a/0.0);

}
//打印: Infinity
//这是因为JVM会自动类型转换,因此我们得到无穷大而不是ArithmeticException。

Changing a variable or its value

change a variable:
将该变量指向另一个值得存储空间

change a value:
将该变量当前指向的值的存储空间中写入一个新的值

Immutability 不变性

不变数据类型:一旦被创建,其值不能改变

如果是引用类型(指针),也可以是不变的,一旦确定其指向的对象,不能再被改变

To make a reference immutable, declare it with the keyword final

如果编译器无法确定final变量不会改变,就提示错误(属于静态检查)

Note:

  • final类无法派生子类
  • final变量无法改变值/引用
  • final方法无法被子类重写

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值