教材学习内容总结

Ch8

  • String类:

    程序可以直接使用,String类不能有子类
    - 构造String对象 使用String类声明并创建对象
    String s = new String("we are students");
    String t = new String("we are students");
    s和t实体相同,但二者的**引用**不同(重点)
    
    - 字符串并置
    
    参与并置运算对象只要有一个为变量,就会在**动态区**存放得到的新的String对象的实体和引用。如果两个常量进行运算得到的仍为常量。
    
    - String类常用方法

    (1)public int length( ) 用来获取字符序列的长度;

    (2)public boolean equals(String s) 比较当前String对象的字符序列是否与参数s指定的String对象的字符序列是否相同,String对象中存放的是引用

    (3)public boolean startsWith(String s)、public boolean endsWith(Sting s)

    start判断当前String对象的字符序列**前缀**是否是参数指定的String对象s的字符序列;
    
    end判断当前String对象的字符序列**后缀**是否是参数指定的String对象s的字符序列;

    (4)public int compareTo(String s) 按字典序与参数指定的对象s的字符序列比较大小

    (5)public boolean contains(String s) 判断当前String对象的字符序列是否包含参数s的字符序列;

    (6)

    public int indexOf (string s) 从当前String对象的字符序列的0索引位置开始检索首次出现s的字符序列位置并返回该位置,若没检索到,该方法的返回值为-1;
    
    public int lastIndexOf(String s) 从当前String对象的字符序列的0索引位置开始检索最后一次出现s的字符序列的位置,并返回该位置,若没检索到,则返回-1;

    (7)public String substring(int start,int end)复制当前对象的字符序列中的start位置至end-1位置上的字符得到的字符序列

    (8)public String trim() 得到一个新的String对象,这个String对象的字符序列是当前String对象的字符序列去掉前后空格后的字符序列。

     -  对象的字符串表示
    
     toString()方法调用形式:```创建对象的类的名字@对象的引用的字符串表示```
    
     - 字符串与字符数组、字节数组
    
     public byte[] getBytes()方法使用默认字符编码,将当前对象字符序列存放到字节数组中,并返回数组的引用。(注:默认字符编码为GB2312,**一个汉字占两个字节**)
  • StringTokenizer类

    该类两个常用构造方法:

    - StringTokenizer(String s):为String对象s构造一个分析器,使用默认的分隔标记,即空格符,换行符,回车符,tab符,进纸符做分割标记

    - StringTokenizer(Strings,String delim):为String对象s构造一个分析器,参数delim的字符序列中的字符的任意排列被作为分隔标记

  • Scannner类

    • Sanner对象调用next()方法依次返回被解析的字符序列中的单词,如果最后一个单词已被next()方法返回,Scanner对象调用hasNext()将返回false,否则返回ture
    • 对于被解析的字符序列中的数字型单词,Scanner对象可以用nextInt()或nextDouble()方法来代替next()方法
    • 如果单词不是数字型单词,Scanner对象调用nextInt()或nextDouble()方法将数字型单词转化为int或double数据返回
    • 如果单词不是数字型单词,Scanner对象调用nextInt()或nextDOuble()方法将发生InputMismatchException异常,在处理异常时可以调用next()方法返回非数字化单词。

    区别:StringTokenizer类和Scanner类都可用于分解字符序列中的单词,StringTokenizer把单词存放到Scanner对象的实体中、获得单词速度较快,但Scanner仅存放分隔标记、节省内存空间。

  • StringBuffer类

    • StringBuffer对象
    • StringBuffer类的常用方法常用方法: append,charAt,serCharAt,insert,reverse,delete,replace
  • Date类与Calendar类

  • 日期格式化

  • Math类、BigInteger类与Random类

  • 数字格式化

  • Class类与Console类(较难)

  • Pattern类与Match类(较难)

ch15

  • 泛型

    • 泛型类声明
    • 使用泛型类声明对象
  • 链表
    • LinkedList
    • 常用方法
    • 遍历链表
    • 排序与查找
    • 洗牌与旋转
  • 堆栈
    • Stack泛型类创建堆栈对象,E为泛型,可为任何对象或接口,但不可以为基本类型数据
    • 使用 public E push(E item)实现压栈操作。
    • 使用public E pop()实现弹栈操作。
    • 使用public boolean empty()判断堆栈是否还有数据,有数据返回false,否则返回true。
    • 使用public E peek()获取堆栈顶端的数据,但不删除该数据。
    • 使用public int search(Object data)获取数据在对战中的位置。
  • 散列映射
    • HashMap
    • 常用方法
    • 遍历散列映射
    • 基于散列映射的查询
  • 树集
    • TreeSet
    • 结点的大小关系
    • TreeSet类的常用方法

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

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

  • 问题1:Example15_11某些输入文件使用了未经检查或不安全的操作

  • 问题1解决方案:再次进行编译不再次报错,我查了一下相关错误有以下几类

    • 注: 某些输入文件使用或覆盖了已过时的 API。
    • 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
    • 注: 某些输入文件使用了未经检查或不安全的操作。
    • 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

    参考《java 编译时报错:使用了未经检查或或不安全的操作》,有以下两种解决办法:

    • 1.在main方法面前加@SuppressWarnings("unchecked")使用了注解就可以告诉编译器不用检查,这样子就可以避过编译时期间的安全检查。
    • 2.采用泛型。ArrayList<String> list = new ArrayList<String>();

      因为Java中没有用到泛型,规定在Java1.5之后要用“<>”表示泛型,有了泛型你就要写成Vector 比如你里面是放的String那写成Vector 它就知道里面的类型就不会有这个警告了。

