文档章节

引用和内存考题

风格若干
 风格若干
发布于 2016/08/09 22:32
字数 373
阅读 10
收藏 1
public class Square {  
    long width;  
    public Square(long l) {   
        width = l;  
    }  
    public static void main(String arg[]) {   
        Square a, b, c;  
        a = new Square(42L);   
        b = new Square(42L);   
        c = b;   
        long s = 42L;  
    } 
}

 

解答:

这题考的是引用和内存。
//声明了3个Square类型的变量a, b, c
//在stack中分配3个内存,名字为a, b, c
Square a, b, c; 
//在heap中分配了一块新内存,里边包含自己的成员变量width值为48L,然后stack中的a指向这块内存
a = new Square(42L);
//在heap中分配了一块新内存,其中包含自己的成员变量width值为48L,然后stack中的b指向这块内存
b = new Square(42L);   
//stack中的c也指向b所指向的内存
c = b;
//在stack中分配了一块内存,值为42
long s = 42L; 

来看4个选项:

A: a == b

由图可以看出a和b指向的不是同一个引用,故A错

B:s == a

一个Square类型不能与一个long型比较,编译就错误,故B错

c:b == c

由图可以看出b和c指向的是同一个引用,故C正确

d:a equal s

程序会把s封装成一个Long类型,由于Square没有重写Object的equals方法, 所以调用的是Object类的equals方法,源码如下

public boolean equals(Object obj) {
     return (this == obj);
}

其实就是判断两个引用是否相等,故D也错误。

 

© 著作权归作者所有

共有 人打赏支持
风格若干
粉丝 6
博文 87
码字总数 53598
作品 0
西安
程序员
软考网络工程师冲刺阶段重要考点学习

软考网络工程师冲刺直播课程 http://edu.51cto.com/course/8416.html 冲刺要点: 分专题重点讲解软考网工选择题第1-35题中必考题型及快速解题、提分方法 专题一:CPU、内存、总线等 专题二:...

软考徐朋
2017/10/19
0
0
软考网络工程师冲刺学习重要考点快速解题、提分方法

分专题重点讲解软考网工选择题第1-35题中必考题型及快速解题、提分方法 专题一:CPU、内存、总线等 专题二:数字编码、传输速率计算、调制解调及PCM计算等 专题三:奇偶校验、CRC、汉明码等 ...

软考徐朋
2017/04/11
0
0
char * a, char ** a, char * a[], char a[][], char

做了软考题,遇到点疑问,查了资料,mark下: 1:传值调用与传地址调用(传引用):http://blog.sina.com.cn/s/blog8d37a72b01013v61.html: 2:char a, char a, char a[], char a[][], char ...

yifon
2014/04/19
0
0
那些年,困扰我们的函数参数,还在吗!

那些年我们遇到的迷惑! 开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?) 考题一,程序代码如下: void Exchg1(int x, int y) { int tmp; tmp = x; ...

TheRoodToDeath
2017/03/29
0
0
来自非专业Python讲师的一份Django考题,面试无忧!

Django的面试题少之又少,然而对于Python程序员又不得不掌握。 可以考察笔试者对于框架的理解和使用熟练度,展开了问,也可以问到很深的地方。 Django的Model的继承有几种形式,分别是什么?...

Python新世界
07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux学习-0919

linux和windows互传文件 用户配置文件和密码配置文件 用户组管理 用户管理 一、linux和windows互传文件 linux和windows可以互相传输文件,但是需要使用xshell 并且安装lrzsz包: yum insta...

wxy丶
27分钟前
1
0
收集几个开源的微信小程序开发框架

1、 mpvue mpvue 是美团点评开源的一个使用 Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心,mpvue 修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序环境中,从而为小...

哥本哈根的小哥
33分钟前
1
0
Golang CSP并发模型

今天介绍一下 go语言的并发机制以及它所使用的CSP并发模型 CSP并发模型 CSP模型是上个世纪七十年代提出的,用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型。 CS...

xtof
34分钟前
1
0
用chrome在电脑上模拟微信内置浏览器

先了解安卓微信和Ios微信的UA(User agent:用户代理) 安卓微信UA: mozilla/5.0 (linux; u; android 4.1.2; zh-cn; mi-one plus build/jzo54k) applewebkit/534.30 (khtml, like gecko) ve......

可达鸭眉头一皱
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部