首先,在Java里是不直接支持指针的,但实际上确实是存在指针的,因为不论是C++还是Java,实现引用(reference,也即你说的参考类型),内部方法都是采用常量指针的方法,也就是说引用实际上是一个不能改变指向目的的指针。指针(C/C++)与引用的不同之处在于,指针可以不需要初始化,也就是说它可以不指向任何一个有意义的内存区域,换句话说,实际上你可以将它指向内存里的任何地方而不需要在对应的地方有什么实际存在的对象(变量、函数、结构等等),这样说来你也有可能访问一个不属于你拥有的地址,从而使系统崩溃。引用也是一种指针,但你使用它时,必须初始化(或赋值),在初始化的过程中,你必须将一个实际存在的对象的地址引用赋给它,也就是说你没可能将一个不属于你的内存地址中的地址引用赋给它,从而避免了指针太灵活带来的危险。