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

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

教材学习内容总结

  • Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的。

  • InputStreamReader是InputStream和Reader之间的桥梁,由于System.in是字节流,需要用它来包装之后变为字符流供给 BufferedReader使用。

  • InputStream 为字节输入流,它本身为一个抽象类,必须依靠其子类实现各种功能,此抽象类是表示字节输入流的所有类的超类。 继承自InputStream 的流都是向程序中输入数据的,且数据单位为字节(8bit)。

  • OutputStream的基本方法: void write(int b) throws IOException 向输出流写入一个字节数据 void flush() throws IOException 将输出流中缓冲的数据全部写出到目的地

  • Reader的基本方法: int read() throws IOException 读取一个字符以整数形式返回,如果返回-1已到输入流的末尾

  • Writer的基本方法 void write(int c) throws IOException 向输出流写入一个字符数据 void write(String str) throws IOException将一个字符串中的字符写入到输出流 void write(String str,int offset,int length) 将一个字符串从offset开始的length个字符写入到输出流 void flush() throws IOException 将输出流中缓冲的数据全部写出到目的地

  • java.lang.Thread是Java API中的基础线程类。定义线程的方法有两种:一种是制作Thread的子类,覆盖run()method,然后实例化你的Thread子类;另一种是定义实现了Runnable method的类(也就是定义run() method),然后传递此Runnable对象的instance给Thread()构造函数。

  • 线程可以以不同的优先级运行。指定优先级的线程通常会在已无具较高优先级的线程等待时才会运行。

  • 线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。

  • 通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。

  • 线程完成run()方法后,就会进入Dead,进入Dead的线程不可以再次调用start()方法,否则会抛出IllegalThreadStateException。

  • 线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。

  • 每个对象都会有一个内部锁定,或称为监控锁定。被标示为synchronized的区块将会被监控,任何线程要执行synchronized区块都必须先取得指定的对象锁定。

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

  • 问题1:一个线程运行时发生异常会怎样?
  • 问题1解决方案:如果异常没有被捕获该线程将会停止执行。Thread.UncaughtExceptionHandler是用于处理未捕获异常造成线程突然中断情况的一个内嵌接口。当一个未捕获异常将造成线程中断的时候JVM会使用Thread.getUncaughtExceptionHandler()来查询线程的UncaughtExceptionHandler并将线程和异常作为参数传递给handler的uncaughtException()方法进行处理。
  • 问题2:为什么wait和notify方法要在同步块中调用?
  • 问题2解决方案:主要是因为Java API强制要求这样做,如果你不这么做,你的代码会抛出IllegalMonitorStateException异常。还有一个原因是为了避免wait和notify之间产生竞态条件。

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

  • 问题1:如下代码为什么打印出来结果只有1次输出,明明使用了2次println啊??

      import java.io.*;public class BasicFileOutput {static String file = "BasicFileOutput.out"; public static void main(String[] args)throws IOException {BufferedReader in = new BufferedReader(new StringReader(BufferedInputFile.read("BasicFileOutput.java")));PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file)));int lineCount = 1;String s;while((s = in.readLine()) != null )out.println(lineCount++ + ": " + s);out.close();// Show the stored file:System.out.println(BufferedInputFile.read(file));}}
  • 问题1解决方案:经过我的结对同学学霸秦诗茂的指导与讲解,我明白了,第一个println是输出到文件里去了。第二个println才是输出到控制台。所以我看到在控制台只有一行输出。

代码托管

37af0212e330f7fb.png
0a637df1792bdce6.png
26295d082a4a1bd8.png

上周考试错题总结

  • 现有:list是⼀一个合法的集合引⽤用getCollection()返回⼀一个合法集合的引⽤用哪个是合法的?(B,E)

A.or(Object o ; list)

B.for(Object o : getCollection())

C.for(Object o : list.iterator())

D.for(lterator i ; list.iterator() ; i.hasNext () )

E.for(lterator i=list.iterator(); i.hasNext (); )

  • 现有

      public class Demo{public static void main (String[] args){ List al=new ArrayList();a1.add("l");a1.add("2");a1.add("2");a1.add("3"); System.out.println (al);}}上述程序执⾏行行后的输出是哪项?A.[1,2,3]B.[1,2,3,3]C.[1,2,2,3]D.[2,1,3,2]
  • Which of the following methods will not compile? :(B,D)

