教材学习内容总结

第八章

  • 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. zuul学习

    1.zuul可以代理界面所需的后端服务,可以解决CORS(Cross-Origion-Resource-Sharing)和认证问题(authentication)问题 2.zuul是使用ribbon来 ...

  2. Zabbix应用一:Zabbix安装

    1.准备zabbix依赖环境:LNMP 依赖包安装参考http://www.osyunwei.com/archives/10057.html. cmake安装mysql: cmake . -DCMAK ...

  3. Rsync实现文件同步的算法(转载)

    Rsync文件同步的核心算法 文章出处:http://coolshell.cn/articles/7425.html#more-7425 rsync是unix/linux下同步文件的一个高效算法,它能 ...

  4. Java基础-字符串连接运算符String link operator

    Java基础-字符串连接运算符String link operator 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 字符串链接运算符是通过“+”进行拼接的. 一.使用“+”进行字 ...

  5. 科学计算三维可视化---Mlab基础(改变物体的外观颜色)

    import numpy as np from mayavi import mlab #建立数据 x,y = np.mgrid[-::200j,-::200j] z = *np.sin(x*y)/(x ...

  6. Mongodb 笔记03 查询、索引

    查询 1. MongoDB使用find来进行查询.find的第一个参数决定了要返回哪些文档,这个参数是一个文档,用于指定查询条件.空的查询会匹配集合的全部内容.要是不指定查询,默认是{}. 2. 可以 ...

  7. javascript精雕细琢(一):var let const function声明的区别

    目录 引言 一.var 二.let 三.const 四.function 五.总结 引言        在学习javascript的过程中,变量是无时无刻不在使用的.那么相对应的,变量声明方法也如是. ...

  8. 关于ES6 Class语法相关总结

    关于ES6,其实网上已经有很多的资料可供查询,教程可参考阮一峰大神的ES6入门,本文只是对Class这一语法做一个总结: 一.Class基本语法 constructor方法 constructor是类 ...

  9. Hadoop/Spark环境运行过程中可能遇到的问题或注意事项

    1.集群启动的时候,从节点的datanode没有启动 问题原因:从节点的tmp/data下的配置文件中的clusterID与主节点的tmp/data下的配置文件中的clusterID不一致,导致集群启 ...

  10. C# Func的同步、异步调用

    using System; namespace ActionDemo { class Program { static void Main(string[] args) { Console.Write ...