20155325 2016-2017-2 《Java程序设计》第九周学习总结
教材学习内容总结
SRP高内聚
开发工作原则:对扩充开发,对修改封闭。(对模块的行为可以扩充;模块的源代码不可更改)
OO设计
依赖倒置原则:高层模块不依赖于
Linux视频笔记
- 安装时的说明(非ubuntu)
Java视频笔记
命令行运行程序
- public
对于以下代码
class Demo
{
public static void main(String[] args)
{
System.out.println("Hello,little box!");
}
}
在class前加了public后,类名和Java文件名一致。
参考:视频day1-7
- 漏写东西
- 主函数名输错
设置环境变量
- 在别的地方执行Java程序
所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改。
原理:当执行Demo时,Java命令启动虚拟机,虚拟机先从classpath路径下寻找Demo,如果已经有了就执行。虚拟机先找环境变量再找当前目录。故,就算两者有同名程序也会先找classpath的。
- 配置classpath时最后一个字符如果是分号,表示在classpath所指的路径下找不到目标文件时再在当前路径下再找一次。如果没有分号,则仅在classpath所指的路径下寻找。
eg.
set classpath=c:\;d:\
//在C盘下寻找,如果没找到,再在D盘下寻找
set classpath=.;c:\;d:\
//"."本身就代表当前路径,所以一行的意思是:现在当前路径下找一次(输入此命令行时的路径),然后是按照套路找后面的。
set path=.;c:\;d:\;%path%
//在原基础上添加路径
此修改环境变量是指用现在的内容去覆盖以前的内容
set classpath=
表示对环境变量清空
再用
set classpath
查看时就会发现“环境变量classpath没有定义”
- 如果是可执行文件,用path,如果是java文件,用classpath。
path是先找当前路径
以上只是临时配置的,如果想要一劳永逸,则参考:
如何配置环境变量Windows10
参考:视频day1-8至day1-9;
Windows 如何在cmd命令行中查看、修改、删除与添加环境变量;
语法
- 标识符
1.由大小写英文字母 数字0-9 _ $
2.不可以数字开头
3.不可使用关键字(main虽然不是关键字,但却是被虚拟机识别的一个名称)
十六进制以0x开头
变量与常量
输出(println)
public class shuChu {
public static void main(String[] args) {
int a = 3,b;
b = a++;
System.out.println("a="+a+"\n"+"b="+b);
/*输出:
a=4
b=3
*/
System.out.println("5+5"+5+5);
// + 相当于连接符
//输出: 5+555 因为相当于“5+5”用+与第三个5连接
System.out.println("5+5="+(5+5));
//输出: 5+5=10
}
}
学至:视频day2-10;
教材学习中的问题和解决过程
说明:以我个人的能力,我再之前的学习方式实在是不可行了。故此调整学习顺序,我重头开始学习Java。这一次以看视频为主(从以前老师发的链接里翻到的视频--传智播客_Java培训_毕向东_Java基础,如果一时翻不到资源的同学可以找我拷哟~)
感谢老师给我们提供了很多全面的学习资料!!!
- 问题1:在临时设置环境变量时如何删除其中个别环境变量
- 问题1解决方案:并未查到直接删除某一项的功能,但是想到了一个折中的办法。先将目前的某环境变量比如path显示出来,然后复制下来,手动修改,再拿这个版本进行重写(set),这样不仅可以删除,还可以调整顺序,在不同地方进行改写。
- 问题2:配置环境变量时,如果地址改变,就需要再去重新在诸多路径里找到其中的并修改,有些麻烦并且容易出错,有什么好办法吗?
- 问题2解决方案:
将路径中容易改变的部分提取出变成一个新的环境变量,比如叫haha,
用%haha%动态地获取haha的值,以后修改该haha的值就行。
参考:视频day1-5
代码调试中的问题和解决过程
问题1:
课上的编程:
问题1解决方案:
ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
于是我算了一下,把下标修改正确了。
不过在搜索的时候还是不大明白“ArrayIndexOutOfBoundsException:”后面的8是啥意思。然后我的阅读理解小能手-结对小伙伴发现:那个数字代表数组长度。
问题2:在我更新了虚拟机之后,我的Windows下的idea竟然出现了无法git commit
问题2解决方案:
然后我想重新配置一下码云的地址重来,结果弄错成了clone……只好重走一遍,没想到我在自己常用的2号项目上操作的,结果把代码都clone到了之前废弃的1号项目里,两个项目名称只有5325后面下划线的长度的区别
然后我重新把整个一套程序又走了一遍,重新配置各种……
测试与码云的连接性, 在码云上推成功了
我尝试运行程序,显示:
找不到或无法加载主类
将JDK SDK都配置过也是无用,故在命令行运行了一遍
出现了无法加载主类和编码错误
无奈的我想打开原来的项目去看看我之前的怎么配置来着。
我的直觉告诉我要再测一次能不能commit,于是我这么做了
确实能commit,但是……出现了这个,场面一度十分的尴尬……
吓得我搜到了一波资料:
Git Community Book 中文版
于是我选择了Merge
后来这个程序就多了一些后缀
将后缀删去,重新push一遍,成功,但是,红色标识所处与之前接触到的不同,并且无法添写,只能加个回车啥的。
后来由“光标问题”搜到了受不了了,intellij idea 光标问题 求解决。
原来我的问题是:insert-改写模式,再次点击了Insert键就恢复了,这种模式让我想起了vim,结果真的有ideavim这种东西……惊!
IdeaVim插件使用技巧;IDEA Intellij小技巧和插件
代码托管
(statistics.sh脚本的运行结果截图)
Chmod +x statistics
./statistics
上周考试错题总结
1.Linux中获取当前路径的绝对路径的命令是()?
A .
cd
B .
passwd
C .
tree
D .
pwd
答案:D
解析:使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录(注意,我们上一节介绍过的,以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件), - 表示上一次所在目录,~ 通常表示当前用户的 home 目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
passwd 修改用户登录口令,tree给出目录树结构。
2.NIO2中,可以使用()中的方法取出文件系统根目录信息。
A .
Path
B .
DirectoryStream
C .
FileStore
D .
FileSystem
答案:D
解析:FileSystem的getRootDirectorie方法
3.正则表达式”(‘|”)(.*?)\1”匹配 “'Hello',"World””的结果是()
A .
不匹配
B .
'Hello'
C .
"World"
D .
'Hello',"World"
答案:BCD
解析:反向引用 \1 代表第一个()中的匹配内容
4.abc? 匹配( )
A .
ab
B .
abc
C .
abcc
D .
abccc
答案:AB
解析: ? 重复0或1次……
5.正则表达式 zo* 匹配()
A .
z
B .
zo
C .
zoo
D .
zooooooooooooooooooooooooooo
答案:ABCD
解析:* 可以是0次
6.正则表达式“r.t”匹配字符串“rat”的Java 代码表达式是()
A .
"rat".matcher("r.t")
B .
"r.t".matcher("rat")
C .
Pattern.compile("rat").matcher("r.t")
D .
Pattern.compile("r.t").matcher("rat")
答案:D
解析:p491
7.要使Logger日志输出到控制台,需要使用()类
A .
Handler
B .
ConsoleHandle
C .
StreamHandler
D .
FileHandler
答案:B
解析:p475
8.可以通过Logger logger = new Logger(); 来产生Logger对象。
A .
True
B .
False
答案:B(当时手抽点错了)
9.Date 的 API 有许多方法都不再建议使用,应改用哪个类别的相关方法取
代?
空白部份指定哪些型态可以通过编译?
A .
DateFormat
B .
TimeStamp
C .
Time
D .
Calendar
答案:D
10.Suppose we have an array of String objects identified by the variable names. Which of the following for loops will not correctly process each element in the array.(假如我们有一个名为names的String对象数组,下面哪个for循环不能遍历数组中的每一个元素?)
A .
for(int i = 0; i < names.length; i++)
B .
for(String name : names)
C .
for(int i = 0; i < names.length(); i++)
D .
none of these will correctly process each element(以上都不能遍历)
E .
all of these will correctly process each element(以上都能遍历)
答案:C
解析:由于语法错误,选择C不会正确处理每个元素。长度变量不是一个方法,因此在它后面没有括号。选择B是使用foreach循环来处理数组的例子,和选择是一个正确的循环
11.Which of the following array declarations are invalid? (下面哪个数组声明是不合法的)
A .
int[] grades = new int[5];
B .
int grades[] = new int[5];
C .
int[] grades = { 91, 83, 42, 100, 77 };
D .
all of the above are valid(以上三个都合法)
E .
none of the above are valid(以上三个都不合法)
答案:D
解析:所有这三个都是有效的数组声明。选择B使用另一种语法。选择C使用初始化列表初始化数组。
12.In Java, array indexes always begin at ________________ .(Java中,数组索引从______开始)
A .
-1
B .
0
C .
1
D .
2
E .
you can declare an array to have any indexes you choose(可以任意指定)
答案:B
结对及互评
评分标准
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
- 迟交作业的扣至0分
点评模板:
博客中值得学习的或问题:
- xxx
- xxx
- ...
代码中值得学习的或问题:
- xxx
- xxx
- ...
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
点评过的同学博客和代码
- 本周结对学习情况
- 20155328
- 结对照片
- 结对学习内容
- 第二次实验时遇到有疑惑时互相尽力解答,以及分享StarUML教程;
- 课本第十六、十七、十八章
其他(感悟、思考等,可选)
一
我觉得这学期的学习非常锻炼我的心智。
开始学习的时候感觉像是走在悬崖上的无数玻璃栈道的其中一条上,脚下空空,前路茫茫,抬头一看,没有方向。花很多时间艰难地学习了学习指导,看了书,敲了代码,但是考得一塌糊涂。想想到底也是我学习方法的不对,调整了学习方式,不变的是糟糕的“什么都不会,考到的都迷茫”极度不踏实感。
后来有好多周,几乎每周都有非常耗时间的工作,我身心疲惫,更不愿面对Java了。
我必须直面自己的懦弱,承受长时间消极给我带来的后果。
坦言,就我个人情况而言,目前的学习状况只因我个人。老师尽心尽力,我却做不到踏踏实实。
对我自己的学习弱点进行以下分析:
- 看书学习能力太弱,经常性的看不懂,理解错误。
- 认为对知识的掌握程度和实际对知识的掌握程度相差太远。(以为会了实际并不牢靠)
- 动手操作能力不足。
目前想到的解决方案:
- 因为时间紧迫,我选择放弃以书为主的学习方式,选择以看视频为主的学习方式,尽快掌握知识。但是可能就无法跟上考试的考点,成绩依旧会一塌糊涂,但是我目前最想的是先一点点掌握牢靠知识,应该到后期就会好很多。(一切都是自己作的死)
- 我能怎么办,只能笨鸟勤飞啊。幸运的是老师提供的和网上的资料挺多的。
其实我最讨厌的,是不优秀的自己。
二
经过很长时间的情绪病期之后,豁然间变得迷之容易开心,迷之积极。
冷静地思考了一段时间,看清了些,也放下了很多东西。
回过头来想想,朋友们是多么温柔、耐心又热心。以前在抱大腿的时候因为自己的无能耽误了他们那么多精力与时间,很愧疚,却傻傻地不知道如何是好。
我总是注意到很多不该注意的东西,等到对于主要的东西就没有足够的力气了。
如果自己也能成为靠谱的大神的话,就有能力去助一臂之力了吧。
温柔与美色不可辜负啊。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 16篇 | 400小时 | |
第一周 | 9/9 | 1/1 | 19/19 | 熟练下载安装技能,锻炼解决问题能力 |
第二周 | 185/194 | 1/2 | 16/35 | 下载并熟悉IDEA,练习使用码云、git的技能。 |
第三周 | 488/535 | 1/3 | 18/53 | 花了更少时间磨合软件,学习更顺利 |
第四周 | 366/901 | 2/5 | 18/71 | 继承、多态、行为 |
第五周 | 611/1512 | 1/6 | 14/67 | 异常处理、Collection与Map |
第六周 | 337/1849 | 1/7 | 16/73 | 输入与输出、线程与并行API |
第七周 | 459/2308 | 2/9 | 15/88 | Lambda、时间与日期 |
第八周 | 554/2862 | 1/10 | 16/104 | NIO与NIO2&通用API |
第九周 | 484/3346 | 2/12 | 32/135 | 从头开始 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:20小时
实际学习时间:32小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
20155325 2016-2017-2 《Java程序设计》第九周学习总结的更多相关文章
- 201521123027 <java程序设计>第九周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什 ...
- 20145220java程序设计第九周学习总结
20145220java程序设计第九周学习总结 教材学习内容总结 JBDC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商对接口直接操作,开发人员无须接触底层数据可驱动程序的差异 ...
- 201771010134杨其菊《面向对象程序设计java》第九周学习总结
第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...
- 201521044152<java程序设计>第一周学习总结
本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
- 马凯军201771010116《面向对象与程序设计Java》第九周学习总结
一.理论知识部分 异常.日志.断言和调试 1.异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行. 2.Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置. 3 ...
- 201521123063 JAVA程序设计 第二周学习总结
1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...
- 《Java》第九周学习总结
下载mysql 选择mysql的管理软件 idea可以直接连接 然后用库运行程序,但是没有截图,,因为想在navicat上试试,可惜速度太慢了 打开idea又很慢,所以明天再更新
随机推荐
- 四、并行编程 - 并行LINQ(PLINQ) 的使用。AsParallel
用于对内存中的数据做并行运算,也就是说其只支持 LINQ to Object 的并行运算 一.AsParallel(并行化) 就是在集合后加个AsParallel(). 例如: , ); == ); ...
- 021.2 IO流——字节输出流
内容:流的分类,文件写入(字节输出流),异常处理,获取一个文件夹下的特定文件集合 字节流的抽象基类:InputStream,OutputStream字符流的抽象基类:Reader,Writer由这四个 ...
- css3—产品列表之鼠标滑过效果
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8" /> <title&g ...
- Codeforces441A_Valera and Antique Items(水题)
Valera and Antique Items time limit per test 1 second memory limit per test 256 megabytes input stan ...
- xgboost和gbdt区别
1. xgboost在目标函数中加入了正则化项,当正则化项为0时与传统的GDBT的目标函数相同2. xgboost在迭代优化的时候使用了目标函数的泰勒展开的二阶近似,paper中说能加快优化的过程!! ...
- Mac OS X文件系统的附加属性@如何彻底删除
有时候在 Mac 系统下读写 NTFS 分区时,会发现一些文件不能打开. 显示错误为: 项目“XXX”已被 OS X 使用,不能打开. 如果再终端 ls -al 命令一下就可以看到: -rwxr-xr ...
- ACM-SG函数之S-Nim——hdu1536 hdu1944 poj2960
S-Nim Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- linux内存管理--用户空间和内核空间
关于虚拟内存有三点需要注意: 4G的进程地址空间被人为的分为两个部分--用户空间与内核空间.用户空间从0到3G(0xc0000000),内核空间占据3G到4G.用户进程通常情况下只能访问用户空间的虚拟 ...
- Microsoft Visio / Project professional 2013 官方版本(下载)
Microsoft Visio微软开发的一款软件, 它有助于 IT 和商务专业人员轻松地可视化.分析和交流复杂信息. 它能够将难以理解的复杂文本和表格转换为一目了然的 Visio 图表. 该软件通过创 ...
- docker 导出导入
容器导出 docker export -o myname.tar 容器id 容器导人 docker import myname.tar httpd:v1