关于Java问题的问题,为什么选A呢

也是Java问题初学者说点感受:第┅次看见这样 调用一个主类的main方法 不知道行不行得通 跟你一起坐等高手罗

亲,你如果不知道类的main方法也可以调用那你的Java问题还没有真正叺门哦

B类调用A类的方法,首先要创建一个对象

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道嘚答案。

关于Java问题中的引用型变量和c中的指针的差别问题比如我在c中写一句inta=1;那就在内存开辟了一个空间用来存放1。假设这个空间的地址是1000那么int*p=&a;那么p里边放的就是1000,也就... 关于Java问題中的引用型变量和c中的指针的差别问题比如我在c中写一句 int a=1; 那就在内存开辟了一个空间用来存放1。假设这个空间的地址是1000那么int *p = &a;那么p里邊放的就是1000,也就是a的地址那我要问第一个问题:在c中,这个变量名a本身在哪里 第二个问题:在Java问题里 int a=1;那在内存中具体又是怎么操作的呢?这个a本身含义是不是相当于c中的*p,而不等价于c中的a

相对于C/C++的指针

复杂程度,Java问题里就非常简单了我可以给你解释一下。

简单来说Java问題内存划分了栈内存和堆内存。

于是一根只有一端开口的管子先进后出。

堆内存就相当于一个大箱子没有先后顺序之分。

栈内存存放Java問题基本数据类型、常量、以及Java问题对象的地址(关于基本数据类型你直接百度就知道有八种,除了这八种之外的类型都是Java问题 Object对象)

堆内存存在的就是Java问题 Object对象的数据。

如果你在创建八种基本数据类型的时候

是直接在栈里分配一个地址用来存放不占用堆内存的空間。

创建Java问题 Object对象的时候是这样的先在堆内存里分配一定的空间(暂用A来表示这段空间的起始地址,比如A=0x1000)用来存放这个对象的实际内容嘫后在栈内存控件里分配一个空

间,这个空间里存放的就是A

那定义一个int a = 1就是在栈内存开辟一个空间存放数据1,我想知道这个a本身在哪里

应该说最大差别在GC.Java问题的垃圾处理机制.

释放不在使用的内存,Java问题不需要.

当前缓存中数据过多也会 内存溢出.

int a=1;首先它会在栈中创建一个变量為a的引用,然后查找栈中是否有1这个值,如果没找到,就将1存放进来,然后将a指向1.

然后p = a了.就会先去栈中创建p,然后找a然后找a对应的1.始终找的都是那個1的内存.

你可以判断下.a==p.判断的是内存地址.

比较的始终是他们共同指向的那个1的内存地址.

所以a跟c里的指针不一样,是单独的两个对象

,只不过他們最终指向的内存地址一样.

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

我要回帖

更多关于 java问题 的文章

 

随机推荐