2016-2017-220155329 《Java程序设计》第8周学习总结
学号 2016-2017-220155329 《Java程序设计》第8周学习总结
教材学习内容总结
了解NIO
NIO使用频道来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记。对于区块标记,提供了clear()、rewind()、flip()、compact()等高级操作。
会使用Channel、Buffer与NIO2
- Buffer的直接子类们都有一个allocate()静态方法,可以让你指定Buffer容量,Buffer容量大小可使用capacity()方法取得,实际可读取或写入的数据界限索引值可以由limit()方法得知或设定,下一个可读取数据的位置索引值,可以使用position()方法得知或设定。
- NIO2文件系统API提供一组标准接口与类,应用程序开发者只要基于这些标准接口与类进行文件系统操作,底层事迹如何进行文件系统操作,是由文件系统提供者负责。
想要取得Channel的操作对象,可以使用Channels类,它定义了静态方法newChannel(),可以让你从InputStream、OutputStream分别建立ReadableByteChannel、WritableByteChannel,有些InputStream、OutputStream实例本身也有方法可以取得Channel实例,例如:FileInputSteam、FileOutputStream都有个getChannel()方法可以分别取得FileChannel实例。
会使用日志API、国际化
使用日志的起点是Logger类,要取得Logger类,必须使用Logger的静态方法getLogger(),Logger.log()方法可以用来输出信息。 默认的Logger还会记录时间、类、方法等信息,Logger是记录信息的起点,还会经过一些过滤才会输出信息,输出信息实际上是由Handler负责。
Logger有层级关系,每个Logger处理完自己的日志动作后,回想父Logger传播,让父Logger也可以处理日志
Logger与Handler预设都会先依Level过滤信息,如果没有做任何修改,取得的Logger实例之父Logger组态,就是Logger.GLOBAL_LOGGER_NAME名称空间Logger实例的组态,这个实例的Level设定为INFO,可通过Logger实例的getParent()取得父Logger实例,可通过getLevel()取得设定的Level实例。
在经过Logger过滤之后,还得再经过Handler的过滤,一个Logger可以拥有多个Handler,可通过Logger的addHandler()新增Handler实例。
教材学习中的问题和解决过程
- 问题1:NIO与IO的异同
- 问题1解决方案:传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数量小于连接数量,所以每个线程进行IO操作时就不能阻塞,如果阻塞的话,有些连接就得不到处理,NIO提供了这种非阻塞的能力。
- 问题2:java怎么将系统日志存到数据库?
- 问题2解决方案:http://blog.csdn.net/ziruobing/article/details/3919501在这篇博客中很详细的解答了这一问题
- ...
代码调试中的问题和解决过程
- 问题1:
- 问题1解决方案:
- 问题2:XXXXXX
- 问题2解决方案:XXXXXX
- ...
代码托http://git.oschina.net/管

