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中的局部变量都必须初始化。
  • 相关阅读:
    从尾到头打印链表
    剑指offer
    Codeforces Round #345
    算法入门系列之字符串
    【codenet】代码相似度计算框架调研 -- 把内容与形式分开
    【学习笔记--数据结构】合法的出栈序列与栈混洗
    我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
    【PAT L2-001】最短路计数
    【CF689D Friends and Subsequences】二分搜索,区间查询
    【编译原理】语法分析LL(1)分析法的FIRST和FOLLOW集
  • 原文地址:https://www.cnblogs.com/bffc/p/2968821.html
Copyright © 2011-2022 走看看