热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

20165312201720182《JAVA程序设计》第7周学习总结

20165312201720182《JAVA程序设计》第7周学习总结一、对上周测试的查漏补缺总的来说,我觉得上周两个测试都挺难的,做测试也花费了很长的时间,我认为是因为书上的知识点

20165312 2017-2018-2《JAVA程序设计》第7周学习总结

一、对上周测试的查漏补缺

总的来说,我觉得上周两个测试都挺难的,做测试也花费了很长的时间,我认为是因为书上的知识点很多,我还没有理解好,所以还是要更加好好的看书,很多书上的知识点遗漏或者看过一遍就忘记了。

第五周课下测试(ch08 ch10)

  • 下列关于内部类的说法,正确的是( )

A . 其他类不可以用某个类的内部类声明对象。

B . 内部类字节码文件的名字格式是“外嵌类名$内部
类名”。

C . 内部类的类体可以声明类变量和类方法。

D . 内部类在成员位置上,因此可以被private修饰。

答案:ABD(C项错误在内部类的类体中不可以声明类变量和类方法。)

  • 如果超出JVM运行能力之外,如“byte[] arr=new byte[10241024600];”会抛出java.lang.OutOfMemoryError异常。

A . true

B . false

答案:B(对于严重的错误,通过Error类来描述,而对于非严重的问题,则是通过Exception类来进行描述的。)

  • 下列关于异常处理的说法,正确的是( )

A . 一旦try部分抛出异常对象,那么try部分将立刻结束执行,转向执行相应的catch部分。

B . catch代码块定义一定会执行的代码,它通常用于关闭资源。

C . try-catch语句可以由几个catch组成,分别处理发生的异常。

D . catch括号中列出的异常不得有继承关系,否则会发生编译错误。

答案:ACD(B项:finally代码块定义一定会执行的代码,它通常用于关闭资源。对于异常的部分,如果没有做finally处理,那么这个程序是有缺陷的,每次调用完资源再把资源释放掉是必须的,否则运行压力会特别大。)

  • File类的对象主要用来获取文件本身的一些信息,如对文件的读写操作、获取文件所在目录、文件长度或文件读写权限等。

A . true

B . false

答案:B(File类不涉及对文件的读写操作。)

  • 以下是File类构造方法的是( )

A . File(File parent, String child)

B . File(String pathname)

C . File(String parent, String child)

D . File(URI uri)

答案:ABCD

  • 以下关于File类常用方法的叙述,错误的是( )

A . public long length():获取文件长度

B . public int hashCode():计算此文件的哈希码

C . public String toString():返回此抽象路径名的路径名字符串

D . public Boolean isFile():判断一个文件是否是普通文件,而不是目录

答案:B(public int hashCode():计算此抽象路径名的哈希码。)

  • InputStream类继承自FileInputStream,可以以字节为单位读取文件。

A . true

B . false

答案:B(InputStream是父类)

  • 下列说法正确的是( )

A . 可以使用FileOutputStream类写入文件。

B . FileOutputStream类的构造方法有FileOutputStream(File file)、FileOutputStream(String name)、FileOutputStream(File file, boolean append)等。

C . 对于FileOutputStream(String name)方法,参数name指定的文件称为输出流的源。

D . 如果输出流指向的文件是已存在的文件,输出流将刷新该文件,使得文件的长度为0。

答案:ABD(C中参数name指定的文件称为输出流的目的地。)

  • 下列关于BufferedReader和BufferedWriter的说法,错误的是( )

A . 通过调用BufferedReader对象的readLine()方法,可以读取文本行。

B . BufferedReader有一个向文件写入回行符的方法:newLine()。

C . 当BufferedWriter流调用flush()刷新缓存或调用close()方法关闭时,即使缓存没有溢出,,也会将缓存的内容写入目的地。

D . 可以将BufferedWriter流和FileWriter流连接在一起,然后使用BufferedWriter流将数据写到目的地。

答案:B

  • 下列关于Scanner类的说法,正确的是( )

A . 使用Scanner和正则表达式来解析文件的特点是以空间换取时间。

B . 解析时如果单词不是数字型单词,调用nextInt()或nextDouble()方法将发生InputMismatchException异常。

C . 创建Scanner对象,指向要解析的文件,可以使用useDelimiter方法指定正则表达式作为分割标记。

D . 正则表达式\b((?!abc)\w)+\b可以用来匹配不包含abc的单词。

答案:BCD(A中使用Scanner和正则表达式来解析文件的特点是以时间换取空间)

  • 下列哪个叙述是正确的?( )

A . 创建File对象可能发生异常。

B . BufferedRead流可以指向FileInputStream流。

C . BufferedWrite流可以指向FileWrite流。

