(二)Java 数据类型

2019-05-09  本文已影响0人  蓝笔头

数据类型 在计算机语言里面,可以理解为针对 内存 的一种抽象的表达方式。

所有的计算机编程语言,都会存在 数据类型 的概念,各种数据类型都需要在 学习初期 去了解。数据类型 可以说是计算机编程语言中最基本的单元。

在 Java 里面,本质上讲将 数据类型 分为两种:基本类型引用类型

基本类型

基本类型,或者叫做内置类型。Java 中的八种基本类型分为四类。

我们把上面的取值范围和默认值都打印一下,代码清单如下所示。

public class Demo1 {

    /**
     * 成员变量不初始化就会赋默认值
     */
    static byte byteDefaultValue;

    static short shortDefaultValue;

    static int intDefaultValue;

    static long longDefaultValue;

    static float floatDefaultValue;

    static double doubleDefaultValue;

    static boolean booleanDefaultValue;

    static char charDefaultValue;


    public static void main(String[] args) {

        System.out.println("2^7 = " + pow(2, 7));
        System.out.println("2^15 = " + pow(2, 15));
        System.out.println("2^31 = " + pow(2, 31));
        System.out.println("2^63 = " + pow(2, 63));


        System.out.println("byte 占 " + Byte.SIZE + "(bit)" + "--------" + "byte 的默认值:[" + byteDefaultValue + "] byte 的数据范围:[" + Byte.MIN_VALUE + ", " + Byte.MAX_VALUE + "]");

        System.out.println("short 占 " + Short.SIZE + "(bit)" + "--------" + "short 的默认值:[" + shortDefaultValue + "] short 的数据范围:[" + Short.MIN_VALUE + ", " + Short.MAX_VALUE + "]");

        System.out.println("int 占 " + Integer.SIZE + "(bit)"  + "--------" +  "int 的默认值:[" + intDefaultValue + "] int 的数据范围:[" + Integer.MIN_VALUE + ", " + Integer.MAX_VALUE + "]");

        System.out.println("long 占 " + Long.SIZE + "(bit)" + "--------" + "long 的默认值:[" + longDefaultValue + "] long 的数据范围:[" + Long.MIN_VALUE + ", " + Long.MAX_VALUE + "]");

        System.out.println("float 占 " + Float.SIZE + "(bit)" + "--------" + "float 的默认值:[" + floatDefaultValue + "]");

        System.out.println("double 占 " + Double.SIZE + "(bit)" + "--------" + "double 的默认值:[" + doubleDefaultValue + "]");

        System.out.println("boolean 的默认值:" + booleanDefaultValue);

        System.out.println("char 占 " + Character.SIZE + "(bit)" + "--------" + "char 的默认值:[" + charDefaultValue + "]");

        System.out.println("char 的默认值是 '\\u0000': " + (charDefaultValue == '\u0000'));

    }

    /**
     * 计算 a^n 的值
     * 
     * @param a
     * @param n
     * @return
     */
    public static long pow(int a, int n) {
        if (n == 1) {
            return a;
        }
        long result = 1;
        for (int i = 0; i < n; i ++) {
            result = result * a;
        }
        return result;

    }
}

运行结果如下图所示:

image.png

引用类型

在 Java 中,引用类型的变量非常类似于 C/C++指针引用类型指向一个对象,指向对象的变量是 引用变量

下面讲解一下常用的引用类型。

char a = 'c';  // char 字符常量用单引号 ' '
String b = "c"; // String 字符串常量用双引号包裹 " "

装箱和拆箱

Integer a = 10; // 装箱
int b = a; // 拆箱

内存分配

假设计算机有 10 个的 内存区域 可以被分配,如下图所示。

内存.png

分别定义一个 基本类型变量 和一个 引用类型变量 并进行赋值。

int a = 4;
Integer b = 3;

简单的内存分配示意图如下所示。

内存分配示意图.png

(正文完)

上一篇下一篇

猜你喜欢

热点阅读