第三章

1。下列System.out.printf输出的结果是什么? int a=100, x,y; x=++a; y=a-- System.out.printf("%d, %d,%d",x,y,a);

答: 101,101,100

2.下列语句那些有错误? int x=0; x=5.0/2; float y=12.5F; y=5.0/2;

答:x=5.0/2;错

解析:

小数属于浮点型(默认为double)。

补充:

在运算中(只有7种基本数据类型,无boolean型) 自动类型提升 byte–>short–>int–>long–>float–>double

3.下 列语句那些有错? byte x=32; char c='a'; int n=c-x; c= c-x; 答: c=c-x; 错应为int 类型。

解析:

精度大和精度小的运算,结果自动提升为较大容量的数据类型(但是除byte,short,int外)。对于byte ,short ,int之间相互运算时,结果都用int型。(包括byte和byte,short和short,的计算,即自身与自身)

4.下列语句正确的是 A.表达式“12+56> 34"的值是true

B.表达式“12+56||34"是非法表达式

C.表达式“x+y= 12”是非法表达式

D.表达式“12+56>34"的值是13

答:(A,C)

5.对于整数m,m<<1的结果一定是 2*m吗?

答:不一定,高位有损失时,不是2m

解析:

<<:左位移,相当于num*2;   >>:右位移,相当于num/2;   >>>:无符号右位移,忽略符号位,空位都以0补齐;

补充:

  如:value << num

  num 指定要移位值value 移动的位数。

  左移的规则只记住一点:丢弃最高位,0补最低位

  如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了332=1位。

  运算规则:

  按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

  当左移的运算数是int 类型时,每移动1位它的第31位就要被移出并且丢弃;

  当左移的运算数是long 类型时,每移动1位它的第63位就要被移出并且丢弃。

  当左移的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型。

  数学意义:

  在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方

6.对于两个int 整形变量 int m=120, n=240; 那么m^m=?和m^n^n=? 的结果分别是多少

答: m^m=0; m^n^n= 120;

解析:

^异或运算符号,相同为0,不同为1。需要对数字转换成二进制数后进行按位运算。

异或有特点的: 1.一个数和自己异或,那结果一定是0,因为每个位都一样。

2.如果x^y=z 那么x^z=y ,y^z=x

7."下列System.out. printf语句输出的结果是什么? int x=10, y=10, z=10; If(x>9){ y= 100; z= 200; }

else{ y=-100; }

z=-200; System.out. printf("%d,%d,%d",x,y,z);

输出: 10, 100, -200