D . RandomAccessFile流一旦指向文件,就会刷新该文件。

答案:C

第六周课下测试(ch08 ch15)

  • List接口的特点是?( )

A . 不允许重复元素,元素无顺序

B . 不允许重复元素,元素有顺序

C . 允许重复元素,元素有顺序

D . 允许重复元素,元素无顺序

答案:C

  • 下列关于LinkedList

A . public E getLast()返回此列表的最后一个元素。如果此列表为空,则抛出NoSuchElementException。

B . public void addFirst(E e) 将指定元素插入此列表的开头。e为要添加的元素。

C . public boolean add(E e)等效于addLast(E)。

D . public boolean remove(Object o) 覆盖类 AbstractCollection

答案:ABCD(通过查询API)

  • 下列关于HashMap

A . public boolean isEmpty()如果此映射不包含键-值映射关系,则返回 true。

B . public V get(Object key)返回指定键所映射的值;如果此映射不包含该键的映射关系,则抛出异常。

C . public V put(K key, V value) 在此映射中关联指定值与指定键。如果该映射以前包含了一个该键的映射关系,则以先定义的值为准。

D . public Object clone()返回此 HashMap 实例的浅表副本:并不复制键和值本身。

答案:AD(通过查询API可知:B项:如果此映射不包含该键的映射关系,则返回null。C项:如果该映射以前包含了一个该键的映射关系,则旧值被替换)

  • 下列关于TreeSet

B . public boolean add(E e)将指定的元素添加到此 set。如果此 set 已经包含这样的元素,则该调用不改变此 set 并返回 false。

C . public boolean addAll(Collection c)将指定 collection 中的所有元素添加到此 set 中。如果此 set 由于调用而发生更改,则返回 true。

D . public E lower(E e) 返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。

答案:BCD(A项:如果指定对象无法与该 set 中的当前元素进行比较,则抛出ClassCastException异常。)

  • 下列值不为true的表达式是( )

A . "john" = = "john"

B . "john".equals("john")

C . "john" = "john"

D . "john".equals(new String("john"))

答案:C

  • 使用构造方法String(byte[] bytes, int offset, int length, Charset charset),通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。其中,offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。

A . true

B . false

答案:A

  • String类中的length()方法用来获取一个String对象的字符序列的长度,单位为字节。

A . true

B . false

答案:B

  • public boolean startsWith(String prefix)方法,如果参数是空字符串,则抛出异常。

A . true

B . false

答案:B

  • 下列关于public int compareTo(String anotherString)的说法,正确的是( )

A . 按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode值。

B . 如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个正整数。

C . 如果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值,compareTo 返回这两个字符串在位置 k 处两个char 值的差,即值:this.charAt(k)-anotherString.charAt(k)

D . 如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,compareTo 返回这两个字符串长度的差

E . compareTo 只在方法 equals(Object) 返回 true 时才返回 0。

答案:ACDE(B返回一个负整数)

  • 下列关于substring方法的说法,正确的是( )

A . public String substring(int beginIndex)返回的子字符串从指定索引处的字符开始,直到此字符串末尾。

B . public String substring(int beginIndex, int endIndex) 子字符串从指定的 beginIndex 处开始,直到索引 endIndex处的字符。

C . "emptiness".substring(9)返回值为""。

D . "smiles".substring(1, 5)返回值为"mile"。

E . 若beginIndex 大于 endIndex,则substring(int beginIndex, int endIndex)返回-1。

答案:ACD(B项:直到索引 endIndex - 1 处的字符。E项:抛出IndexOutOfBoundsException异常。)

  • 下列说法错误的是( )

A . java.util包中的Data类重写了toString()方法。

B . Arrays和Point都继承了toString方法。

C . 调用x.toString()方法的地方可以用""+x代替。

D . 定义int[] Numbers = {1, 2, 3}; String s1 = ""+Numbers;,则System.out.println(s1);调用了toString方法,可以将数组输出。

答案:D(D项:若想打印数组,数组必须调用静态方法Arrays.toString,也就是将以上程序中的String s1 = ""+Numbers;改为String s1 = Arrays.toString(Numbers);。如果要打印多维数组,则需要调用Arrays.deepToString方法。)

  • 下列关于字符串与字符数组、字节数组的说法,正确的是( )

A . getChars (int srcBegin, int srcEnd, char[] dst, int dstBegin)方法的返回值为空。

B . srcEnd是字符串中要复制的最后一个字符的索引。

C . srcBegin 大于 srcEnd时,会抛出IndexOutOfBoundsException异常。

D . 要复制到 dst 子数组的字符从索引 dstBegin 处开始,并结束于索引dstbegin + (srcEnd-srcBegin) - 1

