教材学习内容总结

第八章

  • String
  1. 分清常量池和变量池。

  2. String类的常用方法

    public int length()
    public boolean eauals(String s)
    public boolean startsWith(String s)
    public boolean endsWith(String s)
    public int compareTo(String s)
    public boolean contains(String s)
    public int indexOf(String s)
    public int lastIndexOf(String s)
    public String substrings(int startpoint)
    public String trim()
  • StringTokenizer
  • Scanner
  • StringBuffer
  • Date
  • Calender
  • 日期的格式化(重点是format方法)
  • Math
  • BigInteger
  • Random
  • 数字格式化
  • Class
  • Console
  • Pattern
  • Matcher

第十五章

  • 泛型
  • 链表(重点是++排序方法与查找方法++)
  • 堆栈
  • 散列映射
  • 树集
  • 树映射
  • 自动装箱与拆箱

教材学习中的问题和解决过程

Q1:在看到如图所示情况时,我出现了疑问,为什么前面的hellotestOne的引用相等,而后面hellotestTwo的引用值不相等呢?

A1:在回顾之前内容时,我明白了:

在之前String testOne = "你"+"好"中是两个常量的运算,其结果仍然在常量池中,而后面String testTwo = you+hi是变量之间的运算,结果在动态区中,testTwo被重新赋予一个引用。

Q2:在看到课本对代码1的解析时,有一个名词++常量优化技术++,不知道是什么意思,为此我上百度查了一下:

A2:常量优化是编译时的一项优化技术;顾名思义,将代码中的常量计算在编译时完成,从而节约运行时的计算量;

一般涉及一下几方面:

  1. 常量替换: 将代码中声明的const类型变量引用到的地方直接替换为常量值;

  2. 数学恒等式的模式匹配替换,主要是数字和Bool运算:如对任意整型数X,X-X是0,X-0是X,(X*2)-X是X等; 在编译时将这些计算出,并替换引用的地方;

  3. 常量折叠:顾名思义是对expression中的常量计算进行折叠,去掉冗余的运算;比如bool运算true||(a||b&&c) 这个运算直接就折叠为true;

4.通过认识这个编译时优化技术。我们可以更好的利用常量,写出更漂亮更快的代码了。

-- [常量优化]

Q3:在学习到如图所示时,不太了解Arrays

A3: 在java.util中,Arrays可以调用各种对数组的操作。

代码调试中的问题和解决过程

Q1:在编译代码时,出现了如图所示情况。

A1:自己一开始以为是找不到java.util包,于是上网查了一下,可能是变量classpath出现了问题,结果发现自己设置的没有问题,后来才发现是自己误将util敲成until

自己将这个错误写到博客为了提醒自己,如果出现找不到java.util包的情况,要从最基本的classpath变量的设置解决。

Q2:在编译代码时,出现了如图所示情况。

A2:一开始,自己找不出问题出现在哪里,到了后来,自己发现,是误将a[j].compareTo(a[i])<0敲成了a[j].compareTo(a[i]>0)

所以,一定要了解,比较的是compareTo方法的返回值。

代码托管

上周考试错题总结

Q1:下列关于Override的说法,正确的是

A.子类所声明的成员变量的名字和从父类继承来的成员变量名字相同但类型不同时,子类会隐藏所继承的成员变量。

B.除了继承的方法之外,子类新定义的方法可以操作子类继承的成员变量。

C.子类重写的方法,方法名字、参数个数、参数类型和父类的方法完全相同。

D.重写方法可以操作被子类隐藏的成员变量和方法。

答案:ABC

解析:子类隐藏的变量是指子类所生命的成员变量的名字和从父类继承的成员变量的名字相同。而++重写的方法无法操作被子类隐藏的成员变量和方法++。

本题漏选A,经过查课本,发现子类隐藏的所继承的成员变量的确是所声明的成员变量的名字和从父类继承来的成员变量的名字相同,++声明的类型可以不同++。

Q2:某方法在父类的访问权限是public,则子类重写时级别可以是protected。

A.true

B.false

答案:B

解析:该题选错,子类重写父类的方法时,不允许降低方法的访问权限,但可以提高访问权限。

Q3:下列代码中标注的(A,B,C,D)中,哪一个是错误的?

abstract class Takecare {
protected void speakHello() {} //A
public abstract static void cry(); //B
static int f()
{ return 0 ;} //C
abstract float g(); //D
}

A.A

B.B

C.C

D.D

答案:B

解析:此题本不该出错,出错的原因还是练习的次数太少,abstract应该写在类型的前面。

其他(感悟、思考等,可选)

随着学习任务的增多,原来在学习新知识时,旧知识的漏洞也就会显现出来,一开始,我们可能会慌,其实,这并不可怕,发现知识的漏洞是好事,我们只要返回认真把知识的漏洞填补好就可以了。不要在同样的地方摔倒第二次,这就是我对于最近的学习想法。

