全面了解java基本类型和封装类型的区别及应用

作者:jingxian 时间:2022-10-03 05:39:09 

1. 基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的。

2. 从性能上说java中的基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建的,(对象的引用在堆栈上创建)。比如

Integer i=new Integer(10); 其中new Integer()是在堆上创建的,而他的引用Integer i是在堆栈上。 封装类的出现,是为了更方便的使用一些基本类型不具备的方法,比如valueOf(),toString()等等。还有你如果想传递一个int对象的引用,而不是值,那只能用封装类。

在堆栈上分配内存的调用效率和在堆上分配内存的效率差太多了。虽然在堆栈上分配内存效率高,不过在堆栈上分配内存有内存泄露的问题。(这是一个平庸程序员基本解决不了的问题...)java用了一种很天才的方法提高了在堆上分配内存的效率,尽管如此,java还是慢。他不太可能达到向c++那么快,尽管他一直在承诺总有一天虚拟机会和机器码速度一样快。

JDK5.0开始可以自动封包了 ,也就是基本数据可以自动封装成封装类,基本数据类型的好处就是速度快(不涉及到对象的构造和回收),封装类的目的主要是更好的处理数据之间的转换,方法很多,用起来也方便。

当然,封装类型的传递是引用传递,比如

Integer a = new Integer(1);

表示一个Integer类型的引用a引用了一块内存,这块内存中的数据是1; 而a中所存的则是这块内存的引用(地址),把a传给别的方法或对象时,则是把a的引用传递过去了。

类型之间的转换:

String b = "123456";

int c = Integer.parseInt(b);

表示把字符串123456转成整型数字,其中parseInt是静态方法,可以直接使用

还有一点,在某些场合,需要用到封装类,比如一个集合List,它只能往里面添加对象,也就是Object,那么直接存数字肯定是不行 的,则需要将数字封装成封装类型对象再存到该List中,如

List list = new ArrayList(); 
list.add(new Integer(1)); 
list.add(new Integer(2)); 
list.add(new Integer(3)); 
list.add(new Integer(4)); 
JDK5.0以后可以自动封包,所以可以简写成 
List list = new ArrayList(); 
list.add(1); 
list.add(2); 
list.add(3); 
list.add(4);

全面了解java基本类型和封装类型的区别及应用

标签:java,基本类型,封装类型
0
投稿

猜你喜欢

  • Spring Boot 入门教程

    2023-05-26 00:14:44
  • java字符串格式化输出实例讲解

    2022-09-12 10:25:24
  • Spring整合MyBatis图示过程解析

    2023-11-13 11:45:09
  • Java超详细分析抽象类和接口的使用

    2021-06-09 12:19:05
  • Android编程实现手机自带内部存储路径的获取方法

    2022-05-14 11:59:11
  • Java线程的生命周期和状态控制_动力节点Java学院整理

    2022-01-25 17:01:42
  • Android 如何从零开始写一款书籍阅读器的示例

    2022-10-20 17:52:08
  • IDEA标签tabs多行显示的设置

    2023-09-18 06:58:08
  • C语言由浅入深讲解文件的操作下篇

    2022-12-05 21:21:54
  • C# 内部类与Lambda表达式用法详解

    2022-07-13 05:54:11
  • Springboot实现通用Auth认证的几种方式

    2023-08-05 20:54:58
  • 关于Android实现简单的微信朋友圈分享功能

    2021-07-01 16:49:49
  • Java 中的抽象介绍

    2023-03-27 06:10:20
  • 引入SpringCloud-gateway报错的解决方案

    2022-04-02 21:47:17
  • c# 获取照片的经纬度和时间的示例代码

    2022-03-22 18:21:54
  • 教你C#将CSV转为Excel的实现方法

    2021-09-18 00:42:03
  • SpringCloud之@FeignClient()注解的使用方式

    2022-05-16 04:22:40
  • Java实现超市会员管理系统

    2021-10-01 08:39:28
  • Spring MVC URL地址映射的示例代码

    2022-12-09 19:53:33
  • 一篇文章带你入门java变量与类型

    2022-10-13 06:14:58
  • asp之家 软件编程 m.aspxhome.com