20165203 第6周《Java程序设计》学习

教材学习内容总结

第八章

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

  2. String类的经常使用方法git

    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

第十五章

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

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

Q1:在看到如图所示状况时,我出现了疑问,为何前面的hellotestOne的引用相等,然后面hellotestTwo的引用值不相等呢?
数组

A1:在回顾以前内容时,我明白了:
在以前String testOne = "你"+"好"中是两个常量的运算,其结果仍然在常量池中,然后面String testTwo = you+hi是变量之间的运算,结果在动态区中,testTwo被从新赋予一个引用。dom

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

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

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

  2. 数学恒等式的模式匹配替换,主要是数字和Bool运算:如对任意整型数X,X-X是0,X-0是X,(X*2)-X是X等; 在编译时将这些计算出,并替换引用的地方;
  3. 常量折叠:顾名思义是对expression中的常量计算进行折叠,去掉冗余的运算;好比bool运算true||(a||b&&c) 这个运算直接就折叠为true;spa

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

参考资料

相关文章
相关标签/搜索