• 20165315 第二周学习总结


    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

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

  • 相关阅读:
    codeforce1028A Find Square
    2018ccpc网络赛 Buy and Resell
    差分约束
    Lost Cows
    动态查询区间第k大
    疫情控制
    天天爱跑步
    次小生成树
    树上差分闇の連锁
    Stars in Your Window
  • 原文地址:https://www.cnblogs.com/yh666/p/8542160.html
Copyright © 2020-2023  润新知