美文网首页
java中的对象与引用

java中的对象与引用

作者: 秋灯锁忆 | 来源:发表于2017-06-12 00:19 被阅读0次

关键词:对象,对象引用,基本数据类型,传值


对象声明

  • 定义Person类:
    为了方便说明,我们定义的类
    public class Person{
    int number
    String name; //对象属性;
    public void setName(String name){
    this.name = name;
    } //对象方法;
    }
  • 声明语句:
    Person one = new Person();

那么问题来了,上述语句前后的Person是啥意思勒?都是Person对象?都是Person类?还是对象与类的组合?


语句拆分

  1. new Person():这一句应该最好理解,即使用new在堆内存中创建Person对象的内存空间;
  2. Person one :这句话其实是让程序在栈内存中创建一个名为one的Person对象的引用;
  3. =:将二者匹配,使得引用指向所开辟的具体空间位置。

你可以将Person one看成电视控制器, new Person()看成电视,遥控器指向电视。


对应关系

  • 一个对象引用指向0-1个对象;例如
    • Person one;//定义引用无指向
    • Person one = new Person(); //引用指向对象空间
  • 一个对象可能有0-无穷个对象引用
    0指向;例如
    • Person one = new Person();
      one = null; //失去(所有)引用指向,等待GC回收的对象实例;
  • 多个或无穷;例如
    • Person one = new Person();
      Person two;
      two = one; //指向同一对象空间

primitive类型与其他类型

java中基本数据类型包括:

基本数据类型(void不算)
  • 基本类型
    int number;
    number = 1;(8类数据在创建不需要new等关键字开辟存储空间,且做局部变量时number在栈中存值)
    System.out.print(number); //输出number的值
  • 其他类型
    Person one;
    one = new Person();
    Person.number ; //在声明引用指向后,未定义的实例变量系统默认为0或null等(依照变量类型而定,例Person.number = 0而Person.name = null)
    System.out.print(one); //运行结果Person@15db9742(类名加地址值)
    注:8种数据是不是对象呢,它们存在的意义在哪呢?我也理解的不是很透彻。。。。

引用传递和值传递

  • 引用类型:除了在函数传值的时候是"引用传递",在任何用"="向对象变量赋值的时候都是"引用传递"。
  • 值传递:*基本类型的传递都属于值传递,和C语言一样,当把Java的基本数据类型(如int,char,double等)作为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局部变量是输入参数的一个拷贝,所有的函数体内部的操作都是针对这个拷贝的操作,函数执行结束后,这个局部变量也就完成了它的使命,它影响不到作为输入参数的变量。这种方式的参数传递被称为"值传递"。

相关文章

  • Java四种引用方式

    Java引用方式包括: 强引用、软引用、虚引用、弱引用 java的对象位于heap中,heap中的对象有强可及对象...

  • java中的对象与引用

    关键词:对象,对象引用,基本数据类型,传值 对象声明 定义Person类:(为了方便说明,我们定义的类)publi...

  • Java自学-接口与继承 对象转型

    Java中的对象转型 示例 1 : 明确引用类型与对象类型的概念 首先,明确引用类型与对象类型的概念在这个例子里,...

  • Java中的四种引用方式

    Java中的四种引用 强引用 (StrongReference) Java中大部分的对象都是强引用,一个对象如果被...

  • java中对象引用

    java中除了基本类型的变量是赋值操作,其他类型的赋值都是引用。比如 输出结果为100,说明a与b指向了同一个地址...

  • Java 内存回收算法

    一、判断Java中对象存活的算法 1、引用计数器算法: Java 堆 中每个具体对象(不是引用)都有一个引用计数器...

  • java对象与对象引用

    url

  • 踩坑集

    1.==与equal:博客2.1 对象?对象引用?博客 2 java方法调用(call by),值调用?引用调用?...

  • Java基础---内存中的对象与对象引用

    其实引用这种机制就像C语言中的指针,在一块内存中存放一个指针类型的变量,另一块内存存放一个与指针数据类型相同的变量...

  • 做java需要知道的,关于JVM GC五个知识

    一.垃圾回收与算法 1.如何确定垃圾 (1). 引用计数法 在 Java 中,引用和对象是有关联的。如果要操作对象...

网友评论

      本文标题:java中的对象与引用

      本文链接:https://www.haomeiwen.com/subject/tukxqxtx.html