学习进度条

~ 代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第六周 3093/1500 1/2 46/90

参考资料

20165203 第6周《Java程序设计》学习的更多相关文章

  1. 20145213《Java程序设计学习笔记》第六周学习总结

    20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...

  2. Java程序设计学习知识点总结

    Java程序设计学习知识点总结 Java语言简单,面向对象,分布式,解释性,健壮,安全与系统无关,可移植,高性能,多线程,动态语言. 什么是框架 可以认为是某种应用的半成品,就是一组组件用来完善自己的 ...

  3. 20175215 2018-2019-2 第十周java课程学习总结

    第十二章 Java多线程机制 12.1 进程与线程 12.1.1 操作系统与进程 程序是一段静态的代码,它是应用软件执行的蓝本. 进程是程序的一次动态执行过程,它对应了从代码加载.执行至执行完毕的一个 ...

  4. 20175215 2018-2019-2 第九周java课程学习总结

    第十一章 JDBC与MySQL数据库 11.1 MySQL数据库管理系统 下载安装过程略 使用的是MySQL 5.6而非5.7 11.2 启动MySQL数据库服务器 启动和root用户过程略 11.3 ...

  5. 20175215 2018-2019-2 第六周java课程学习总结

    第七章 内部类与异常类 1.内部类 Java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类 内部类和外嵌类之间重要关系如下 内部类的外嵌类的成员变量在内部类中仍然有 ...

  6. 20175215 2018-2019-2 第三周java课程学习总结

    第三周 一.使用JDB调试java代码(主要内容为断点) 以下文字内容转自使用JDB调试java程序,图片则为自己的截图 我们提倡在Linux命令行下学习Java编程.学习时在Ubuntu Bash中 ...

  7. Java程序设计学习笔记(一)

    时间:2015-6-2 23:04 程序员,程序猿,程序媛,码农 -------------------------------------------------------   --Java的应用 ...

  8. 20175215 2018-2019-2 第十一周java课程学习总结

    第13章 Java网络编程 13.1 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符(Uniform Resource Locator),使用URL创建对 ...

  9. 20175215 2018-2019-2 第八周java课程学习总结

    第十五章 泛型与几何框架 15.1 泛型 泛型(Generics)是在JDK1.5中推出的,其主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 15.1.1 泛型类声明 可以使用 ...

  10. 20175215 2018-2019-2 第五周java课程学习总结

    第六章学习内容 1.接口 使用interface来定义一个接口. 接口体中包含常量的声明(没有变量)和抽象方法两部分.接口体中只有抽象方法,没有普通的方法,而且接口体中所有的常量的访问权限一定都是pu ...

随机推荐

  1. Python 爬虫入门(三)—— 寻找合适的爬取策略

    写爬虫之前,首先要明确爬取的数据.然后,思考从哪些地方可以获取这些数据.下面以一个实际案例来说明,怎么寻找一个好的爬虫策略.(代码仅供学习交流,切勿用作商业或其他有害行为) 1).方式一:直接爬取网站 ...

  2. git<commit和分支>

    commit: 在执行提交命令git commit之前,一定要git add要修改的文件,这样才能将更改的内容更新到本地. 在Git 中提交时,会保存一个提交(commit)对象,它包含一个指向暂存内 ...

  3. Zabbix应用四:Zabbix监控Nginx

    利用Zabbix监控Nginx 一.准备nginx监控模版: 1.1.下载nginx监控模版:  点此下载 1.2.导入模版: Zabbix管理页面,选择'配置'->'模版'->'导入': ...

  4. Python面向对象补充以及异常处理

    面向对象相关内容 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(o ...

  5. Docker 基础知识

    Docker Docker 是什么 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是 ...

  6. Spring @Transactional注解不回滚不起作用无效

    原文地址:http://www.cnblogs.com/wuxiaofeng/p/6819209.html   这几天在项目里面发现我使用@Transactional之后,抛了异常居然不回滚.后来终于 ...

  7. git 第一次关联远程仓库

    1.首先需要先git pull origin master 2.然后合并两个无关的仓库 git pull origin master --allow-unrelated-histories

  8. Java压缩/解压.zip、.tar.gz、.tar.bz2(支持中文)

    本文介绍Java压缩/解压.zip..tar.gz..tar.bz2的方式. 对于zip文件:使用java.util.zip.ZipEntry 和 java.util.zip.ZipFile,通过设置 ...

  9. Java中的容器类(List,Set,Map,Queue)

    Java中的容器类(List,Set,Map,Queue) 一.基本概念 Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1)Collection.一个独立元素的序列,这些元素都 ...

  10. Spring3.2 Contorller单元测试参数问题: java.lang.NoSuchMethodException

    使用3.2做单元测试的时候发现这个问题,因为之前都是用3.0中的配置适配器使用AnnotationMethodHandlerAdapter,到3.2中升级为RequestMappingHandlerA ...