上周考试错题总结
下面哪些Linux命令可以ASCII码和16进制单字节方法输出Hello.java的内容?(BC)
A .od -b -tx1 Hello.java
B .od -tcx1 Hello.java
C .od -tc -tx1 Hello.java
D .od -tbx1 Hello.java
JDK8 中新时间API中,用于度量时间的类有(BC)
A .Instant
B .Duratio
C .Period
D .LocalDateTime
分析此题由于看教材时仍然不够仔细,LocalDate的plusDays()、plusMonths()只是时间运算的一些常用指定方法,Duration类可用于计量天、时、分、秒的时间差,Period类可用于计算年、月、星期、日 、日期差
When applied to instance variables, the ________________ visibility modifier enforces encapsulation(当应用到实例变量时,____可见性修饰符强制执行封装).(D)
A .static
B .final
C .public
D .private
E .none of the above(以上都不是)
分析:私有可见性修饰符防范不适当的数据访问,因此促进封装。选择a和b是不可见性修饰符,选择c是一个可见性修饰符,允许公众访问一个对象的数据,这违背了封装的原则。
An object can be thought of as a blueprint for a set of classes(对象被认为是类集合的蓝图).(B)
A .true
B .false
分析:一个类可以被认为是一个蓝图一组对象,而不是相反。
vi中哪条命令是不保存强制退出?
答案:q!此外:wq 是保存退出。 !表示强制。
JDK8中的Lambda表达式有以下好处:
A .
消除重复性
B .
提高性能
C .
提高安全性
D .
改善可读性
答案:A、D,对12章的内容,没有足够的了解。
When applied to instance variables, the ________________ visibility modifier enforces encapsulation(当应用到实例变量时,____可见性修饰符强制执行封装).
A .
static
B .
final
C .
public
D .
private
E .
none of the above(以上都不是)
答案:D,专用的可见性修饰符防止不当的数据访问,因此促进封装。选择a和b不是可见性修饰符,而选择c是允许公众访问对象数据的可见性修饰符,这违反了封装的原则。
Which of the following method headers is most likely a header for a mutator method?(以下哪个方法头部最有可能是设值方法的头部?)
A .
public int getAge()
B .
public double computeSalary()
C .
public Person()
D .
public void setAge(int newAge)
E .
none of these are headers for a mutator method(以上均不是设值方法的头部)
答案:D,调整器是更改实例变量的值的方法,通常被称为setter。因此,选择d是正确的答案。选择a是访问者方法的标题的示例,通常称为“getter”。"选择c是构造函数,选择b是类方法."。
A method that has multiple definitions is an __________________ method(具有多重定义的方法称为方法___).
A .
overloaded(重载)
B .
overridden(重写)
C .
overlooked(忽略)
D .
overclocked(超频)
E .
none of the above(以上均不是)
答案:A,具有多个定义的方法是重载方法。重载方法的版本根据其参数的数量、类型和顺序来区分。重写的方法是在继承层次结构中后期重新定义的方法。稍后将更详细地研究它们。选择c和d不是Java中的方法类型。
When an object is passed to a method, the actual and formal parameters become aliases(当把对象传递给方法时,实参和形参互为别名).
A .
true
B .
false
答案:A,实际参数是发送到该方法的基准。方法定义中使用了正式参数。当对象发送到一个方法时,这两个值都是引用,它们成为彼此的别名。
结对及互评
评分标准
- 正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
- 模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
- 本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
- 其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
- 扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
- 迟交作业的扣至0分
点评模板:
- 博客中值得学习的或问题:
- 博客中提出的问题应该更深刻些
- 解决办法应该更详细些
- xxx
- ...
- 代码中值得学习的或问题:
- 备注一定要清晰
- 学会注释代码
- ...
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
点评过的同学博客和代码
- 本周结对学习情况
- 20155327李百乾
- 结对照片
- 结对学习内容
- 了解NIO
会使用Channel、Buffer与NIO2 - 会使用日志API、国际化
- 了解NIO
- 上周博客互评情况
其他(感悟、思考等,可选)
习惯了看完题目就编写代码,写完总是很多问题,改很久甚至有很多时候都改不出来。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 200/200 | 2/2 | 20/20 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:14小时
实际学习时间:19小时
改进情况:有进步
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
2016-2017-220155329 《Java程序设计》第8周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- mutex锁住共用线程函数 造成了死锁 ,为什么?
锁住共用的线程函数,为什么出现了死锁的现象,是真的死锁了吗?为什么勒[清晰早点] [逍遥游]# 一般都是用 EnterCriticalSection 和 LeaveCriticalSection 锁住 ...
- poj3608 Bridge Across Islands
地址:http://poj.org/problem?id=3608 题目: Bridge Across Islands Time Limit: 1000MS Memory Limit: 65536 ...
- 字王谈M1字形与个人云字库
字王谈M1字形与个人云字库 最近在忙网络项目,字库其实也没完全搁下,只是没有时间细大理,这些文字idea,来自近日和大梁先生的QQ聊天,虽然口语化很重,但觉得有些价值,作为blog发了 ----- ...
- PDO的三种连接数据库的方式
PDO的三种连接数据库的方式 PDO的出现是为了解决PHP与各个数据库的连接处理都有各自的函数的问题,它的高度抽象,使得使用起来极其的方便.由于最常用的搭配就是PHP+Mysql,所以这里就以连接 ...
- WebStorm下使用TypeScript
TypeScript也可使用Visual Studio 进行开发 TypeScript官网地址:(http://www.typescriptlang.org/) 1.先安装WebStorm WebSt ...
- 五,动态库(dll)的封装与使用
在项目开发中,我们经常会使用到动态库(dll),要么是使用别人的动态库,要么是将功能函数封装为动态库给别人用.那么如何封装和使用动态库呢?以下内容为你讲解. 1.动态库的封装 以vs2010为例,我们 ...
- Google V8 引擎 原理详解
V8 引擎概览 V8 引擎简介 Google V8 引擎使用 C++ 代码编写,实现了 ECMAScript 规范的第五版,可以运行在所有的主流 操作系统中,甚至可以运行在移动终端 ( 基于 ARM ...
- BZOJ 3676 【APIO2014】 回文串
题目链接:回文串 我终于也会回文自动机辣! 其实吗……我觉得回文自动机(听说这玩意儿叫\(PAM\))还是比较\(simple\)的……至少比\(SAM\)友善多了…… 所谓回文自动机,每个节点就代表 ...
- QWebEngineView_简单例子_01
工程名 : WebEngine01 1.WebEngine01.pro #------------------------------------------------- # # Project c ...
- 这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)
前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会 ...