A.private void method1(String name) { if (name.equals("star"))

throw new IllegalArgumentException(name);

}

B.private void method2(int age) { if (age > 30)

throw Exception();

}

C.public double method5() throws Exception { return 0.7;

}

D.protected double method4() throws Exception { throw new Throwable();

}

  • 表示键值对概念的接⼝口是?:(D)

A.Set

B.List

C.Collection

D.Map

  • 创建⼀一个只能存放String的泛型ArrayList的语句句是哪项?:(B)

A.ArrayList al=new ArrayList(); B.ArrayList al=new ArrayList() C.ArrayList al=new ArrayList(); D.ArrayList al =new List();

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):
    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)
    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)
    • 一周提交次数少于20次的不加分
  6. 其他加分:
    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:
    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况
    • 20155322
    • 结对照片
    • 结对学习内容
      • 串流继承的内容和架构

      • 第十章与第十一章课后练习
      • 代码调试中遇到的困难和问题

      • 线程内容中synchronized,wait(),notify(),notifyAll()等使用方法和环境
  • 上周博客互评情况
    • 20155333
    • 20155233
    • 20155230
    • 20155339
    • 20155306

其他(感悟、思考等,可选)

本周的学习由于其他科目实验,在代码量上有些不足,希望自己下周可以再在代码上下更多的功夫,只有自己动手敲代码,在做中学才是最好的学习手段和方式,对于书中不好理解的知识要在仔细思考的条件下百度或者计时问老师,不要让盲点陪自己过夜,边学边反思自己哪里做的不够好,及时修正。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周20/202/220/20
第二周140/1602/418/38
第三周113/2731/520/58
第四周335/6081/620/78
第五周1159/14081/730/108
第六周452/18601/820/128

转载于:https://www.cnblogs.com/STILLlover521/p/6654815.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

找不到tgp饥荒专用服务器,饥荒tgp版专用服务器搭建指南_游侠网

《饥荒》很多玩家购买了tgp版,对于服务器的搭建还不熟悉。下面小编带来《饥荒》tgp版专用服务器搭建指南,一起来看吧。1.创建以下文件夹\\(我的)文档\Klei\\DoNotStarveTogetherRail\MyDediServer\\(我的)文档\Klei\\DoNotStarveTogetherRail\MyDediServ…

elementui源码_Element UI 终于还是来啦

昨天, Element Plus for Vue 3.0 Beta 版本正式发布了!对,就是那个被外界传言不再维护的Element UI!Element Plus for Vue 3.0 是一个使用 TypeScript Composition API 重构的全新项目。官方团队几乎重写了每一行 代码&#xff0…

复地邮箱服务器地址,打印服务器设置方法

现在很多人会使用打印机,打印机可以帮助我们打印一些资料,但是很多人之前可能没有使用过打印机,因此自己购买了之后发现不会使用,不会设置,今天就为您介绍一下打印服务器安装设置,希望对您有帮助。打印服务…

腐蚀rust研究台抽奖_中石化青岛安工院专家分享延迟焦化装置的腐蚀风险分析!...

延迟焦化装置的腐蚀风险分析李贵军,单广斌(中国石化青岛安全工程研究院)主要内容:对某延迟焦化装置的腐蚀情况进行了描述,根据装置的流程特点、操作条件、设备选材和结构,对装置的腐蚀类型和腐蚀原因进行了分析,提出了…

目标检测如何计算召回率_计算机视觉目标检测的框架与过程

计算机视觉个人接触机器视觉的时间不长,对于机器学习在目标检测的大体的框架和过程有了一个初步的了解,不知道对不对,如有错误,请各位大牛不吝指点。目标的检测大体框架:计算机视觉目标检测分为以下几个步骤&#xff1…

修改wap游戏服务器,修改wap游戏服务器

修改wap游戏服务器 内容精选换一换部署游戏应用前,您需要准备硬件以及华为云的环境,主要包括以下内容:硬件环境:您需要准备一台带有显卡的Windows机器,硬盘至少20G,用于运行游戏客户端。若您不需要运行游戏…

e5cc温控仪通讯参数设定_自动化工程师:施耐德 PLC常见两种编程通讯控制实例,收好不谢...

1、第一种是采用 UNTLW1协议进行联机编程:参数设置与通讯配置检查:用 Premium的专用编程电缆“TSXPCX3030-C(USB接口,有专门的驱动)”通过调试机与CPU上的TER口进行连接,连接好后,点击某单栏里的“PLC(P)”菜单&#x…

