空间指向是什么意思(什么叫空间指向)
大家好!今天让创意岭的小编来大家介绍下关于空间指向是什么意思的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
创意岭作为行业内优秀的企业,服务客户遍布全球各地,相关业务请拨打电话:175-8598-2043,或添加微信:1454722008
本文目录:
一、懂java里面内存分配的大哥来一下,请问JAVA里的“指向”到底是什么意思?
是滴。这样回答足够了但太简单,举个例子吧:
比如在“方法”中(注意是方法中)有下列语句:
A a = new a();
这实际上包含很多过程,可以按照打字的顺序理解。(为了好理解,下面很多形象的比喻,不一定严谨,但不要和我斤斤计较细节,着重理解过程和原理)
1、Java虚拟机首先看到A(这样说形象些),如果没见过,则找类并加载到方法区,这时候A的静态变量就有空间了,这个你不懂就不懂。
2、然后看到A a,这显然是定义变量,于是虚拟机就在堆里面开辟一个叫a的空间,多大?4字节,也就是一个指针空间。(当然这里的A是非基本类型,如果是基本类型那空间多大你知道的,而且没有下面的事了)
3、继续看,看到new A,这是干嘛?新建对象呗。于是虚拟机就在堆里面开辟一个大小为A的空间,具体多大?A有多少个非静态成员变量,就开辟多大(当然还有点儿附加的东东,主要是两个虚拟机用的指针)。看到没?对象空间里面是什么?就成员变量,而且非静态的,没有什么?没有静态的、局部的,也没有方法代码(方法在刚才提到的方法区里)
4、继续看,看到A(),这是干嘛?执行构造方法呗。
5、继续看,干嘛?=好呗,赋值,把堆中开辟的对象地址付给栈中的a
没了!
仔细读读,这里面有很多东西。顺便给dada童鞋布置几个课后作业(注意,凭自己的想象来回答,不要限于书本)
1、为什么main函数前面必须加static?仅仅是语法规则么?
2、为什么静态方法不能访问非静态变量?
3、为什么静态成员是全局共享的?
4、把a作为参数传递的时候传的是什么?
就这些吧。
今晚手痒,看到guangdie的回答我想起了C++。再啰唆一句,Java定义对象和C++有很大差别,这直接导致定义完的对象用法不尽相同。比如String s1,s2,s1=s2.这在Java和C++中效果是完全不一样的。那不一样?为什么会不一样呢??课后作业,自己研究。
二、地球的空间指向若换一个角度则二分二至日会发生怎样的变化
答:1.若空间指向变大,则南北纬回归线将分别向南,北移动。南北回归线纬度差变大。
2.若空间指向变小,则南北纬回归线将分别向北,南移动。南北回归线纬度差变小。
三、地球公转示意图两种画法地轴空间指向为什么不同
因为存在“黄赤交角”(地球公转的黄道面与地球自转形成的赤道面之间的夹角,度数为23°26′)。、就是说、地轴是倾斜的。
当你分别从南北极看地球时、地轴所偏向的方向也是不同的、(你可以取一根筷子,斜插在一张纸上,从上面和下面看筷子所指向的方向是不同的。)、这样的话、在南北两极时地轴的空间指向便不同。
而所说的地球公转示意图,一种以南极为正面朝自己,另一种以北极、所以,地球公转示意图两种画法地轴空间指向、不同、
哈哈~好了、
四、this在这个命名空间的指向,为什么会改变?
第一个this只是被方法调用,这时它指向create的上级对象,也就是editTable。
第二个this是被构造函数调用了,这时this的作用域会改变,它这里指向的是(new ObjEditTable)这个完整的新生对象,不再是原来的editTable。参考:this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象。1、纯粹函数调用。function test() { this.x = 1; alert(x);}test();其实这里的this就是全局变量。看下面的例子就能很好的理解其实this就是全局对象Global。var x = 1;function test() { alert(this.x);}test();//1var x = 1;function test() { this.x = 0;}test();alert(x);//02、作为方法调用,那么this就是指这个上级对象。function test() { alert(this.x);}var o = {};o.x = 1;o.m = test;o.m(); //13、作为构造函数调用。所谓构造函数,就是生成一个新的对象。这时,这个this就是指这个对象。function test() { this.x = 1;}var o = new test();alert(o.x);//14、apply调用this指向的是apply中的第一个参数。var x = 0;function test() { alert(this.x);}var o = {};o.x = 1;o.m = test;o.m.apply(); //0o.m.apply(o);//1当apply没有参数时,表示为全局对象。所以值为0。以上就是关于空间指向是什么意思相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: