1.通过抽象类定义车类的模板,然后通过抽象的车类来派生拖拉机、卡车、小轿车。
疯狂java讲义第六章课后第1题答案
2.定义一个接口,并使用匿名内部类方式创建接口的实例。

疯狂java讲义第六章课后第2题答案

3.定义一个函数式接口,并使用Lambda表达式创建函数式接口的实例。
疯狂java讲义第六章课后第3题答案

4.定义一个类,该类用于封装一桌梭哈游戏,这个类应该包含桌上剩下的牌的信息,并包含5个玩家的状态信息:他们各自的位置、游戏状态(正在游戏或已放弃)、手上已有的牌等信息。如果有可能,这个类还应该实现发牌方法,这个方法需要控制从谁开始发牌,不要发牌给放弃的人,并修改桌上剩下的牌。

疯狂java讲义第六章课后第4题答案

补充习题
1、尝试把Integer类型自动拆箱成boolean,尝试把boolean自动装箱成Integer
会产生不兼容类型报错

因为用了new Integer(1)
学到了一个编译指令
-Xlint:deprecation

自动拆箱也会报不兼容类型的错误

2、操作书171页提供的方法。
在后面有操作

3、重写dog和person的equals方法,让他们相等。
疯狂java讲义第六章补充习题第3题答案

4、创建一个单例类,并调用它创建多个对象,进行 = =比较,查看输出结果。
疯狂java讲义第六章补充习题第4题答案

5、精确的使用final修饰类或实例变量。
疯狂java讲义第六章补充习题第5题答案

6、自己试着写一个抽象类,包含抽象方法的和不包含抽象方法的。再写一个包含抽象方法的普通类,并尝试创建他们的实例

抽象类不包含抽象方法:依然不能创建实例
包含抽象方法的普通类,连编译都过不了

7、尝试使用中介模式来组合类。这里说的中介模式,其实就是工厂模式,但是中介更形象,更容易理解
疯狂java讲义第六章补充习题第7题答案

8、尝试写一个类,包含一个非静态类,看看初始化的时候会不会和非静态类一起初始化。
非静态内部类,不能有静态声明
而经过试验静态内部类并不会跟随外部类第一次被创建而初始化,如果没有在构造器或者初始化块中显式声明的话

9、使用jar命令。
疯狂java讲义第六章补充习题第9题答案

10、尝试创建对象的,软弱虚引用,结合强制垃圾回收进行测试,并说出他们的区别
StrongReference:就是我们正常使用的引用,只要有这个引用在,不论内存空间是否足够,都不会被垃圾回收器回收;
SoftReference是除了强引用以外,引用最强的,只要有这个引用在,只要系统内存足够,这个对象就不会被垃圾回收器回收
WeakReference:当垃圾回收机制启动的时候,就会被回收,不管有没有这个弱引用。
PhantomReference:虚引用,这个我猜测大概是引用都不能调用对象,所以比弱引用更弱,等会儿试一下,看看是不是这样。是的,连get()方法都返回null,只是在被回收以后,rq的poll()方法会返回这个引用的引用变量,get()依旧返回null

使用PhantomReference必须在构造器传入一个ReferenceQueue()对象,

11、尝试直接调用finalize方法,
调用起来,其实就像是一个普通方法一样,没啥区别。
就算是之后强制垃圾回收,也没有任何问题。

12、尝试强制垃圾回收。并测试结果。
疯狂java讲义第六章补充习题第12题答案

13、创建包含抽象方法的枚举类
其实,在枚举值后的花括号,是类似匿名类的实现,设不设置成抽象方法都一样,只是设置了抽象方法就要求,匿名类一定要重写,不然不能用。
疯狂java讲义第六章补充习题第13题答案

14、创建实现接口的枚举类。并结合switch语句
和普通类实现接口是一样的的实现方式
疯狂java讲义第六章补充习题第14题答案

15、创建普通枚举类,并使用
就算把构造器设置成public都不能用new Gender()的方法来创建一个实例,构造器甚至不能用public修饰

疯狂java讲义第六章补充习题第15题答案

16、使用lambda表达式+arrays类
疯狂java讲义第六章补充习题第16题答案

17、说出lambda表达式和匿名内部类的联系和区别,
疯狂java讲义第六章补充习题第17题答案
18、使用lambda表达式的升级版,方法引用和构造器引用

疯狂java讲义第六章补充习题第18题答案

19、创建匿名内部类并使用。
疯狂java讲义第六章补充习题第19题答案

20、创建内部类并在外部类内部使用内部类还有在外部类以外的地方使用内部类。(包括静态和非静态)并尝试使用内部类访问外部类的变量,使用外部类访问内部类的变量
疯狂java讲义第六章补充习题第20题答案

21、创建非静态内部类和静态内部类。

疯狂java讲义第六章补充习题第21题答案

22、尝试命令模式,以及命令模式和抽象类的区别。p203
模仿书上的案例,同样对数组进行命令模式的处理

疯狂java讲义第六章补充习题第22题答案

23、使用接口,并且尝试接口继承接口,接口继承类,接口实现接口。
接口中的变量默认用public static修饰
接口不能继承类,
好像也不能实现接口,会报错

