基本数据类型和封装类型的区别

基本数据类型和封装类型的区别

    • 基本数据类型
      • 基本数据类型介绍
    • 封装数据类型
      • 基本数据类型对应的封装类介绍
    • 基本数据类型与封装类对应关系对照表
    • String类
    • 他们的区别
    • 总结

基本数据类型

首先,我们应该想了解什么是Java基本数据类型.通俗的说,按照字面意思就是我们学java语言最基本要知道的类型,可以说如果你连最基本的类型都不知道就好比你建房子不知道砖块是什么东西一样.

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

基本数据类型介绍

  1. byte类型:

       byte 数据类型是8位、有符号的,以二进制补码表示的整数;
       最小值是 -128(-2^7);
       最大值是 127(2^7-1);
       默认值是 0;
       byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
       例子:byte a = 100,byte b = -50。
    
  2. short类型:

    	short 数据类型是 16 位、有符号的以二进制补码表示的整数
    	最小值是 -32768(-2^15);
    	最大值是 32767(2^15 - 1);
    	Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
    	默认值是 0;
    	例子:short s = 1000,short r = -20000。
    
  3. int类型 (初学者最常见的类型)

    	int 数据类型是32位、有符号的以二进制补码表示的整数;
    	最小值是 -2,147,483,648(-2^31);
    	最大值是 2,147,483,647(2^31 - 1);
    	一般地整型变量默认为 int 类型;
    	默认值是 0 ;
    	例子:int a = 100000, int b = -200000。
    
  4. long类型

    	long 数据类型是 64 位、有符号的以二进制补码表示的整数;
    	最小值是 -9,223,372,036,854,775,808(-2^63);
    	最大值是 9,223,372,036,854,775,807(2^63 -1);
    	这种类型主要使用在需要比较大整数的系统上;
    	默认值是 0L;
    	例子: long a = 100000L,Long b = -200000L。
    	"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
    
  5. float类型

    	float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
    	float 在储存大型浮点数组的时候可节省内存空间;
    	默认值是 0.0f;
    	浮点数不能用来表示精确的值,如货币;
    	例子:float f1 = 234.5f。
    
  6. double类型

    	double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
    	浮点数的默认类型为double类型;
    	double类型同样不能表示精确的值,如货币;
    	默认值是 0.0d;
    	例子:double d1 = 123.4。
    
  7. boolean类型

    	boolean数据类型表示一位的信息;
    	只有两个取值:true 和 false;
    	这种类型只作为一种标志来记录 true/false 情况;
    	默认值是 false;
    	例子:boolean one = true。
    
  8. char类型

    	char类型是一个单一的 16 位 Unicode 字符;
    	最小值是 \u0000(即为0);
    	最大值是 \uffff(即为65,535);
    	char 数据类型可以储存任何字符;
    	例子:char letter = 'A';。
    

注意

此处没有Sring类型,八大类型中不包括String类型,许多初学者会误以为String类型是基本数据类型.其实不是的.Sring类型虽然常用,但他是封装类型.为什么是封装类型,以下会讲明原因

封装数据类型

既然提供了基本类型,为什么还要使用封装类呢?(具体可百度,这里只是粗略讲下)

java是一种面向对象语言,在面向对象程式设计方法中,封装(英语: Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

通俗一点来说,将基本数据类型比作建房子所需要的砖块.封装类就是将砖块包装一下,贴上一些标识,加上一些水泥.这样我们在用的时候方便查找哪块砖放哪,同时砖块也更加坚固了(因为加上了水泥).

封装的优点

  1. 良好的封装能够减少耦合。

  2. 类内部的结构可以自由修改。

  3. 可以对成员变量进行更精确的控制。

  4. 隐藏信息,实现细节。

基本数据类型对应的封装类介绍

基本数据类型一般将单词首字母大写即可得到所对应的的封装类.为什么说一般呢,因为有几个特殊的.一下列列举了八大基本数据类型对应的封装类

	byte	基本数据类型 对应 Byte		封装类
	short 	基本数据类型 对应 Short		封装类
	int		基本数据类型 对应 Interger	封装类
	long	基本数据类型 对应 Long		封装类
	float	基本数据类型 对应 Float		封装类
	double	基本数据类型 对应 Double		封装类
	boolean	基本数据类型 对应 Boolean	封装类
	char	基本数据类型 对应 Character	封装类

基本数据类型与封装类对应关系对照表

基本数据类型和封装类型的区别_第1张图片

String类

注意.String是一个单独的封装类,他没有对应的基本数据类型.它也是常用的封装类,具体常用方法可以查询JDK_API.

他们的区别

我会用最简单的例子讲解int类型和Interger的区别.其他的大家可以自行测试,这样可以加强自己的记忆.毕竟自己动手和听别人讲是两种学习方式.古人云,读万卷书,不如行万里路也是这个道理.

    public static void main(String[] args) {
        Integer integer=new Integer(5);
        int  a=5;

        System.out.println("我是int数据类型,我的值为 : "+ a);
        System.out.println("我是Integer封装类型,我的值为 : "+integer);
        
    }
}

可以看到int类型和Interger创建是用了不同的方法.
创建Interger类时,我们需要New一个Integer(),然后传入一个参数5,而int直接取个名在赋值一个5;然后打印结果,看一下他们的结果是否一样
基本数据类型和封装类型的区别_第2张图片
可以看到他们输出的值都是5,你会问了.这没啥不一样啊?.别急,我们改进一下代码再看一看也不迟.

    public static void main(String[] args) {
        Integer integer=new Integer(5);
        int  a=5;


        System.out.println("我是int数据类型,我的值为 : "+ a);
        System.out.println("我是Integer封装类型,我的值为 : "+integer);

        if(integer==a){
            System.out.println("我们是一样的,我们没有区别!!");
        }else{
            System.out.println("我们不一样,你是白云,我是黑土!!");
        }
    }
}

在这里插入图片描述
我去,你看,又相同了…
额,容我解释一下,这里涉及到的自动拆箱的知识了.大家也可以具体百度一下这里的知识,通过上面的代码可以发现,如果你只是引用他们的值得话,他们是没有区别的.

而他们的区别在于Integer是一个类,他可以调用类的方法,而int基本数据类型不行.列如已下的例子,他们相加不会等于10,而是会等于55,因为integer调用了toString()方法将integer的赋值转化为字符串了,整数型加字符串结果会等于字符串.

    public static void main(String[] args) {
        Integer integer=new Integer(5);
        int  a=5;


        System.out.println("我的结果是: ");
        System.out.println(a+integer.toString());

    }
}

基本数据类型和封装类型的区别_第3张图片
这里还有许多方法我就不一一列举了.最常用的就那么几种.现在编辑器可以直接调用出来,
基本数据类型和封装类型的区别_第4张图片

总结

基本数据类型和对应封装类如果你只是想使用他们具体的赋值,他们之间本质上是没有区别的.如果你不单单想用一个赋值,是想用里面的方法解决许多繁琐的问题.那就使用封装类吧.因为封装类就是在基本类型不够用的的基础上一出来的.封装类提供了许多的方法供君选择.它可以简化程序员的敲代码的量.由于这是我第一次写博客,如果有什么错误可以在评论里指出来.也可以一起交流代码问题,共同学习,共同进步.

大家也可以关注我哦,以后会不定时更新更多有趣好玩的代码知识,共同学习,共同进步

你可能感兴趣的:(基本数据类型和封装类型的区别)