8.下列for语句输出结果是什么?

 for(int i=1; i<=4;i++){ switch(i) {case 1: System.out.printf("%c",'a');case 2: System.ou.printf("%c",'b'); .break;case 3: System.out.printf("%c",'c'); case 4: System.out.print("%C”,'d');break;}}

输出:a,b,b,c,d,d

9.下列System.out. printf语句输出的结果是什么?

 char[] a={'a','b','c','d','e'};for(int i=0; i<=a.length/2; i++){char c=a[i];a[i]=a[a.length-(i+1)];a[a.length-(i+1)]=c;}System.out. printf("%c%c%c%c%c "a[0],a[1],a[2],a[3],a[4]); 

输出:e,d,c,b,a .

10.下列System.out.printf语句输出的结果是什么?

 int a[]={3,4,1,2,-6};for(int i=0;i<a.length;i++){ for(int j=i+1;j<a.length;j++){if(a[j]<a[i]){int n=a[i];a[j]=a[i];a[i]=n;} }}System. out.printr(%d,%d,%d,%d,%d",a[0],a[1],a[2],a[3],a[4]); 

输出: -6,1,2,3,4

解析:

冒泡排序

11.下列程序的输出结果是什么?

 public class E{public static void main(String args[]){int x = 1, y = 6;while (y-- > 0) {x--;}System.out.print("x="+x+"y="+y);}}

输出:x=-5y=-1

第四章

1.在声明类时,类名应遵循哪些习惯? 答:每个单词首字母大写

2.类体内容有哪两种重要成员? 答:成员变量(域,刻画属性),和成员方法。

3.实例方法可以操作类变量吗?类方法可以操作实例变量吗? 答:实例方法可以操作类变量,而类方法不可以操作实例变量。

解析:

在类创建对象之前,实例变量还没有分配内存。类方法也不能调用其他的实例方法,这是因为,在类创建对象之前,实例方法也没有入口地址。

4.当类的字节码加载到内存时,类变量就定分配了内存空间吗? 答:实例成员变量不分配内存,而类变量一定分配内存。

5.类的实例变量在什么时候分配内存? 答:声明之后,在用new关键字创建实例的时候才分配内存。

6.一个类的类变量被该类创建的所有对象共享吗? 答:共享

7.不同对象的实例变量分配的内存地址一定不同吗? 答:当出现引用赋值语句时两个实例变量的内存地址相同。

8.什么叫方法的重载?构造方法可以重载吗? 答:方法的重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数不同,或者参数的个数不同,或者参数的类型不同。构造方法可以重载。

9.为什么类方法不能调用实例方法? 答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也可以通过类名调用类方法。而这时在类对象创建之前,实例方法还没有入口地址。还不知道方法从何处开始执行,当然不能调用。

10.为什么类方法中不能操作实例成员变量? 答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也可以通过类名调用类方法。而这时在类创建之前,实例成员变量还没有分配内存空间。没内存空间无法操作。

11.实例方法可以用类名直接调用吗? 答:不能,因为实例方法,用new创佳对象后才分配入口地址,而类名一经声明就分配类名地址。而这时对象创建之前实例方法还没有入口地址。实例方法表现实例的功能,或改变实例变量。用类调用改变那个实例的实例变量,表现那个实例的功能,不明确。

12.关键字this 可以出现在构造方法中吗?可以出现在实例方法中吗?可以出现在类方法中吗? 答:可以出现在构造方法中,代表该类构造方法所创造出的对象。可以出现在实例方法中,代表使用该方法的当前对象。this不能出现在类方法中,因为类方法是通过类名调用的。

13.源文件声明编写的类一定在同一个包中吗? 答:不一定,当不在同一包中时,可用import 语句将其所在的包引入该源文件中。

14.“import java.awt.*;"与“import java.awt.Button”有什么不同? 答:前者引入了awt 包中的所有类,后者只引入了Button 一个类。

15.程序中使用了“import java.util.*;" 程序运行时,是要加载java.util 包中的全部类到内存吗? 答:不,只加载本程序用到的类到内存中,因为java程序是动态加载字节码类文件。

16.有哪几种访问权限修饰符?说出一种的作用。 答:访问权限修饰符有public,private,protected. private作用是只允许本类的对象访问。

17.怎样反编译一个类? 答:使用SDK提供的反编译器javap.exe 文件可以实现将字节码文件反编译为源码文件。可查看源码中public 方法和public 成员变量的名字。如加入参数private则可列出其全部的成员方法和成员变量。 如:Javap - private java.awt. Button则可以列出Button 类中全部的方法和成员变量。

编译 = 源代码.java 变成字节码 .class 反编译 = 字节码 .class 变成 源代码.java

18.请写出下列代码中类A的输出结果

 class B{int n;static int sum=0;void setN(int n){this.n=n;}int getSum(){for (int i = 1; i <=n; i++) {sum=sum+i;}return sum;}}public class A{public static void main(String[] args) {B b1=new B(),b2=new B();b1.setN(3);b2.setN(5);int s1=b1.getSum();int s2=b2.getSum();System.out.println(s1+s2);}}​

输出:27

JAVA大学实用教程(第四版)课后习题三、四章答案(自整理)相关推荐

  1. java大学教程_JAVA大学实用教程 第4版 PDF 下载

    相关截图: 资料简介: 本书共13章,重点讲解类与对象.类的继承.接口.泛型.字符串与模式匹配.实用类及数据结构.多线程.输入/输出流.图形用户界面设计.网络编程.数据库操作.Java Applet程 ...

  2. 《C++大学教程》 第九版 课后习题 8.12

    <C++大学教程> 第九版 课后习题 8.12 自己写的,有点头文件不需要,之前写复杂了,懒得删了 关注我,随时更新答案,如果来不及了,可以私信我,我发给你们相应的答案(如果我有标准答案的 ...

  3. 化工原理第四版课后习题答案

    化工原理第四版课后习题答案

  4. 数学物理方法 高教 第四版 课后习题答案

    数学物理方法 高等教育出版社 第四版 课后习题答案 课后习题答案下载地址 链接:https://pan.baidu.com/s/1KqePoJ8AXb4vAxXadOCfCg 提取码:73um 如果链 ...

  5. 算法第四版课后习题答案 西安电子科技大学 计算机学院 算法课

    来源于西电计算机15级学长学姐,算法第四版课后习题答案 西安电子科技大学 计算机学院   算法课. 再推荐一个好的看答案的地方,每一题都有,只是还没有更新完成. 地址:https://alg4.ike ...

  6. java程序设计实用教程第4版_Java程序设计实用教程(第4版)

    第1章 Java概述 1.1 了解Java 1.1.1 Java的诞生和发展 1.1.2 Java的特点 1.1.3 Java核心技术 1.1.4 Application应用 1.2 JDK 1.2. ...

  7. 现代操作系统英文第四版课后习题答案——第二章

    @T现代操作系统第四版参考答案 现代操作系统英文第四版第二章参考答案--进程 先更新第二章的答案,习惯中文的童鞋请左转百度翻译 Solution for chapter 2 The transitio ...

  8. JAVA大学实用教程(第四版)课后习题一、二章答案及解析(自整理)

    第一章 2."java编译器将源文件编译生成的字节码文件是机器码"这句话正确吗? 答:不正确 解析: java中,字节码是CPU构架(JVM)的具有可移植性的机器语言.机器码(ma ...

  9. 计算机组成原理实用教程第3版课后答案,计算机组成原理实用教程课后习题答案.docx...

    习题1参考答案 一.选择题 1 ?微型计算机的分类通常是以微处理器的D 来划分. 芯片名B.寄存器数目 C.字长D.规格 2?将有关数据加以分类.统计.分析,以取得有价值的信息,我们称为A . 数据处 ...

最新文章

  1. 在Windows 7下安装Oracle 11g的解决方法
  2. golang 的AES加解密 (CBC/ECB/CFB 模式)
  3. WCF系列之.net(3.0/3.5)Rest使用示例
  4. NickLee.FortuneBase数据库sql server版本系统配置说明
  5. Linux路由界面设置,nuxt中如何配置页面路由
  6. 进程间通信(匿名管道)
  7. 三网融合情况下,实时语音通信技术解决之道
  8. ecilpse+python中文输入输出
  9. php fpm高并发,php-fpm 高并发、502解决方案
  10. python 组合求和_39. 组合总和(Python)
  11. .NET跨平台之旅:基于.NET Core改写EnyimMemcached,实现Linux上访问memcached缓存
  12. doubango安卓端的帧率太低,解决办法
  13. 索鸟快传2.0免费局域网文件共享软件,用C++开发的基于HTTP的文件共享软件,文件下载上传、在线预览
  14. vue 项目使用通过经纬度显示地图
  15. php 银行卡识别,PHP实现根据银行卡号判断银行_php技巧
  16. poj3207 2-SAT
  17. 马原复习思维导图-前三章
  18. python中调用julia_Julia引入PyCall报错解决方法
  19. Python实现简易音频播放器
  20. 自建ss报错500 Internal Privoxy Error

热门文章

  1. eplan可运行于linux系统吗,Eplanp82.6安装对电脑操作系统的要求
  2. Java黑皮书课后题第4章:*4.24(对三个城市排序)编写一个程序,提示用户输入三个城市名称,然后以升序进行显示
  3. 高通骁龙845的android手机有哪些,2018年骁龙845手机有哪些?骁龙845手机怎么样?...
  4. 进程守护方案http://www.jianshu.com/p/89d06594dc5d
  5. 傅里叶变换及其应用笔记(part 2)
  6. idea如何创建XML文件
  7. python 爬虫 豆瓣电影一周口碑榜
  8. easyx库的介绍与使用
  9. AI人脸检测智能视频融合平台EasyCVR新增告警预案功能
  10. 使用QT实现一个图像处理软件1 —— 图片的加载和显示