答案:ACD(B项:srcEnd是字符串中要复制的最后一个字符之后的索引。)

  • 下列关于正则表达式的说法,正确的是( )

A . \ba\w*\b匹配以字母a开头的单词

B . \d+匹配1个或更多连续的数字。

C . \b\w{6}\b 匹配6个及以上字符的单词。

D . [0-9]代表的含意与\d就是完全一致的:一位数字

E . \S+匹配不包含空白符的字符串。

F . (\d{1,3}.){3}\d{1,3}用来匹配 IP地址。

答案:ABDE(C项:\b\w{6}\b 匹配刚好6个字符的单词。F项: IP地址中每个数字都不能大于255,该表达式忽略了这个约束条件。正确的是((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)。)

  • 下列关于Date类和Calendar类的说法,错误的是( )

A . 可以使用System类的静态方法public long
currentTimeMillis()获取系统当前时间。

B . Date类的public boolean equals(Object obj)方法覆盖了类 Object 中的 equals。

C . 若比较两个Calendar的时间日期先后,可以使用after()方法。after()返回值为布尔类型,其等价于compareTo(when)<0。

D . 使用Calendar类的静态方法getInstance()可以初始化一个日历对象。
考点:C项:其等价于compareTo(when)>0。

答案:C

  • 下列说法正确的是( )

A . Java 8之前,对日期进行运算,使用DateFormat类。

B . 需要人类能理解的时间,建议使用Date类的toString()。

C . 现在国际上通用的标准时间是GMT。

D . new Date(System.currentTimeMillis())等价于new Date()

答案:D

  • 下列关于Math类的说法,正确的是( )

A . public static double cbrt(double a) 返回 double 值的立方根。如果参数为 NaN,那么结果为 NaN。

B . public static double cos(double a) 返回角的三角余弦。如果参数为 NaN 或无穷大,那么结果为 NaN。

C . public static double floor(double a) 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。如果参数为 NaN 或无穷大,那么结果为 NaN。

D . public static double log10(double a) 返回 double 值的底数为 10 的对数。如果参数为正 0 或负 0,那么结果为负无穷大。

答案:ABD(C项:如果参数为 NaN、无穷大、正 0 或负 0,那么结果与参数相同。)

  • 下列哪个表达式是正确的(无编译错误)?( )

A . int m =Float.parseFloat("567");

B . int m =Short.parseShort("567")

C . byte m =Integer.parseInt("2");

D . float m =Float.parseDouble("2.9")

答案:C

  • 对于如下代码,下列哪个叙述是正确的?( )

    public class E {
      public static void main (String args[]) {
    String s1 = args[1];
    String s2 = args[2];
    String s3 = args[3];
    System.out.println(s3); 
      }
    }

A . 程序出现编译错误。

B . 无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。

C . 无编译错误,在命令行执行程序:“java E let us go”,程序无运行异常。

D . 无编译错误,在命令行执行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序输出3。

答案:D

二、本周学习总结

遇到的问题以及解决方案

  • 博客里的链接失效,我在网上下载了XAMPP,并根据老师的博客学习了数据库.

技术分享图片

技术分享图片

  • 在IDEA中配置驱动mysql-connector-java-5.1.41-bin.jar时,用类似单元测试中加入junit.jar的方法寻找mysql-connector-java-5.1.41-bin.jar,但是我并没有找到。
  • 解决方法:
    • 下载mysql-connector-java-5.1.46.zip
    • 解压压缩包
    • File->Projeat Structure
    • 点击Dependencies -> 点击右上方+ -> JARs ->找到解压后压缩包的位置 - > mysql-connector-java-5.1.41-bin.jar
  • 根据蓝墨云上的资源下载了WhiteStarUML,根据使用StarUML画图类学习使用了怎样画出UML
  • 运行测试类MessageDAODEmo.java时出现问题

技术分享图片

然后根据报错提示,发现时代码出问题了,类名的大小写搞错了。

知识点总结

  • 连接数据库
  • 条件与排序查询:
    • where子语句select 字段 from 表名 where 条件
  • 更新、添加与删除操作
    • 更新
      update 表 set 字段 = 新值 where <条件子句>
    • 添加
      insert into 表(字段列表) values (对应的具体的记录)insert into 表 values (对应的具体的记录)
    • 删除delete from 表名 where <条件子句>
  • 使用预处理语句
  • 事务
    • setAutoCommit(booean b):方法关闭自动提交模式
    • commit():方法处理事务
    • rollback():方法处理事务失败

代码链接

代码行数:

技术分享图片

20165312 2017-2018-2《JAVA程序设计》第7周学习总结


推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
author-avatar
好人langren_840
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有