教材学习内容总结

第八章

  • 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. PDF文档小技巧整理一览

    1.福昕阅读器文档背景修改为保护眼睛的颜色? 1)文件 -> 偏好设置 -> 访问 -> 勾选 "改变文档颜色" 2)选择 '自定义颜色'->'页面背景颜色 ...

  2. C/C++ 移位计算代替乘除运算

    测试移位和乘除的比较,发现移位比乘除运算快一个位数的速度,但是难点在于判断是否是2的幂次级的数,如果不是还得通过代码拆分到2的幂次+上分子的累和,然后通过移位得到2的次幂数这样; 下列代码只是简单的判 ...

  3. 2017 清北济南考前刷题Day 2 morning

    期望得分:100+30+60=190 实际得分:100+30+30=160 T1 最优方案跳的高度一定是单调的 所以先按高度排序 dp[i][j] 跳了i次跳到j 枚举从哪儿跳到j转移即可 #incl ...

  4. SpringCloud(六) Hystrix入门

    前提 一个可用的Eureka注册中心(文中以之前博客中双节点注册中心,不重要) 一个连接到这个注册中心的服务提供者 快速入门 项目搭建 搭建一个新maven项目,artifactid为Ribbon-c ...

  5. jQuery插件开发中$.extend和$.fn.extend辨析

    jQuery插件开发分为两种:   1 类级别 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery. ...

  6. 2016-2017-2 《Java程序设计》第六周学习总结

    20155223 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 第十章 InputStream.OutputStream:无论数据源或目的地为何,只要设法取 ...

  7. Scala2.10.4在CentOS7中的安装与配置

    随着基于内存的大数据计算框架——spark的火爆流行,用于编写spark内核的Scala语言也随之流行开来.由于其编写代码的简洁性,受到了越来越多程序员的喜爱.我今天给大家展示的时Scala2.10. ...

  8. SQL Server DB Link相关

    若想通过DBlink 清空表或执行存储过程,可以通过这种方式 Insert into table select * from table时,Pull 方式比Push方式快很多

  9. Linux服务-nginx+nfs实现共享存储

    任务目标:一台服务器进行更改,其他两台服务器访问均同步 现在的情况是: web1.html文件访问的结果是web1 现在我在Web1这台机器上更改web1.html,内容为change in web1 ...

  10. JS设计模式——8.桥接模式

    桥接模式的用途 在实现API的时候,桥接模式非常有用. 在设计一个JavaScript API的时候,可以用这个模式来弱化它与使用它的类和对象之间的耦合. 示例:事件监听器 桥接模式最常见和实际的应用 ...