装箱与拆箱以及java 的一些基本概念

原创 2013年12月03日 18:33:29

 装箱是将值类型转换为 object 类型或由此值类型实现的任一接口类型的过程。

int i = 123;

        // The following line boxes i.

         object o = i;  

        // unboxing

         o = 123; i = (int)o;



对象,打个很简单的比方说:男人,女人都是高级动物,都是一个对象,他们都有一个父对象就是高级动物。
这里的装箱应该理解为 封装对象 ,即把基础数据类型(如 int)转换成基础类型封装类的对象(如 new Integer())
拆箱就是装箱的反过程,即把基础类型封装类的对象(如 new Integer())转换为基础数据类型(如 int)。

装箱: Integer a = new Integer() ;
              a = 100 ; //1.5以前不支持为对象如此赋值
拆箱: int b = new Integer(100) ;


道理很简单,按理说C#被设计成一种完全面向对象的语言。因此,包括数字、字符、日期、布尔值等等在内的一切,都是对象。似乎只需要一种方式来对待这些对象就可以了。


但是C#不是只停留在学院中和理想中,它必须为性能而妥协,我们知道,对于CPU来说,处理一个完整的对象,需要很多的指令,对于内存来说,又需要很多的内存。如果连整数都是对象,那么性能自然很低。C#于是使用了一种机制,使得这些基本类型在一般的编程中被当作非对象的简单类型处理,在另一些场合,又允许它们被视作是一个对象。这种机制就是装箱和拆箱。

装箱后的对象看上去和一个对象一样,拥有方法,可以当作object处理,拆箱后的变量,看上去又如同C语言中的那些变量、结构体一样,可以直接参与运算和处理。

1)对象 对象是运行期的基本实体,它是一个封装了数据和操作这些数据的代码的逻辑实体。

2)类 类是具有相同类型的对象的抽象。一个对象所包含的所有数据和方法可以通过类来构造。

3)封装 封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。对象的某些数据和代码可以是私有的,不能被外界访问,以此实现对数据和代码不同级别的访问权限。

4)继承 继承是让某个类型的对象获得另一个类型的对象的特征。通过继承可以实现代码的重用:从已存在的类派生出的一个新类将自动具有原来那个类的特性,同时,它还可以拥有自己的新特性。

5)多态 多态是指不同事物具有不同表现形式的能力。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减少代码的复杂度。

6)动态绑定 绑定指的是将一个过程调用与相应代码链接起来的行为。动态绑定是指与给定的过程调用相关联的代码只有在运行期才可知的一种绑定,它是多态实现的具体形式。

7)消息传递 对象之间需要相互沟通,沟通的途径就是对象之间收发信息。消息内容包括接收消息的对象的标识,需要调用的函数的标识,以及必要的信息。消息传递的概念使得对现实世界的描述更容易

8)方法 方法(Method)是定义一个类可以做的,但不一定会去做的事。


类是抽象的,而对象是一个实体
.类:具有相同属性和行为的一组对象的集合.
对象:是具体存在的事物,明确定义状态和行为.


类:一系列属性的集合,如老师
对象:一个具体的事务或集体中的一员,如xx老师!
xx老师有老师(类)的所有属性,并自己还有延伸的属性(装逼,弱智)!

简单的理解为:对象是类的一个实例!类是集体对象共同属性的集合!


Java装箱和拆箱的基本概念及使用

Java装箱和拆箱的基本概念及使用 要理解装箱和拆箱的概念,就要理解Java数据类型 装箱:把基本类型用它们相应的引用类型包装起来,使其具有对象的性质。int包装成Integer、floa...

Java装箱和拆箱的基本概念及使用

Java装箱和拆箱的基本概念及使用 要理解装箱和拆箱的概念,就要理解Java数据类型 装箱:把基本类型用它们相应的引用类型包装起来,使其具有对象的性质。int包装成Integer、floa...

黑马程序员——Java高新技术——JDK4.5版本新特性枚举、高级for循环、静态导入、可变参数、基本数据类型的自动装箱与拆箱

----------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ----------------------Java培训、Android培训、iOS培训、.Net培训、...

黑马程序员-Java中基本类型对应的类(装箱与拆箱)

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------                                        ...

Java高新技术【1】 (静态导入-可变参数-增强for循环-基本数据类型的自动拆箱与装箱)

(1)静态导入 ·import 语句可以导入一个类或某个包中的所有类。 ·import static语句导入一个类中的某个静态方法或所有静态方法 静态导入与编译器语法设置:  impo...

Android中的java基础(二)——装箱与拆箱及不同基本类型的比较(类型转换)

无论在Android还是java中,我们都会遇到基本数据类型以及对应到引用数据类型的转换操作等等,这里通过装箱拆箱操作以及类型转换进行实例分析。...

java基本类型自动装箱与拆箱

《深入理解JAVA虚拟机-JVM高级特性与最佳实践》的P274有如下代码片段 public static void main(String[] args) { Integer a =1; In...
  • poi987
  • poi987
  • 2011年12月05日 00:10
  • 485

Java基本类型的装箱与拆箱

Java基本类型的装箱与拆箱今天,我抽空做了一道选择题,是关于这方面,结果一不小心就错了。。。 题目是这样的:在jdk1.5的环境下,有如下4条语句:Integer i01 = 59; int i0...

Java 基本数据封装类自动装箱与拆箱

Java代码   public class Test {       /**       * @param args       */       public static v...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:装箱与拆箱以及java 的一些基本概念
举报原因:
原因补充:

(最多只允许输入30个字)