20165315 第二周学习总结

本周学习中遇到的问题和解决过程

  • 在学习第二章的时候,我在输入课后练习3.(5)中的程序时,不理解为什么输出结果会是如图:

我认为应该输出的是40和20。

解决过程: 在仔细学习了有关数组的相关知识后,我认为问题就是理解b[0] = a;这一行代码的意思,这里不仅仅是将a这个数组的值赋给了数组b的第一行,而是在执行b[0][1]=b[1][3];这行代码时,和C语言不同,a数组的值也随之变化,从而a[1]的值变成了7。

  • 在编写第二章课后练习4.(1)时,我发现如何编译都报错(如图):

解决过程: 我使用的希腊字母是电脑自带的数学符号中找的,而这个版本的希腊字母实际上与Unicode中的希腊字母不同,故电脑无法在Unicode中找到识别,从而报错。我在网上找到正规的符号后复制粘贴到代码中,便可以正常编译运行了。

  • 在编写第三章课后练习4.(2)时,我发现无法调用C语言中的sqrt()函数

解决过程: 在网上查找后发现,在Java程序语言中,可以调用Math.sqrt()函数进行运算。

  • 在编写第三章课后练习4.(5)时,运行时发现结果总是不正确:

解决过程:
如图:

  • 在编写第三章课后练习4.(6)时,进行编译时总是出现如图问题:

解决过程: 经过检查发现,原来是少了一个右括号...编程的时候太不仔细了...

学习总结

在第二章第三章的学习中,我学到了许多全新的概念,比如:

  • 逻辑类型boolean
  • Java中没有无符号的byteshortintlong,即不能使用unsigned int m;等符号声明
  • Java中的char一定是无符号的,但是不能使用unsigned修饰
  • Java不可以在数组的方括号内指定数组元素的个数,且数组属于引用型变量,声明数组和创建数组可以一起完成:float boy[] = new float[4];
  • System.out.println(a);输出的是数组a全部元素的值,System.out.println(""+a)输出的是数组a的引用
  • 逻辑运算是先确定a的真值,而位运算是先确定a和b的真值,再比较
  • instanceof运算符:左面的操作元是一个对象,右面的是一个类,当左面的对象是右面的类或子类创建的对象是,运算结果为true,否则为false
  • switch语句中表达式的值可以是byteshortintchar型,但不可以是long型数据
  • JDK1.5对for语句的功能给予了扩充,以便更好地遍历数组:for(声明循环变量:数组的名字),这种表示方法可以理解为“对于循环变量依次取数组的每一个元素的值”
  • Scanner是JDK1.5新增的一个类,可以使用该类来创建一个对象:Scanner reader = new Scanner(System.in);,然后reader对象调用下列方法:nextBooleannextByte等等,在从键盘输入数据时,经常让reader对象先调用hasNextXXX()方法等待用户在键盘输入数据,然后再调用nextXXX()方法获取用户输入的数据

在本周敲打代码的过程中,我欣喜的发现我对Java语言更加熟悉了,已经能自行编写一些简单的代码,虽然在编写的过程中经常犯错,但我认为在接下来的学习过程中,我一定能有更大的进步。

脚本运行结果的截图

第二周查漏补缺

课下练习无答案,但是有不确定的题

表达式15&250的值为 
A . FF 
B . 0 
C . 255 
D . 1 

这道题我感觉没有正确选项,正确答案应该是10

下列说法正确的是 
A . Java语言有8种基本数据类型。 
B . 基本数据类型可分为逻辑类型、整数类型、字符类型、浮点类型。 
C . short和Float都属于基本数据类型。 
D . int a = 0144中的0144是十六进制表示法。

这道题的C选项中Float是可以通过编译且运行的:

所以我不确定Float究竟属不属于基本数据类型

在命令行输入“java demo 3”,下列程序的运行结果为
public class unsigned {
public static void main(String args[]) {
int i = Integer.parseInt(args[0]);
switch(i) {
case 1:System.out.println("Spring");break;
case 2:System.out.println("Summer");break;
case 3:System.out.println("Autumn");break;
case 4:System.out.println("Winter");break;
}
}
} 
A . Spring 
B . Summer 
C . Autumn 
D . Winter 

这道题我也不是很理解,在网上查询后得知int i = Integer.parseInt(args[0]);这句代码的意思是args[0]是java中启动参数的第一个值,在命令行通过键盘可以输入,parseInt(args[0])就是将数组里的第一个数据转换成int型,所以键盘输入的3就是第一个数据,i就等于3,不知道是不是这样理解的

表达式-2 >>> 1的值为 
A . 2^31 – 1 
B . 2^15 – 1 
C . 1 
D . -1 

这道题中>>>的意思是带符号右移,即从10000010变为01000001,结果为A

在出解析后我会认真学习,补上这些知识漏洞

posted on 2018-03-10 21:33  yh666  阅读(128)  评论(2编辑  收藏  举报