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

  • 基本数据类型
    • 基本数据类型介绍
  • 封装数据类型
    • 基本数据类型对应的封装类介绍
  • 基本数据类型与封装类对应关系对照表
  • 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 封装类

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

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;然后打印结果,看一下他们的结果是否一样

可以看到他们输出的值都是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());}
}


这里还有许多方法我就不一一列举了.最常用的就那么几种.现在编辑器可以直接调用出来,

总结

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

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

基本数据类型和封装类型的区别相关推荐

  1. java原生类型没有封装_Java基本数据类型与封装类型详解(int和Integer区别)

    Java基本数据类型与封装类型详解(int和Integer区别) 发布于 2020-4-19| 复制链接 摘记: int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Int ...

  2. java 封装表单数据类型_Java基本数据类型与封装类型详解(int和Integer区别)

    int是java提供的8种原始数据类型之一. Java为每个原始类型提供了封装类,Integer是java为int提供的封装类(即Integer是一个java对象,而int只是一个基本数据类型).in ...

  3. Java中基本数据类型和包装类型的区别

    1.包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址:基本类型不是  2.包装类型是引用的传递:基本类型是值的传递  3.声明方式不同:                 基本数据类型不需 ...

  4. 八大基本数据类型之基本类型与包装类型的区别

    八大基本数据类型: 四个整数类型:byte(1个字节,8位).short(2个字节,16位).int(4个字节,32位).long(8个字节,64位). 二个浮点数类型:float(4个字节,32位) ...

  5. 基本数据类型与封装数据类型的区别

    基本数据类型与封装数据类型的区别 1.首先介绍一下java中有了基本数据类型为什么还要有包装类型(封装类型) Java中基本数据类型与包装类型有: 基本类型 包装器类型 boolean Boolean ...

  6. Java八大基本数据类型和对应的封装类型

    java基本类型 对应的 封装类型 基本类型 封装类型 byte Byte short Short boolean Boolean char Character int Integer long Lo ...

  7. java基本类型和封装类型区别及应用

    1.基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的.  2.从性能上说java中的基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建的,(对象的引用在堆栈上创建).比如  Int ...

  8. 基础类型(Primitives)与封装类型(Wrappers)的区别

    一.传递方式不同 封装类是引用类型. 基本类型(原始数据类型)在传递参数时都是按值传递,而封装类型是按引用传递的(其实"引用也是按值传递的",传递的是对象的地址).由于包装类型都是 ...

  9. 基本数据类型和包装类型

    1.包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址:基本类型不是 2.包装类型是引用的传递:基本类型是值的传递 3.声明方式不同:基本数据类型不需要new关键字:包装类型需要new在堆 ...

最新文章

  1. (转)fastcgi简介
  2. iPhone开发环境搭建For PC
  3. [20170603]12c Top Frequency histogram.txt
  4. spark中的ALS
  5. 基于netty的微服务架构
  6. VS2019使用NASM编译汇编文件
  7. IDEA 惊天 bug:进程已结束,退出代码 1073741819
  8. php 大流量网站访问
  9. tapestry autocomplete 更改样式及定位
  10. java520.1314表白_520最新表白公式,拿去不谢!
  11. 编译内核_Linux内核编译(自己实现的网卡上面测试c1000k案例)
  12. 二进制编码转ASCII字符与字符转二进制码的小解码器、编码器
  13. 图解密码学密钥的分配方式
  14. 特斯拉阀:被遗忘的天才之阀
  15. 三大流量站点你适合做哪个?
  16. 北京现在软件学校计算机,计算机软件排名 计算机软件学校排名
  17. 全国软考中级软件设计师 学习笔记-法律法规部分
  18. IDEA 新手使用手册
  19. qbo energy board debug
  20. Mysql 多表查询详解

热门文章

  1. 直方图均衡化 histeq函数
  2. ruby 生成哈希值_Ruby哈希值和可变的默认值
  3. 通过IntelliJ IDEA单步调试JDK源码
  4. iOS 苹果开发者账户 (证书、标识符和配置文件:Certificates, Identifiers Profiles)概述
  5. C++中析构函数的作用
  6. 全网最最最轻量级检测网络 yolo-fastest 快速上手
  7. matlab 中medfilt2报错,Matlab图像处理——中值滤波medfilt2问题解决
  8. 游戏解包的危害及资源加密的重要性
  9. linux r语言画图,R语言︱画图
  10. Android开发 ---- 两分钟写一个录音演示软件