Java不直接使用指针,如何理解java中没有指针

1 , 如何理解java中没有指针没有哦,c指针能实现的,java全能实现(封装成对象后,想咋整旧咋整) 。只是开发底层时,效率和性能赶不上c 。本来就是啊,有地址的概念 , 例如指向数组的,都不叫指针了,在java里面都叫引用 , 引用就是指针的意思
2,Java 在它的语言中为什么不使用指针java的指针交给了虚拟机处理,用户不用去管这些,毕竟指针这东西不是人人都能用的好的,可能在简单情况下你会用,觉得很简单,但是到大型的软件中就很复杂了面向对象.JAVA故意把指针删除了,指针太容易出错了用指针容易出错 。JAVa没有指针【Java不直接使用指针,如何理解java中没有指针】
3,为什么Java中没有指针JAVA里面是没有指针的,这样更安全,因为指针初始化之类的操作 很容易产生内存溢出 , 而JAVA放弃指针这方面安全性有很大提高,不过效率稍有降低的,毕竟指针是无可取代的 。引用和指针是有差别的 , 引用是通过别名进行地址的调用,而指针可以直接对该内存空间执行操作,不过很多时候两者可以混用java中是没有显示的指针,其实java是存在类似指针操作的 给你个地址你看看http://www.webisok.com java区
4,java为什么还宣称没有指针并把这个当作语言的优点JAVA因为是属于面向对象的语言 , 注重安全性,所以是没有指针这个概念的,这和C语言是不一样的,而且JAVA里也是不能主动通过代码来及时进行内存回收的 , 这些东西就是导致JAVA运行的速度比不上C之类那些更底层的语言会抛空指针异常的是:1 3 4这里会抛异常的原因是执行了s.length(),s为null,不能调用它的方法 。关于与或操作符 , 有一下特点:&& 短语与,必须前后两个操作数都是true才返回true,否则返回false&不断路与 , 作用与&&相同,但是不会短路|| 短路或 , 两个操作数只要一个为true,就返回true,否则返回false 。|不短路或,作用与||相同,但是不会短路 。第一个判断 是非短路与 因为s!=null 为false,但整个条件还有可能为真 所以会执行判断 s.length()>0 以期获得一个true  , 所以抛.第二个判断 是非短路与 因为s!=null 为false整个条件不可能再为真 所以不会执行判断 s.length()>0不抛 。第三个判断 是非短路或,总会执行所以判断 。毫无疑问会抛 。第四个判断 是短语或,前面为true会短路 , 但是前面为假 。条件还有有可能成立,会接着判断,所以也抛!~又做了下修改~! 应该明白了吧5,java为什么不用指针它没有显式的使用指针,其实Java语言内部的实现机制来说是肯定有指针的(有点废话了 。。。)用不用一样东西是看有没有必要去用 。Java是一个纯面向对象的语言,基本上来说,程序员不需要关心内存的分配与释放的操作(jre、虚拟机帮忙做了),既然不关心内存那么没必要引入指针这么种相对复杂而容易重大错误的一种形式 。其实Java里边充斥着引用的说法,从某种角度上说,引用就是指针的简化版 。。。免去了指针错误指向内存地址而造成内存溢出 。也清除了程序中的不稳定因素Java运行于虚拟机,实际硬件/系统未知,而且大量的应用于网络程序,所以取消指针,为了获得最大的稳定性; 如果你编过大型程序 , 那么肯定会遇到由于滥用指针而导致程序崩溃 。主要是为了避免程序崩溃和非法访问数据防止程序崩溃:在C++中,假设有一个大小为10的数组a , 那么最大元素就是a[9] , 但是如果程序中写到a[10],逻辑上是错误的,实际上程序却可以运行 。这是因为在C++中实际上只是取数组a的首地址(也就是a[0]元素所在的存储单元的地址)再加上偏移量(a[10]对应的偏移量就是10个元素占用空间大?。扛鲈卣加每占浯笮『褪堇嘈汀⒌撞阌布泄? , 得到所谓的a[10]的一个地址再取这个地址单元中的内容 。如果这个单元没有被初始化,那么就是一个随机值 , 很可能造成程序崩溃的 。安全性:因为通过指针实际可以访问到程序所占用的存储空间之外的内存区域 , 这样安全性就很有问题了1: java有指针,在java中称为 引用 。所谓的引用就是内存地址的值 。拿到该引用就相当 于得到了该内存处的对象 。2: java中可以使用指针(我们称之为引用),但不能修改引用 。如c++中可以 进行pointer++; 在java中是错误的 。(integer,float等包装类除外,因为java有自动封箱、解箱特性) 。这就好比:在java中可以坐飞机到指定的目的地,但是你不能开飞机(安全) 。但是在c++中可以自己开飞机(操作飞机)--具有危险性 。

    推荐阅读