本帖最后由 rainforestking 于 2013-12-27 11:33 编辑
我靠,这个好流弊!
java中不存在指针其实并不是这样的,没指针程序还怎么运行啊!只不过指针对用户屏蔽了(你不能显式地使用指针,因为一般人操作不好指针,java中什么复杂的东西都被封转起来),其实经常用到的引用底层不是指针是啥?只不过java对指针的处理就是默认所有指向对象的变量都是指针(引用),于是就根本不需要用取地址去内容运算符神马的麻烦操作(这一点和C系语言不一样),可以把引用想象成一个隐式指针,在传参数的过程中,程序运行时自动把传入的引用翻译为地址,从这个地址中找到操作对象,其实仔细想想看,尼玛这java是用c系写的,不用指针实现你用什么实现,底层操作时程序都是要有地址的,不然运行不起来(详见《计算机体系结构——a programmer's perspective》)。只不过java夸下了没有指针的海口,于是这种问题java之父避不开,就说不清楚,尼玛java就是他设计的,底层实现他一清二楚,他不知道谁知道啊!只不过这并不影响java的使用。 |