20172308《程序设计与数据结构》第一周学习总结
学号20172308 2017-2018-2 《Java程序设计》第1周学习总结
教材学习内容总结
本周的课本预习内容主要在第一章的四五两节,通过课本和网上搜索大概了解了java的发展史、java的部分概念名词和语法结构。第一章的其它节没能好好预习。
教材学习中的问题和解决过程
- 问题1:写程序时什么时候换行,怎么判断换行?
- 问题1解决方案:通过教材后面的阅读:空白符对程序的执行没有影响,计算机会忽略。换行啥的是为了使程序可读易懂。
代码调试中的问题和解决过程
-
问题1:在第一次将程序上传码云的时候遇到如图情况
-
问题1解决方案:当时是跟着老师的博客步骤做的,一直很疑惑是哪里出了问题,后来通过百度和大量的尝试才明白一个问题:在码云新建过项目后复制链接到电脑本地git clone之后会在相应目录下自动创建一个和项目名称相同的目录,要进入项目名称目录下上传文件,git push才不会显示当前分支没有对应的上游分支,并且上传成功。
-
问题2:后来在多次上传文件成功,在新建的班级项目里上传了一个文件夹,将一个文件传了进去。但是在后来上传时又出现了上图下方提示的错误(忘记截图了,不过提示的错误是一样的)
-
问题2解决方案:在尝试多次还是不行之后,git pull也不行。我又上传了一个文件夹,将所有的课后习题成功传上去了(很奇怪,原因还不知道)
-
问题3:一个成功编译,却没有运行出预期结果的程序
-
问题3解决方案:歌词应该都对齐才对,原因还在思考。。。
代码托管
上周考试错题总结
- 错题1:
When executing a program, the processor reads each program instruction from (当执行一个程序时,处理器从___读取每个程序指令)
A .secondary memory (storage) (辅助存储器(存储))
B .the Internet (互联网)
C .registers stored in the processor (储存在处理器中的寄存器)
T D .main memory (主存储器)
F E .could be any of these (可以是以上这些中的任何一个)
原因:在执行程序之前,程序首先从次要内存加载到主内存中,这样处理器就不会因为读取每个指令而减慢速度。执行存储在内存中的程序的想法称为存储程序计算机,由John Von Neumann在20世纪40年代首创。 - 错题2:
Which memory capacity is the largest? (哪个选项的存储容量最大?)
A .1,500,000,000,000 bytes (1,500,000,000,000个字节)
B .100 gigabytes (100千兆字节)
C .3,500,000 kilobytes (3,500,000千字节)
F D .10 terabyte (10太字节)
T E .12,000,000 megabytes (12,000,000百万字节)
原因:1TB=10的40次方字节,当时找了一个单位最大的,没有仔细看选项,造成错误。
-错题3:
The ability to directly obtain a stored item by referencing its address is known as (通过引用地址直接获得存储项的能力被称为___)
T A .random access (随机存取)
B .sequential access (顺序存取)
C .read-only access (只读访问)
F D .fetch access (获取访问)
E .volatility (易变性)
原因:这个真不知道什么意思。随机访问的目的是传达这样一种观点,即访问任何项目都是一样容易的,而且任何项目都是基于它的地址来检索的。随机访问是RAM和ROM内存使用的访问形式。磁盘访问,称为直接访问,是一个类似的概念,直接和随机访问有时被称为同义词。连续访问被磁带使用。
-错题4:
It is important to dissect a problem into manageable pieces before trying to solve the problem because (试图解决问题之前,把一个问题分解成可控制的几部分是很重要的,因为)
T A .most problems are too complex to be solved as a single, large activity (大多数问题太复杂,以至于不能作为一个单独大型的活动来解决)
F B .most problems are solved by multiple people and it is easy to assign each piece to a separate person (大多数问题都是由很多人解决的而且把每一部分分配给不同的人是很容易的)
C .it is easier to integrate small pieces of a program into one program than it is to integrate one big chunk of code into one program (将程序的小部分整合到一个程序中比将一大块代码整合到一个程序中更容易)
D .our first solution may not solve the problem correctly (我们的第一个方案可能无法正确解决问题)
E .all of the above (以上皆是)
原因:任何有趣的问题都太复杂,不能简单地作为单一的活动来解决。通过分解问题,我们可以为每一块构建一个小的解决方案,然后整合各个部分。那为什么不选B嘞。
-错题5:
Java is an example of a(n) (Java是一个___的例子)
A .machine language (机器语言)
B .assembly language (汇编语言)
F C .high-level language (高级语言)
D .fourth generation language (第四代语言)
T E .both C and D (C和D都是)
原因:Java是在第四代创建的,但它显然也是一种高级语言。第四代语言是包在程序内部的工具,这样用户就可以灵活地编写从程序中执行的代码。这个书上好像没讲到Java是第四代的。
-错题6:
Comments should (注释应该)
A .rephrase the code it explains in English (用英语复述它解释的代码)
T B .be insightful and explain what the instruction's intention is ( 有深刻见解并解释指令的意图是什么)
C .only be included in code that is difficult to understand (仅仅包含在难以理解的代码中)
D .be used to define variables whose names are not easy to understand (被用于解释难以理解的变量名称)
FE .all of the above (以上皆是)
原因:注释不应该用英语重新表达一个指令的意思,而是应该解释这个指令与程序的关系 。介绍性的程序员通常很难解释他们的代码,并且在他们的评论中说明了显而易见的内容。虽然答案D是部分正确的,但并非所有的变量都应该有解释其使用的注释。
错题7:
The main method for a Java program is defined by (Java程序中的主方法是由___定义的)
A .public static main( )
FB .public static main(String[ ] args);
T C .public static main(String[ ] args)
D .private static main(String[ ] args)
E .the main method could be defined as in A, C or D but not B (主方法可以定义为A,C或者D,但不是B)
原因:A中,参数丢了。B中,语句末尾的分号是不允许的。D中,“private”而不是“public”将使程序不可执行,从而使定义变得毫无意义。
错题8:
Which of the following is a legal Java identifier? (下面哪个是合法的Java标识符?)
T A .i
F B .class
C .ilikeclass!
D .idon'tlikeclass
E .i-like-class
原因:Java标识符不能有“!”。“类”在Java中是一个保留字,不能用作标识符。标识符“i”是完全合法的,尽管它不一定是一个好的标识符,因为它不是描述它的使用。
错题9:
Which of the following is true regarding Java syntax and semantics? (关于Java的语法和语义,下列哪一项是正确的?)
T A .a Java compiler can determine if you have followed proper syntax but not proper semantics (Java编译器可以判定你是否遵循正确的语法,但不能判定正确的语义)
B .a Java compiler can determine if you have followed proper semantics but not proper syntax (Java编译器可以判定你是否遵循正确的语义,但不能判定正确的语法)
F C .a Java compiler can determine if you have followed both proper syntax and semantics (Java编译器可以判定你是否遵循正确的语义和语法)
D .a Java compiler cannot determine if you have followed either proper syntax or semantics (Java编译器不能判定你是否遵循正确的语义或语法)
E .a Java compiler can determine if you have followed proper syntax and can determine if you have followed proper semantics if you follow the Java naming convention rules (如果你遵循Java的命名规范,Java编译器就可以判定你是否遵循正确的语法,并且可以判定你是否遵循正确的语义)
原因:所有语言的编译器都有检测语法错误的能力,因为语法错误的使用会导致编译器无法正确地翻译代码。然而,编译器无法遵循程序的语义,因为这需要一定程度的理解程序要做什么,而计算机没有理解的意义(至少在这一点上)。
错题10:
Following Java naming convention, which of the following would be the best name for a class about store customers? (下列Java命名规范中,哪个是关于“store customers”类的最佳命名?)
TA .StoreCustomer
B .Store Customer
FC .storeCustomer
D .STORE_CUSTOMER
E .Store-Customer
原因:Java命名约定表明,类应该以大写字母开头,多字名称应该以大写字母开头,而其余字符为小写字母。单词应该连接在一起而没有空格,或者与“_”字符连接。答案B和E不是合法的名称,并且使用Java命名约定,C可以作为一个变量名,D是一个常量。
错题11:
Which of the following characters does not need to have an associated "closing" character in a Java program? (在一个Java程序中,下面哪个字符不需要有与之相关的“结尾”字符?)
A .{
B .(
C .[
TD .<
FE .all of these require closing characters (以上都需要结尾字符)
原因:{用于打开一个块,因此}需要关闭该块。(用于打开表达式,因此)需要关闭表达式。[用于启动数组索引,因此]需要关闭数组索引。< is“小于”,>“大于”,这些不需要在一起,所以<不需要关闭字符。
错题12:
Java byte codes are directly executable whereas Java source code is not. (Java字节码是可以直接执行的,而Java源代码则不是。)
FA .true
TB .false
原因:Java源代码和Java字节码都不是可执行的。两者都必须被编译或解释为机器代码。Java字节码是有用的,但是它们是独立于机器的但是半编译的代码,它允许您的Java代码通过Internet传输并在另一台计算机上执行,即使其他计算机是完全不同的类型。
其他(感悟、思考等)
1.在寒假作业三中发现的关于mv命令的使用,在写程序的过程中发现如果是要移动文件,是要把具体的要移动到的目录的绝对路径写在要移动的文件后面,与有无后缀无关,至少在我尝试之下是这样的,有无后缀都只能用的重命名命令,与学长说的有点出入。
2.对这几天来的java学习,发现入门还是挺难的。linux的命令啊,vim的使用,有很多要记的东西。不过从内心还是很期待接下来的学习
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 309/200 | 1/2 | xx/20 |
-
计划学习时间:XX小时
-
实际学习时间:XX小时
具体时间没有统计过,不过每天都有在学习java,应该是花了很多时间的。入门很重要的,我认为是。
参考资料
- 《Java学习笔记(第8版)》学习指导
- 百度百科
- 其他大神的博客