24、说出abstract不能和哪几个关键字使用,和为什么?
疯狂java讲义第六章补充习题第24题答案

25、尝试缓存实例的不可变类。
疯狂java讲义第六章补充习题第25题答案

26、说出可变类和不可变类的区别,以及为什么要有不可变类。
可变类中至少有一个实例变量是可以修改的,而不可变类的所有实例变量都是不可修改的,也就是用final修饰了。
不可变类不仅仅是不可变,通过重写equals和hashCode可以实现按照内容判断两个对象是否相等。
java提供的八个包装类和String类都是不可变类,至于原因是什么,我不懂
看了一篇文章,不可变类,是线程安全的。让并发编程变得更简单深入理解Java中的不可变对象
27、创建final类,并尝试继承它

28、创建final方法,并尝试重写它
疯狂java讲义第六章补充习题第28题答案

30、尝试创建宏变量。

import java.util.*;
import java.util.stream.*;
import javax.swing.*;public class Test
{public static void main(String[] args){String one = "疯狂Java讲义";final String two1 = "疯狂";final String two2 = "Java讲义";String three = two1 + two2;System.out.println(one == three);}
}

31、说出final修饰基本类型变量和引用类型变量的联系和区别。
联系:二者都不能重新赋值
区别:引用类型变量不能重新赋值,并不代表他的实例变量或者类变量不能重新赋值。

32、创建final局部变量。
(卧槽)我感觉倒着来有点奇怪的感觉。是啊,我练题也感觉很奇怪,。。。

