20****** 2019-2020-1 《数据结构与面向对象程序设计》第2,3周学习总结

20****** 2019-2020-1 《数据结构与面向对象程序设计》第2,3周学习总结

教材学习内容总结

第二章:

  • System.out.Printf&Println两种输出方法。

    • Printf(避免使用)&Print输出信息之后不换行,Println输出信息之后会将光标移动至下一行。
  • 字符串连接格式:

    • "String"+number+"String";
  • 转义字符:

转义字符 |含义
---|---|---
\b| 回退键
\t| 制表符
\n | 换行
\r | 回车
" | 双引号
' | 单引号
\ \ | 反斜杠

  • Java是强类型语言,意味着不允许将与变量声明的类型不一致的值赋值给该变量。会编译错误。

  • 基本数据类型:
    类型 | 存储空间
    ---|---
    byte | 8位
    short | 16位
    int | 32位
    long | 64位
    float | 32位
    double | 64位

  • 字符数据的表示:

    • Java使用16位Unicode字符集表示字符数据。
      第三章:
  • new运算符返回新创建对象的引用。

  • String类方法部分记录:

    • String (String str)
      • 构造方法:用字符串str创建一个新的字符串对象。
    • char charAt (int index)
      • 返回位于指定index处的字符。
    • int compareTo (String str)
      • 根据字符串与str按字典序的相互次序返回一个整数值。如果该字符排在str之前,则返回负值;相等,则返回0;排在str之后则返回正值。
    • String concat (String str)
      • 将str连接在该字符串后,返回得到的这个新字符串。
  • 类库是一组支持程序开发的类,开发程序时类库非常有用,Java标准类库按包来组织。

  • Radom类:

    • Radom()
      • 构造方法:创建一个新的伪随机数生成器。
    • float nextfloat()
      • 返回0.0(含)~1.0(不含)之间的一个随机数。
    • int nextInt()
      • 返回int 类型范围(正数和负数)内的一个随机数。
    • int nextInt(int num)
      • 返回0~num-1之间的一个随机数。

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

  • NEW运算符的作用?
    • 解决:new 关键字用来在堆中申请空间,举例:
String str;

定义一个String类型的引用,但它只是一个引用,并没有实际在堆中分配空间,但使用如下代码时:

str = new String("Hello!");

就在堆中分配了空间。

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

  • 问题1:如何实现在字符串中截取至对应字符:
    • 解决方案:使用(.substring即可)
public static void main(String[] args) {
String str= "13:20.54";
int s = str.indexOf(":");
int l = str.indexOf(".");
System.out.println(str.substring(s+1, l));
} 

代码托管

上周考试错题总结

  1. Consider the following statement:

    System.out.println("1 big bad wolf\t8 the 3 little pigs\n4 dinner\r2night");

    This statement will output ________ lines of text (思考下面的语句,该语句将输出___行文本)
正确答案:2行

解析:

  • \ t转义字符插入一个制表符,但将光标留在同一行。
  • \ n转义序列导致产生新行,以便在下一行输出“ 4 Dinner”。
  • \ r使光标移回到左边界,没有开始新的行。所以在“ 4 dinn”上输出“ 2night”,从而导致第二行看起来像“ 2nighter”。
  1. The word println is a(n) (单词println是一个)
正确答案:A .method (方法) 

解析:

  • 类只是代码的组织结构,代码的执行是以方法为基础的。一个一个方法的执行。类是无法独立执行的。
  • java创建一个类,内部包含属性、静态块、构造器以及函数。
    System.out.println()不是这四种,方法可以运行在静态块、构造器以及函数中。
  1. Of the following types, which one cannot store a numeric value? (在下列数据类型中,哪一个不能存储一个数值型数据?)
正确答案:char

解析:

int和byte用于存储整数,float用于存储实数或浮点值(带小数点的值)。char存储单个字符,包括字母、标点符号和数字。然而,存储数字“5”不同于存储数字5。

