Java对指针的处理

       最近刚刚开始看严蔚敏老师的数据结构,是C语言版本的。经常看到指针,本人菜鸟一枚,突然发现平时在使用Java的时候,没有考虑过多指针的问题,遂学习了下,这才发现尽管在Java中没有显示的使用指针并且也不允许程序员使用指针,而实际上对象的访问就是使用指针来实现的,称之为引用。

       一、引用类型和基本类型简介

       基本类型共有八种,它们分别都有相对应的包装类。基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。

    引用类型(reference type)指向一个对象,不是原始值,指向对象的变量是引用变量。

    java里面除去基本数据类型的其它类型都是引用数据类型,自己定义的class类都是引用类型,可以像基本类型一样使用。
    示例如下:
    public class MyDate {
        private int day = 8;
        private int month = 8;
        private int year = 2008;
        private MyDate(int day, int month, int year){...}
        public void print(){...}
    }
    public class TestMyDate {
        public static void main(String args[]) {
            //这个today变量就是一个引用类型的变量
            MyDate today = new MyDate(23, 7, 2008);
        }
    }

    二、基本类型和引用类型的区别

    其实区别很多,具体参照:

    http://blog.sina.com.cn/s/blog_4586764e0100dr4r.html

       http://blog.csdn.net/lu7kang/article/details/5047725

       有两点应当注意:

    1、Java 中的所有对象都要通过对象引用访问。对象引用是指向对象存储所在堆中的某个区域的指针。当声明一个原始类型时,就为类型本身声明了存储。

    2、引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

   三、Java与C语言对指针的处理

     Java是有指针的!事实上,Java中每个对象(除基本数据类型以外)的标识符都属于指针的一种。但它们的使用受到了严格的限制和防范。在C语言中,会有++p这样的操作,但是在Java中是不允许的,Java只能操作引用,不能直接操作指针。因为C语言能直接对内存进行操作,所以在开发底层时,C的效率和性能要强于Java。但是直接操作指针会带来安全隐患。Java虽然牺牲了点性能,但是增加了安全性。同时,Java避免了繁琐易错的指针操作,也简化了编程难度,增加了代码的可读性。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值