class One
{public void info(){final String test = "我是大玩家";final String test2;//test2 = "你也是";}
}

final局部变量,可以不赋值,但是final修饰的类变量和实例变量不行

33、按照书上说的地方模仿着自己实现一个枚举类。
其实有几个要点,
(1)把构造器设置为private
(2)提前声明静态变量,也就是要成为枚举值的那些变量,需要用public static final 进行修饰
(3)提供一个get枚举类的方法,和getprivate变量的方法。

疯狂java讲义第六章补充习题第33题答案

34、创建局部内部类。

import java.util.*;
import java.util.stream.*;
import javax.swing.*;public class Test
{public static void main(String[] args){//局部内部类One one = new One(){public void info(){System.out.println("我是One的Info");}};one.info();}
}
class One
{public void info(){}
}

35、使用parsexxx方法和valueOf方法,并说出他们的区别。
Character、String没有parse,有valueOf()
Byte、Short、Integer、Long、Float、Double、Boolean都有
区别是。parseXXX()返回基本数据类型而valueOf()返回包装类

36、使用包装类的基本方法
和39题一样,

37、使用Character的各种工具方法
和39题重复
38、熟悉lambda表达式的几种简化写法。
(1)当只有一个参数的时候可以省略括号,但没有参数的时候必须有一个空括号
(2)当只有一条语句的时候,可以省略花括号,如果需要返回值,并且也只有一条语句的时候,省略花括号还可以省略return,把这唯一一条语句当成返回值
39、使用八个基本数据类型的一些方法和变量
详细使用java八个包装类的方法和打印类变量

42、使用八个基本类型的xxxSequence,我猜测,这个大概是数组的包装类,因为疯狂中没有提到。猜的很好,根本不是,下次不要再猜了,不会的就百度,不要说不会。八个基本类型只有CharSequence。

疯狂java讲义第六章补充习题第42题答案

43、使用String、StringBuilder和StringBuffer
测试一下StringBuffer的线程安全性

使用String、StringBuilder和StringBuffer

44、疑惑232,final和abstract不能同时使用,所以抽象枚举类可以创建子类,而非抽象枚举类,自动用final修饰,不能创建子类。从自己制作的枚举类可以看出,枚举类是不能new的,只能在类内部new
疯狂java讲义第六章补充习题第44题答案

45、为什么,数据库连接和网络IO会被说成物理资源,和堆内存中的对象有什么区别吗?
这个问题,先放着。

46、使用Charset类,
疯狂java讲义第六章补充习题第46题答案

47、说出强软弱虚引用的区别和作用。

强引用:可达状态,不可能被垃圾回收机制回收。作用,可以随时调用,不怕在堆区的对象被回收后,导致NullPointer错误。

软引用:内存空间足够的时候,和强引用相同。内存空间不足的时候,可能被垃圾回收机制回收。作用,通常用于对内存敏感的程序。但是什么是内存敏感的程序呢?

弱引用:垃圾回收机制运行的时候,就会被回收。它和失去引用的对象的区别是,它可以调用。

虚引用:完全类似于没有引用,也就是不能调用的弱引用。主要用于跟踪对象被垃圾回收的状态。虚引用不能单独使用,必须和引用队列联合使用。

因为书上的练习,肯定写过了,所以先放着。

疯狂java讲义第六章课后习题答案相关推荐

  1. 疯狂java讲义第五章课后习题答案

    1.编写一个学生类,提供name.age.gender.phone.address.cmail成员变量,且为每个成员变量提供 seter.geter方法.为学生类提供默认的构造器和带所有成员变量的构造 ...

  2. 疯狂java讲义第六章课后第4题答案

    4.定义一个类,该类用于封装一桌梭哈游戏,这个类应该包含桌上剩下的牌的信息,并包含5个玩家的状态信息:他们各自的位置.游戏状态(正在游戏或已放弃).手上已有的牌等信息.如果有可能,这个类还应该实现发牌 ...

  3. 《Python语言程序设计》王恺 机械工业出版社 第六章课后习题答案

    第六章 字符串 6.5 课后习题 (1)Python 中,创建字符串时,可以使用单引号.双引号和三引号 (2)Python 中,使用字符串的 split 方法可以按照指定的分隔符对字符串进行切割,返回 ...

  4. 计算机网络原理(谢希仁第八版)第六章课后习题答案

    第六章 1.互联网的域名结构是怎样的?它与目前的电话网的号码结构有何异同之处? 答:(1)域名的结构由标号序列组成,各标号之间用点隔开:- 三级域名. 二级域名. 顶级域名,各标号分别代表不同级别的域 ...

  5. 线性代数第五版吉尔伯特课后答_线性代数同济第五版第六章课后习题答案!

    搜集 | 整理 |  测试 | @小愉 免责声明:以下资源或软件均来自互联网,仅供学习和交流使用,如有侵权请联系删除,请勿用于商业和非法途径等,如有法律纠纷与本人无关! 本文未经允许,不得转载! 适用 ...

  6. 疯狂java讲义第七章补充习题第12题答案

    12.使用Calendar的各种方法 变量 ALL_STYLES AM AM_PM APRIL areFieldsSet AUGUST DECEMBER DST_OFFSET ERA FEBRUARY ...

  7. 【最详细】数据结构(C语言版 第2版)第六章课后习题答案 严蔚敏 等 编著

    所有章节答案合集-->传送门 1.选择题 ( 1)在一个图中,所有顶点的度数之和等于图的边数的()倍. A. 1/2 B. 1 C. 2 D. 4 答案: C ( 2)在一个有向图中,所有顶点的 ...

  8. 数据库系统概论(第五版) 王珊 第六章课后习题答案

    1 .理解并给出下列术语的定义: 函数依赖.部分函数依赖.完全函数依赖.传递依赖.候选码.主码.外码.全码(All 一key ).1 NF .ZNF .3NF .BcNF .多值依赖.4NF . 定义 ...

  9. 数据库概论(第五版)第六章课后习题答案(现更)

    2. 语义:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生.一个系的学生住在同一宿舍区.每个学生可参加若干学会,每个学会有若干学生.学生参加某学会有一个入会年份. 模式1:学生(U, F) ...

  10. 疯狂java讲义第四章习题答案

    1.使用循环输出九九乘法表. 疯狂java讲义第四章课后习题第1题答案 2.根据给定的层数,使用循环输出等腰三角形. 疯狂java讲义第四章课后习题第2题答案 3.给定半径输出圆形. 需要注意的是,计 ...

最新文章

  1. 数字图像处理——第十章 图像分割
  2. 《Cacti实战》——第1章 认识Cacti
  3. EOS/普元:中国IT业的悲哀
  4. [导入]做了一个页面静态化小软件,和大家分享,up有分
  5. Win32多线程编程(5) — 线程局部存储
  6. ESP8266在线视频网址
  7. 莫比乌斯函数与莫比乌斯反演
  8. oracle11数据库导入,Oracle11g数据库之数据导入导出与事物
  9. cmake mysql 编译参数_Mysql CMAKE编译参数详解
  10. Flash Builder 4.7安装破解教程详解(图文)
  11. 天邑ty1208z海思3798刷版本_[乐天固件]魔百和M301H-当贝版卡刷包-海思3798M
  12. win7科学计算机不支持,win7“不支持的硬件,你的电脑使用的处理器专为最新版win...
  13. 第一次破解unity3d安卓游戏笔记+IL指令集合
  14. Lyra:一种用于语音压缩的新型极低比特率编解码器
  15. php 浏览器 保存网页图片,PHP实现浏览器文件下载图片或者php文件
  16. TreeView 右键菜单
  17. 用动画做出一个正方体并且3d旋转,详解
  18. OPPOR8107_官方线刷包_救砖包_解账户锁
  19. 带联网功能的RFID宿舍门禁(六)-两年后的再次总结
  20. vue路由守卫中next方法的理解

热门文章

  1. Unity3D工程源码目录
  2. linux控制风扇转速的命令,Cputroller:一款Linux下查看调节CPU的策略、风扇转速的工具...
  3. 怎么把微信机器人挂在服务器上,微信群机器人怎么弄的群里面的机器人怎么弄的???...
  4. ask的matlab代码,二进制ASK调制matlab仿真代码
  5. 数据权限设计研究-行数据权限
  6. android:digits 代码设置,EditText中android:digits失效问题
  7. Java三大框架SSH简介
  8. C语言 职工信息管理系统
  9. java学习心得与体会(自我鼓励)
  10. 公司账号密码、通信录泄露屡见不鲜,肆意流淌的敏感信息:WEB安全基础入门—信息泄露漏洞