zoukankan      html  css  js  c++  java
  • Java中的几个重要的数据类型

    1.一些基本类型,像int,char这些类型(小的,简单的变量),为了方便,Java并没有把他们也创建到堆中,而是放在了堆栈中,可以高效的存取

     

    主类型 

    大小 

    最小值 

    最大值 

    封装器类型

    boolean

    1-bit



    Boolean

    char

    16-bit

    Unicode 0

    Unicode 216- 1

    Character

    byte 

    8-bit

    -128

    +127

    Byte

    short

    16-bit

    -215

    +215 – 1

    Short1

    int

    32-bit

    -231

    +231 – 1

    Integer

    long

    64-bit

    -263

    +263 – 1

    Long

    float

    32-bit

    IEEE754

    IEEE754

    Float

    double

    64-bit 

    IEEE754

    IEEE754

    Double

    void




    Void1

     

    Java的基本数据类型与机器无关,这点与C++不同,由于这个特性,Java的可移植性比C++强很多,号称一次编译,到处运行(呵呵,有点牛吧)

    讲讲封装器类型的好处:

    2.高精度数字
    Java 1.1增加了两个类,用于进行高精度的计算:BigInteger和BigDecimal。尽管它们大致可以划分为“封装器”类型,但两者都没有对应的“主类型”。
    这两个类都有自己特殊的“方法”,对应于我们针对主类型执行的操作。也就是说,能对int或float做的事情,对BigInteger和BigDecimal一样可以做。只是必须使用方法调用,不能使用运算符。此外,由于牵涉更多,所以运算速度会慢一些。我们牺牲了速度,但换来了精度。
    BigInteger支持任意精度的整数。也就是说,我们可精确表示任意大小的整数值,同时在运算过程中不会丢失任何信息。
    BigDecimal支持任意精度的定点数字。例如,可用它进行精确的币值计算

     

    3.Java的数组

    使用C++的可能对里面的数组越界的问题比较愤怒吧,往往编译器跳出来的内存错误很多是数组越界的问题;

    Java可以保证被初始化,而且不可在它的范围之外访问(Java程序员应该感到庆幸了)。由于系统自动进行范围检查,所以必然要付出一些代价:针对每个数组,以及在运行期间对索引的校验,都会造成少量的内存开销。但由此换回的是更高的安全性,以及更高的工作效率。为此付出少许代价是值得的。
    创建对象数组时,实际创建的是一个句柄数组。而且每个句柄都会自动初始化成一个特殊值,并带有自己的关键字:null(空)。一旦Java看到null,就知道该句柄并未指向一个对象。正式使用前,必须为每个句柄都分配一个对象。若试图使用依然为null的一个句柄,就会在运行期报告问题。因此,典型的数组错误在Java里就得到了避免

     

    4.自定义的类
    class ATypeName {/*类主体置于这里}
    这样就引入了一种新类型,接下来便可用new创建这种类型的一个新对象:
    ATypeName a = new ATypeName();
    在ATypeName里,类主体只由一条注释构成(星号和斜杠以及其中的内容,本章后面还会详细讲述),所以并不能对它做太多的事情。事实上,除非为其定义了某些方法,否则根本不能指示它做任何事情

  • 相关阅读:
    Mysql存储类型选择
    Mysql的MVCC
    SQL标准中的四种隔离级别
    web权限管理总结
    关于oauth2中为什么不直接返回token而是传授权码code
    课程作业——爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离
    网络爬虫基础练习
    Python中文词频统计
    关于Maven的配置与学习
    课程作业——综合练习:英文词频统计
  • 原文地址:https://www.cnblogs.com/xiaoyunxiao/p/2412015.html
Copyright © 2011-2022 走看看