基础篇——数据类型(基本数据类型和引用数据类型)

写代码的四点:
     1.明确需求。要做什么?
     2.分析思路。要怎么做?(1,2,3……)
     3.确定步骤。每一个思路要用到哪些语句、方法和对象。
     4.代码实现。用具体的语言代码将思路实现出来。

学习新技术的四点:
     1.该技术是什么?
     2.该技术有什么特点?(使用需注意的方面)
     3.该技术怎么使用?(写Demo)
     4.该技术什么时候用?(在Project中的使用场景 )

----------------------早计划,早准备,早完成。-------------------------

Java数据类型概述:

        数据类型在计算机语言中,是对内存位置的一个抽象表达式,可以理解为针对内存的一种抽象的表达方式。数据类型是语言的抽象原子概念,可以说是语言中最基本的单元定义,在Java中,本质上将数据类型分为两种:基本数据类型和引用数据类型。
                            |------数值型: |------整数型:byte  short  int  long
                                            |------浮点型:float  double
        |------基本数据类型 |------字符型:char
                            |------布尔型:boolean
数据类型                    
        
        |------引用数据类型 |------类:class
                            |------接口:interface
                            |------数组:array



基本数据类型:(八种:byte、short、int、long、float、double、char、boolean)

        1.byte:字节,Java中最小的数据类型,在内存中占8位(bit),即1个字节,
                     取值范围-128~127之间 (-2的7次方到2的7次方-1)  ,默认值0;
        2.short:短整型,在内存中占16位,即2个字节,取值范围-32768~32767之间
                     (-2的15次方到2的15次方-1),默认值0;
        3.int:整型,用于存储整数,在内存中占32位,即4个字节, 默认值0;
                  取值范围 -2147483648~2147483647之间 (-2的31次方到2的31次方-1)
        4.long:长整型,在内存中占64位,即8个字节,取值范围 -2^63~2^63-1
                    (-2的63次方到2的63次方-1), 默认值0;
        5.float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字
                   (与double的区别在于float类型有效小数点只有6~7位),默认值0.0f;
        6.double:双精度浮点型,在内存中占64位,即8个字节,用于存储带小数点的数字,
                          默认值0.0d;
        7.char:字符型,在内存中占16位,即2个字节,用于存储单个字符,
                     取值范围0~65535,默认值为空;
        8.boolean:布尔类型,在内存中占1位,用于判断真或假,
                            仅有两个值(true、false),默认值为false;
       注1:(e+38是乘以10的38次方,e-45是乘以10的负45次方)  
       注2:double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的。

基本数据类型的封装类:

        为各个数据类型提供一些数据的操作方法,可以直接使用。
        例如:String转int          String a = "21";
                                              int b = Integer.parseInt(a);
                  int转String           int a = 21;
                                              String b = String.valueOf(a);

引用数据类型:(三种:class、interface、array)

        1.类(class): 具备某些共同特征的实体的集合,是抽象的概念,
                                可以自主创建,默认值null;包含Object、void、String类型等;
class A {
        String MSG = "hello" ;

        public static void print (String MSG) {
                System. out .print(MSG) ;
        }
}
        2.接口(interface):抽象方法的集合,是抽象的概念,
                                          可以自主创建,默认值null;
interface A {//定义一个接口
        public static final String MSG = "hello" ; //全局常量

        public abstract void print () ; //抽象方法
}
        3.数组(array):同一种类型数据的集合,是一个容器,可以自动给数组中的元素从0
                                    开始编号,方便操作。
int[] arr = new int[3]; //一维数组
int [][] arr1 = new int [ 3 ][ 4 ] ; //二维数组(二维数组中有3个一维数组。每一个一维数组中有四个元素。)


基本数据类型和引用数据类型的区别:

        主要在于基本数据类型是分配在栈上的,而引用数据类型是分配在堆上的。不论是基本数据类型还是引用数据类型,都会先在栈中分配一块内存,对于基本数据来说,这块内存包含的是基本类型的内容;而对于对象类型来说,这块内存包含的是指向对象的指针,对象被手动弄的分配在堆上。
        1.内存方面:
          a.基本数据类型在被创建时,会在栈上给其划分一块内存,将数值直接存储在栈上;
          b.引用数据类型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信
             息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址;
        2.概念方面:
          a.基本数据类型:变量名指向具体的数值;
          b.引用数据类型:变量名指向存数据对象的内存地址;
        3.使用方面:
          a.基本数据类型:使用时需要赋具体值,判断相等使用"=="号;
          b.引用数据类型:使用时可以赋null,判断相等使用equals方法;


数据类型转换:(两种:自动转换、强制转换)

        1.自动数据类型转换(放大转换):需满足两个条件
                a.两种类型要兼容:例如整型和浮点型;
                b.目标类型大于源类型:例如int型数据可以自动转换为double型;
        2.强制数据类型转换(缩小转换):
                在变量前加上括号,在括号中指定要强制转换的类型;
                例如:double d = 40.9;
                           int i = (int)d;
                注:强制数据类型转换会损失数值精度,例如double类型变量40.9,
                       强制转换为int类型后值变成40;

猜你喜欢

转载自blog.csdn.net/qq941263013/article/details/80484529