Java数据类型检验

Java的基本数据类型:int long boolean double char

Java的对象数据类型:Sring BigInteger

对于数据类型:Primitives:只有值但没有ID,无法与其他值进行区分。同时是在栈中分配内存,代价较低。

Object Reference Types:既有ID也有值,是可变的,也可以是不可变的,其在堆中分配内存,代价高昂。

将基本类型包装为对象类型:Boolean Integer Short Long Character Float Double。通常是在定义集合类型的时候使用,一半情况下避免使用。

对于静态类型语言:在编译阶段进行类型检查,所有变量的类型在编译时(在程序运行之前)是已知的因此编译器可以推断出所有表达式的类型同样如此如果a和b被声明为int,那么编译器得出的结论是a+b是int。静态类型检查:可在编译阶段发现错误,避 免了将错误带入到运行阶段,可提高程序正确性/健壮性。并不考虑值,只是关于类型的检查

静态类型检查:语法错误,类名/函数名错误,参数数目错误,参数类型错误,返回值类型错误等。

动态类型语言:在运行阶段进行类型检查。是关于值的检查。

在改变变量的时候有两种情况:1.改变一个变量      2.改变一个变量的值。

改变一个变量:将该变量指向另一个值的存储空间。

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

对于定义的变量存在不变性以及可变性。不变性数据类型是一经创建,不改变其值如果是引用类型(指针),也可以是不变的:一旦确定其指向的对象,不能再被改变。

如果Java编译器不相信您的最终变量在运行时只分配一次,那么它将生成一个编译器错误。所以final提供了静态检查不可变引用。故尽量使用final变量作为输入参数以及局部变量。

final:无法派生子类、无法改变值/引用、无法被子类重写。

对于不变量:如String

而相似的StringBuilder是可变量

使用不可变类型,对其频繁修改会产生大量的临时拷贝(需要垃圾回收 )
可变类型最 少化拷贝以提高效率。安全的使用可变类型:局部变量,不会涉及共享;只有一个引用,如果有多个引用(别名),使用可变类型就非常不安全
引用是不可变的,但指向的值却可以是可变的。可变的引用,也可指向不可变的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值