4.What value will z have if we execute the following assignment statement? float z = 5 / 10; (如果我们执行下面的赋值语句,得到的z将会是什么值?)

A .z will equal 0.0 (z将等于0.0)

解析:

5和10都是整数值,所以5 / 10是整数除法。结果是0。尽管z是一个浮点数,并且可以存储实际的答案0.5,但是由于整数除法,它只得到0。为了得到0.5,我们必须先将5或10转换为浮点数。

5.A cast is required in which of the following situations? (下列哪种情况需要强制转换?)


storing a float in an int (将一个float类型的数存储为int类型)

6.What is output with the statement System.out.println(x+y); if x and y are int values where x=10 and y=5? (如果x和y是int类型的数值,x=10,y=5,那么语句System.out.println(x+y);的输出是什么?)

正确答案:15

7.What is output with the statement System.out.println(""+x+y); if x and y are int values where x=10 and y=5? (如果x和y是int类型的数值,x=10,y=5,那么语句System.out.println(""+x+y);的输出是什么?)

正确答案: 105

8.Java is a strongly typed language. What is meant by "strongly typed"? (Java是一种强类型语言。“强类型”指的是什么?)

解析:

强类型是一种编程语言的属性,在这种语言中,变量的类型在变量存在期间不会改变,并且该变量中存储的任何值都是该类型的。强类型之所以重要,是因为它确保成功编译的程序不会出现与声明的变量类型滥用相关的运行时错误。

每个变量都有一个与之关联的类型,而变量只能存储该类型的值

9.In order to compare int, float and double variables, you can use <, >, ==, !=, <=, >=, but to compare char and String variables, you must use compareTo( ), equals( ) and equalsIgnoreCase( ).

正确答案: false

解析:可以使用<、>、==、!=、<=、>=直接比较char变量,但是必须使用compareTo()、equals()和equalsIgnoreCase()来比较任何字符串compare .float。

反思:

Java虽然“去掉”了C语言令人厌恶的指针,但是我认为事实上Java处处充满了指针。我们定义任何非基本数据类型时,都是定义了一个指针(尽管在Java中官方称呼是“引用”)。例如:
String s;事实上就是定义了一个指针,Java虚拟机为它在栈中分配一个空间,其实是一个固定长度的地址,如果没有初始化,它的值将是一个特殊的指向null的地址。

结对及互评

点评

  • 博客中值得学习的:
    • 教材学习内容概括行强,简介明了。
    • 有自己动手打新代码,加入了很多个人的理解。
    • 内容很充实,很用心,比上次进步了很多。
    • 博客格式正确,运用了很多不同的方法,排版精美。
    • 希望能在课本内容总结以及问题&解决过程中加入自己的思考,使博客内容更加充实。
      基于评分标准,我给本博客打分12分:
      得分情况如下:
      正确使用Markdown语法(加1分)
      模板中的要素齐全(加1分)
      教材学习中的问题和解决过程(加2分)
      代码调试中的问题和解决过程(加2分)
      其他加分(加6分)
      进度条中记录学习时间与改进情况(1)
      感想,体会不假大空(1)
      有动手写新代码(1)
      错题学习深入(1)
      点评认真,能指出博客和代码中的问题(1)
      结对学习情况真实可信(1)

点评过的同学博客和代码

  • 本周结对学习情况:

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

本周有点拖节奏,老师布置的作业虽然完成了但是由于疏忽导致作业没有及时交上,下次注意。

ㅤ| 代码行数(新增/累积) | 博客量(新增/累积)|学习时间(新增/累积)|重要成长

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第一周 138/138 2/2 23/23 减少了鼠标的使用次数
第二周 749/887 1/4 25/48 对JAVA感触加深
第三周 765/1652 1/4 25/48 对JAVA感触加深

参考资料

posted on 2019-09-22 22:28  Mr.Stark丿  阅读(219)  评论(2编辑  收藏  举报