第二章.一切都是对象之基本类型【主数据类型】数组

来源:互联网 发布:hbase数据库设计原则 编辑:程序博客网 时间:2024/06/07 20:09

1.概念:

  • 在程序设计中经常用到的一系列类型,他们被特殊对待。

2.为什么会有基本类型,存储位置

  • 因为用new将对象存储在“堆”里,所以用new创建一个对象——特别小的/简单的变量,往往不是很有效。因此
    ,java采用与c和c++相同的方法。
  • 不用new创建变量,而是创建一个“并非是引用”的“自动”变量。这个变量直接存储“值”,并置于堆栈中,因此更高效。

3.主数据类型的大小和名称。

  • 基本型别 大小最小值最大值包装器类型示例boolean----------------Booleanboolean is = false;char16-bitUnicode 0Unicode 2^16-1Characterchar s ="s";byte8-bit-128+127Bytebyte b = 89;short16-bit-2^15+2^15-1Shortshort n = 12;int32-bit-2^31+2^31-1Integerint x = 96;long64-bit-2^63+2^63-1Longlong l = 3655214float32-bitIEEE754IEEE754Floatfloat f = 36.2f;double64-bitIEEE754IEEE754Doubledouble d = 36.66void   Void 

4.赋值问题

  • 如果将每一种类型看作是每一种规格大小的杯子,那么大杯子的东西往小杯子里到会出现溢出情况,
    这种情况下大杯子里的数据会丢失一部分,也就是说会溢位。
  • 所有的数值类型都有正负号,所以不要去寻找无符号的数值类型。

5.包装器

  • 每一种基本类型都都对应一个包装器,使得可以在中创建一个非基本对象,用来表示对应的基本类型。
    如:Character ch = new Character('x');
  • 可以反向转换 char c = ch;

6.高精度数字

  • java提供了两个用于高精度计算的类:BigInteger和BigDecimal.
  • 二者大体上属于“包装器”范畴,但二者没有对应的基本类型。
  • 这两个类包含的方法提供的操作与对基本类型所能执行的操作相似。能作用于inthe float的操作,同样也能作用于他们,但需要调用相应的方法。
  • 由于做了许多复杂的操作,运算速度会很慢。
  • BigInteger支持任何精度的整数,可以准确的表示任何大小的整数值,而不会丢失信息。
  • BigDecimal支持任何精度的定点数。可以进行货币计算等,

7.java中的数组

  • java确保数组会被初始化,而且不能再它的范围之外被访问。
  • 这种范围检查是以每个数组上少量的内存开销及运行检查为代价的。但由此换来的是安全性和效率的提高是值得的。
  • 当创建一个数组对象的时候,实际上就是创建了一个引用数组,例如dog[i] = new Dog(),dog[i]是一个引用;即数组对象中存在的是一组引用,他们指向对象。
  • 每一个引用都会被自动的初始化为一个特定值,该值拥有自己的关键字null,如dog[i] = null;,一旦java看到null,就知道这个引用还没有指向特定的对象,
  • 基本类型的数组,编译器会将这种数组所占的内存全部置为0.















0 0
原创粉丝点击