java int 指针_java和指针

尽管java并不使用显示指针而且不允许编程者使用指针,可是访问对象依然以来指针。一个对象占用了从某个位置开始的一段内存空间,指针对于该对象而言只是一个保存了对象地址的变量,并且这个地址是对象的内存起始地址。在很多的语言里,指针是一种变量类型的技术术语,在Java中避免了这个术语而是用引用代替了它。

用例子说明更为明了。

比如定义了一个实体

Class Node{

Stirng name;

int age;

}

声明:Node p=null,q=new Node("asd",10);

p=new Node("asd",10);

System.out.println(p==q);

理解了引用就不难理解,输出是假,因为我们比较的是两个不同对象的引用变量,也就是,比较了两个不同的引用(地址),而不是对象。因此为了比较对象的内容,我们必须定义一个方法一次比较各个数据域。

public boolean equals(Node n)

{

return name.equals(n.name)&&age==n.age;

}

对象变量是对象的引用,这个现实有助于解释为什么需要谨慎的使用赋值运算符。

声明:Node node1=new Node("abc",20),node2=node1;

目的是创建对象node1,并为他的两个域赋值,然后创建对象node2,并将他的域初始化为相同的值。这些对象应当是独立的实体,因此对于他们中的任何一个的赋值都不会英系那个另一个的值,但是,在下面的赋值语句中:

node2.name="def";

node2.age=10;

之后打印System.out.println(node1.name+" "+node1.age+" "+node2.name+" "+node2.age );

结果竟是:def 10 def 10

这就充分的说明了这些变量名称都是引用,相当于C++中的指针,指向的是同一个地址。

尽管Java中缺少显示指针,但是Java比C/C++更依赖指针。只是这些对于编程者是透明的。

/

总结一下,java中指针是一个相对的概念,可以把对象看做一种特殊的指针(即受限制的,不能任意跳转的,这也是为了保证java是安全的一个条件),所以说java中没指针只是相对于c++或c中的指针而言;所以对有时抛出的NULLpointerException,此处的指针就能这样理解吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值