zoukankan      html  css  js  c++  java
  • 1 Java学习之 基本数据类型

    1. 基本概念

        数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式。接触每种语言的时候,都会存在数据类型的认识,有复杂的、简单的,各种数据类型都需要在学习初期去了解,Java是强类型语言,所以Java对于数据类型的规范会相对严格。数据类型是语言的抽象原子概念,可以说是语言中最基本的单元定义,在Java里面,本质上讲将数据类型分为两种:简单类型和复杂类型。
      简单类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。 

      复杂类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。

    2. 基本数据类型

        Java中的简单类型从概念上分为四种:实数、整数、字符、布尔值。但是有一点需要说明的是,Java里面只有八种原始类型,其列表如下: 
      实数:double、float
      整数:byte、short、int、long   字符:char 
      布尔值:boolean 

        复杂类型和基本类型的内存模型本质上是不一样的,简单数据类型的存储原理是这样的:所有的简单数据类型不存在“引用”的概念,简单数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面,而Java语言里面只有这八种数据类型是这种存储模型;而其他的只要是继承于Object类的复杂数据类型都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的。  



                                                 ┏数值型━┳━整数型:byte short int long
                  ┏基本数据类型━━┫              ┗━浮点型:float double
                  ┃                            ┣字符型:char                                          
    数据类型╋                            ┗布尔型:boolean              
                  ┃                            ┏类(class)
                  ┗引用数据类型━━╋接口(interface)
                                                 ┗数组(array)
    java的数据类型分基本数据类型(原始数据类型)和引用数据类型;
    1.基本八大类,图中可以很清楚的看到;这种类型的数据变量在声明之后java就会立刻分配给他内存空间。如:short a;  java会在可使用的内存空间寻找一个占两个字节的块给a变量;
    2.引用数据类型就那三种,类似C/C++的指针,它以特殊的方式指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址,想具体知道看看数据结构就好了。

    *   数据类型              字节数             最大值                                          最小值                                     默认值
    *   byte                          1                      127                                              -128                                           0
    *   char                         2                       65535                                           0                                           u0000
    *   short                        2                      32767                                         -32768                                     0 
    *   int                             4                      2,147,483,647                          -2,147,483,648                       0
    *   long                         8                                                                                                                             0L
    *   float                         4                       32位IEEE 754                                                                         0.0F
    *   double                    8                       64位IEEE 754                                                                           0.0
    *   boolean                 1位                                                                                                                         false


  • 相关阅读:
    基于比较的算法之五:堆排序
    顺序统计:寻找序列中第k小的数
    顺序统计:寻找序列中的最大最小数
    非基于比较的排序算法之一:计数排序
    基于比较的算法之四:快速排序
    基于比较的算法之三:插入排序
    基于比较的算法之二:选择排序
    基于比较的算法之一:冒泡排序
    轮廓问题/Outline Problem-->改进的算法及时间复杂度分析
    寻找最大连续子序列/Find the max contiguous subsequence
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3223533.html
Copyright © 2011-2022 走看看