代码托管

上周考试错题总结

1.下列关于super关键字的说法,正确的是

A.如果在子类中想使用被子类隐藏的成员变量或方法,就需要使用关键字super。

B.课本P123代码Example5_7.java中,Average类g()方法里“c=super.f()”调用的是Average类的float f()。

C.子类的构造方法如果没有明显地指明使用父类的哪个构造方法,子类就调用父类的不带参数的构造方法。

D.P124的程序Example5_8,如果UniverStudent子类地构造方法中省略super,则程序默认执行Student类的super()。

正确答案: A C D

2.下列关于abstract关键字的说法,正确的是

A . 可以使用static修饰abstract方法。

B . 非abstract类中不可以有abstract方法。

C . 不能使用new创建abstract类的对象。

D . 不允许使用final和abstract同时修饰一个方法.

E . 可以使用public abstract void eat(){};来声明抽象方法eat()。

F . 抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此抽象方法。

正确答案: B C D F

解析:5.9节。A项:abstract关键字不能应用于static、private或final 方法。E项:不能有方法体。

3.下列说法正确的是

A . 子类继承父类的构造方法。

B . abstract类的子类必须是非abstract类。

C . 子类继承的方法只能操作子类继承和隐藏的成员变量。

D . 子类重写或新增的方法也能直接操作被子类隐藏的成员变量。

正确答案: C

4.下列说法正确的是

A . UML通过使用实线连接类和它的接口。

B . 通过import语句可以引入包中的接口。

C . 接口可以调用类中的其他的非接口方法。

D . 接口属于引用型变量。

正确答案: B D

5.将下列(A,B,C,D)哪个代码替换下列程序中的【代码】不会导致编译错误?

interface Com {
int M = 200;
int f();
}
class ImpCom implements Com {
【代码】
}

A . public int f(){return 100+M;}

B . int f(){return 100;}

C . public double f(){return 2.6;}

D . public abstract int f();

正确答案: B

6.如果有以下程序片段

interface Some{
int x = 10;
}
public class Main{
public static void main (String [] args) {
System.out.println(Some.x);
}
}

以下描述正确的是

A . 编译失败

B . 显示10

C . 必须创建Some实例才能存取x

D . 显示0

正确答案: B

感想

本周重点内容在于第八章的学习,之前只是机械地用例如String和Scanner这些类,通过这一章对“类”有了新的认识,之前的一些“为什么用这个?”的迷惑也逐渐解决了。通过测试反馈出来的问题漏洞还有很多,看完教材感觉自己会了,但浅层的记忆很快就会消失,在做题过程中一些概念定义还是模棱两可。下一步还要继续落实教材内容,更多地去理解记忆乃至学会应用。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 24/24 1/4 15/15
第二周 423/423 2/6 14/29
第三周 702/1109 1/7 16/45
第四周 918/2027 2/9 16/61
第五周 1208/3235 2/11 15/76
第六周 1137/4372 2/13 14/90

20165202 2017-2018-2 《Java程序设计》第6周学习总结的更多相关文章

  1. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  10. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. C++——创建类的时候用new与不用new 的区别

    转自:https://www.cnblogs.com/tony-li/p/4111588.html C++在创建对象的时候可以采用两种方式:(例如类名为Test) Test test  或者 Test ...

  2. PHP jsonencode 已经json中包含 汉字的处理

    <?php $arr = array ( 'Name'=>'希亚', ); $jsonencode = json_encode($arr); echo $jsonencode; ?> ...

  3. Django学习笔记之Django的url反向解析

    0x00 URL反向解析和三种不同的反向解析方式 Django中提供了关于URL的映射的解决方案,可以做两个方向的使用: 1.普通解析过程:由客户端的浏览器发起一个url请求,Django根据URL解 ...

  4. Python3.x:selenium获取iframe内嵌页面的源码

    Python3.x:selenium获取iframe内嵌页面的源码 前言 在一些网页中经常会看到ifrmae/frame标签,iframe是嵌入式框架一般用来在已有的页面中嵌入另一个页面,当一个元素在 ...

  5. ubuntu 12.04及12.10无法安装 ia32-libs

    administrator@ubuntu:~$ sudo apt-get install ia32-libs [sudo] password for administrator:  正在读取软件包列表 ...

  6. SSH免密码登录Linux

    如果两台linux之间交互频繁,但是每次交互如果都需要输入密码,就会很麻烦,通过配置SSH就可以解决这一问题 下面就说下配置流程(下面流程在不同机器上全部操作一边) 1)cd ~到这个目录中 2)ss ...

  7. JDK 中的监控与故障处理工具-01

    当给系统定位问题的时候, 我们经常需要了解并分析 JVM 的运行时状态 . 那应该从哪些方面入手呢? 答案就是从数据入手 . 这里的数据包括: GC日志,异常堆栈, 线程快照(threaddump) ...

  8. Dancing Links DLX

    Dancing Links DLX Dancing Links 用来解精准覆盖问题. 精准覆盖问题有两种版本. 精准覆盖 : 给一个01矩阵,如何选出若干行,使得每列都有且仅有一个1. 可以求最少行数 ...

  9. 51Nod 1433 0和5(9的倍数理论)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1433 思路: 数论中关于9的倍数的理论:若是一个数能被9整除,则各位数之 ...

  10. oracle in语句的坑

    oracle 的in语句最多只能有1000条数据,超出,sql报错.