Java 数据类型在实际开发中应用

  在前边的文章中,我已经介绍了Java核心的容器IO等,现在我来说一下java中的数据类型。在java中,一切东西皆为对象(这句话意思是java中绝大数情况都用对象),极少数不是对象的,也存在与之对应的对象(比如基本数据类型存在与之对应的包装类,数组有List对象可以代替)

  Java中数据类型 主要有“基本数据类型”、“String”、“引用类型” (基本的引用类型不多做介绍,在下一篇博文中着重介绍“枚举”,也算是引用类型的一种)

一:基本数据类型  1.1基本数据类型的定义

  byte、char、int、 float 、double、long...这些属于java的基本数据类型。具体用法可以参照  (Java基本数据类型总结 ) .在java看来,使用基本类型并不是面向对象的设计,于是提供一些专门的包装类。实际开发中,不需要我们考虑到底是用基本类型还是包装类(Java提供了自动装箱机制)。当然基本类型还是有必要学习一下的。

1.1.1按种类了解基本类型

   基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变   

Java决定了每种简单类型的大小,并不随着机器结构的变化而变化。这正是Java程序具有很强移植能力的原因之一。下表列出了Java中定义的简单类型、占用二进制位数及对应的封装器类。 

简单类型

 

boolean

 

byte

 

char

 

short

 

Int

 

long

 

float

 

double

 

void

 

二进制位数

 

1

 

8

 

16

 

16

 

32

 

64

 

32

 

64

 

--

 

封装器类

 

Boolean

 

Byte

 

Character

 

Short

 

Integer

 

Long

 

Float

 

Double

 

Void

 

  这张表可以简单的看一下,但不推荐花费太多时间(实际开发不需要,如果是应付考试还是需要记一下的)。因为 Java语言之所以流行就是希望程序员可以消耗更少的心力在语法上,从而省出更多的时间去整理具体的业务逻辑。在基本数据类型这一块,Java提供自动装箱机制,下面简单介绍一下自动装箱。

1.1.2Java中自动装箱

   自动装箱就可以简单的理解为将基本数据类型封装为对象类型,来符合java的面向对象。比如你可以直接把一个int值复制给一个Integer对象

//声明一个Integer对象 Integer num = 10;

   自动装箱的时候,存在一个细节点就是“对于值从–128到127之间的值,它们被装箱为Integer对象后,会存在内存中被重用,始终只存在一个对象”,测试如下

//在-128~127 之外的数
Integer num1 = 297;  Integer num2 = 297;         
System.out.println("num1==num2: "+(num1==num2));                   
// 在-128~127 之内的数
Integer num3 = 97;  Integer num4 = 97
System.out.println("num3==num4: "+(num3==num4));
//测试结果:num1==num2: false  \n  num3==num4: true

  有时候,只能用包装类,不能用基本数据类型,比如集合内

  具体的细节可以参考这几位仁兄的博客 (Java 自动装箱与拆箱(Autoboxing and unboxing)Java 自动装箱与拆箱

1.2 基本数据类型的保存位置

   基本类型存储在栈中,处于效率考虑,基本类型保存在栈中。延伸一下,包装类保存在堆中(注意我之前说过的-127到128之间的包装类Integer)

1.3 堆栈的简单介绍(这个和基本数据类型没有太大关系相当于是扩展内容)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7f283ff15f83e24d74931f5c52aadef4.html