zoukankan      html  css  js  c++  java
  • Java中的类型

    JAVA语言中提供引用类型和原始类型(或内置类型)两种不同的类型。
    在JAVA语言中定义了8种基本的数据类型:byte,short,int,long,float,double,boolean。它们都属于原始类型。而Java为每个原始类型提供的包装类Byte,Short,Integer,Long,Float,Double,Character,Boolean都属于引用类型。原始类型和引用类型的区别是什么?简单来说他们在Java虚拟机存储方式不同,原始类型在操作堆栈中存储的数值,而引用类型对应的堆栈项并不是对象本身,而只是一个对象的引用,也就是对象真正所在内存的地址。因此我们也就不难理解,Java声明一个对象时并没有真正的创建一个对象,只是创建了一个引用;而当我们声明原始类型时直接会生成一个具有默认值的类型,这个类型本身也声明了存储。

    Java语言是一个纯面向对象的语言,但为什么Java中的基本数据类型却是不面向对象的。其实从上面的说明不难看出,基本数据类型的包装类是引用类型,但我们从存储过程不难看出,引用类型的使用在程序调用上绝对没有原始类型快,因为基本类型很常用,引入原始类型可以大大提高Java程序的执行效率。但是既然有了基本类型又为什么还有提供了基本数据类型的包装类,很好理解Java中的基本数据类型不面向对象的,它在数据转换,数据处理时不是很方便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的包装类。包装类在处理封装原始类型数据之外,还包含了很多与该原始类型相关的方法。如将int转化为string,取得int类型的最大最小值,判断一个字符是不是空白字符,得到它的码值等多个方法。而且有些数据结构如ArrayList,HashMap等不能存放原值类型,这时只能使用其包装类8个基本数据类型的储存方式和数值范围。
    byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。 
    short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
    int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
    long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
    float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
    double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
    boolean:长度由具体的JVM决定,只有true和false两个取值。
    char:16位,存储Unicode码,用单引号赋值。

    变量类型的声明和初始化
    boolean 默认值 false;
    byte,short,int,long 默认值都是 0;
    float,double 默认值都是 0.0;
    char 默认值 \u0000;
    对象 默认值 null。
    值得注意的:
    1.声明一个float类型的值,必须以f或F为后缀,否则会被当作double类型,对于double类型声明后缀d或D是可选的。
    2.Java中的局部变量都必须初始化。
  • 相关阅读:
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    《算法竞赛入门经典》 例题35 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
    SVN分支
    SVN分支
    SVN 版本回退
    SVN 版本回退
    如何在excel中取消合并单元格后内容自动填充?
    如何在excel中取消合并单元格后内容自动填充?
    如何让自己像打王者荣耀一样发了疯、拼了命的学习?
  • 原文地址:https://www.cnblogs.com/bffc/p/2968821.html
Copyright © 2011-2022 走看看