20165223 《JAVA程序设计》第六周学习总结

时间:2020-12-11 19:23:29

教材学习内容总结

第八章-常用实用类-要点

  • 基础:String类
  • 重点:StringTokenizer类Scanner类
  • 难点:Class类与Console类Pattern类与Match类
  • 其他特殊类:StringBuffer类,Date类与Calendar类,日期格式化,Math类,BigInteger类,Random类,数字格式化

第十五章-泛型与集体框架-要点

  • 泛型
  • 链表
  • 堆栈
  • 散列映射
  • 树集
  • 树映射

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

  • String类
    • 在java.lang包中,默认引入
    • 被定义为final类,不能拓展,无子类
  • 构造String对象
    • String对象=字符串对象
      • 常量对象:常量池
      • String对象:非常量池
        • String、new类声明
        • 不能输出String对象的引用,只能输出对象的实体
        • 可以用已创建的String对象创建另一个String对象
      • 常用构造方法
        • String(char a[])
        • String(Char a[], int startIndex, int count)//所选数组,起始位置,取的数量
      • 引用String常量
        • 可以把String常量的引用赋值给一个String对象(常量池→非常量池),具有相同的引用→具有相同的实体
  • 字符串并置:"+",首尾相连的新String对象
    • 两个常量并置→常量
    • 其中一个是变量/都是变量→在动态存放区(非常量池)得到新的String对象实体和引用
    • 更重视两个String对象的实体
  • String类的常用方法
    • public int length():获取字符序列长度
    • public boolean equals(String s):比的是字符序列
    • public boolean startsWith(String s):判断前缀
    • public boolean endsWith(String s):判断后缀
    • public int compareTo(String s):按字典序比较字符序列大小,=s返回0,>s返回正值,<s返回负值
    • public boolean contains(String s):判断当前字符序列是否包含参数s的字符序列
    • public int indexOf(String s):从当前序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置;若无则返回-1
    • public int lastIndexOf(String s):从当前序列的0索引位置开始检索最后一次出现str的字符序列的位置,并返回该位置;若无则返回-1
    • public String substring(int startpoint):复制startpoint位置至最后位置上的字符所得到的字符序列
    • substring(int start,int end):复制从start位置到end-1位置上的字符序列
    • public String trim():去掉前后空格后的字符序列
  • 对象的字符串表示:toString()
  • 字符串与字符数组、字节数组:getChar()
  • 正则表达式及字符串的替换与分解
元字符 正则表达式 意义
. . 任意字符
\d \d 0~9中任意数字
\D \D 任意非数字字符
\s \s 空格类字符
\S \S 非空格类字符
\w \w 可用于标识符的字符(除$)
\W \W 不能用于标识符的字符

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

  • Q1:在Example8_4.java中,运行后发现结果是sum=0?

20165223 《JAVA程序设计》第六周学习总结

解答:之前未曾使用过main方法的参数,args[]可以接受用户从键盘输入字符序列,需要用java.exe来执行主类,加入引用才能得出sum值,否则就是初始的0.0

  • Q2:在Example8_7.java中,运行后出现了乱码?

20165223 《JAVA程序设计》第六周学习总结

解答:IDEA问题,中文乱码,根据百度经验解决了问题

  • Q3:在Example8_9.java中,代码无法运行?

20165223 《JAVA程序设计》第六周学习总结

解答:确少import java.util.Scanner;并且与其他类冲突,更正后成功

20165223 《JAVA程序设计》第六周学习总结

  • Q4:在Example8_21中,出现如图问题,无法键盘输入密码?

20165223 《JAVA程序设计》第六周学习总结

解答:没找出来,后来在命令行中尝试发现正确(?)

思考与感悟

本周的这两章不算特别困难,听网课的老师讲解已经很清楚了,大部分只需要了解掌握即可,只需要抓住重难点就行。主要学习了java函数库里的各种函数,方便了之后写代码时调用,节省时间,简洁代码。

错题总结

答案未出,之后再补充详细总结

代码托管

详见博客:https://gitee.com/BESTI-IS-JAVA-2018/20165223cn.git

20165223 《JAVA程序设计》第六周学习总结

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3000行 30篇 400小时
第六周 1324/200 2/11 20/20 深入

参考资料

  1. 教学视频
  2. 使用JDB调试Java程序