flask登录验证用ajax,基于 Ajax 请求的 Flask-Login 认证

index.htmlexample.py## index.htmlindex.html test login by Leetao未点击var load_msg function () {$.get(/hello?api_keytest_login,function(data){$(#test_login)[0].innerText data})}example.pyfrom flask import Flask, request, jsonify, render_templatefrom fla…

折叠菜单,选择下拉(手风琴)

无聊,就自己写了一个手风琴的下拉菜单,写之前要介绍以下几个JQuery函数的用法: 1.children()方法 ,表示当前元素下的子元素,函数内可以有参数,参数为“子元素”的名称。 2.slideToggle()方法,在…

零窗口探测怎么抓包_万事俱备,只待“窗口”!航天任务中的重要环节:“发射窗口”!...

1999年11月20日06时30分07秒,神舟一号腾空而起,揭开了我国载人航天的华丽篇章。2003年10月15日09时00分00秒杨利伟驾乘神舟五号成功进入太空,我国成为了世界第三个自主探寻宇宙的人类国家。载人航天工程在过去的20年间一共发射了从神舟一号到…

【手把手教你树莓派3 (二)】 启动wifi模块

概述 树莓派3内置了wifi和蓝牙模块,我们不用像以前的版本那样,再去购买一个外接的模块练到raspberry上。 当我们第一次启动了树莓派的时候,必然使用了网线,但是之后的每一次使用,我们当然更希望使用wifi连接树莓派和路…

长方形与圆最近连线LISP_餐桌到底选方还是圆?可千万别买错了,今天我们好好聊聊...

最近我被所潜装修群里一则消息刷屏了,几个人你争我夺、言辞激烈,爬楼一看原来是纠结「餐桌选圆还是方」。要说我们中国人真的是什么都能纠结起来,今天我也给大家好好聊聊餐桌究竟该怎么选!1、方桌 VS 圆桌1.方桌的特点现代家庭方桌…

python 当前时间的前一天_python中time、datetime模块的使用

python中time、datetime模块的使用1、前言如果您从事过python web的开发,那一定有过这样的经历,对于各种复杂繁琐的业务逻辑,掺杂着各种各样的时间约束,让人很容易搞的头晕眼花,比如展示出一天内用户进行过的所有操作记…

mycat 分表子查询_还不懂MyCat?一文带你深入剖析,实现MySQL读写分离

前言系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中…

MySQL备份和还原数据库及慢查询日志使用

转载于:https://www.cnblogs.com/NiceTime/p/6665495.html

Oracle 11gR2 +sqldeveloper 安装过程(学习记录)

Oracle 11g 和SQL developer安装过程 一、Oracle 11g的安装 背景:由于课程学习需要Oracle 11g,但在Oracle官方网页(https://www.oracle.com/index.html)中没有直接找到Oracle 11的版本,所以自己在网上找到相关的压缩包进行的。 …

网线重新插拔后恢复正常_生活小窍门之网线不够长怎么办,毕亚兹网线连接器轻松搞定...

很多朋友在家中装修完时候,为了整齐和方便收纳都会把每个屋中的网口和光纤输出口集中到一起,放置到网络箱中,看起来更加整齐划一,但是装修时都不会考虑到网线要预留很长,很多时候都只留了很短的一节网线,还…

利用IDEA部署过的Tomcat开发Web Service

(1)使用idea开发一个Web Service; (2)开发一个客户端来调用该Web Service并展现出相应j结果; (3)编程调用网络上提供的天气预报Web Service并显示结果。 (1)开…

仅展示近三天的动态设置_抱歉,朋友仅展示最近三天的朋友圈

QQ空间可以封存; 微信朋友圈可以设置三天/半年可见; 微博可以设置半年内可见; 越来越多的人选择把自己的过去隐藏起来,为什么? 上了大学之后,你的微信好友变多了,连发传单的小哥和校门口理发店的…

wallpaper怎么导入视频_快速制作视频字幕,我们推荐这款可视化字幕软件!

大家平时在使用诸如pr,会声会影,或者爱剪辑等视频编辑软件制作字幕时会不会觉得很麻烦,一点都不方便呢?亦或是大家苦苦寻找,却怎么都找不到合适的字幕制作软件。那么到底有没有即高效又方便快捷的字幕制作软件呢&#…