20145206 《Java程序设计》第2周学习总结

教材学习内容总结

一、类型

  1. Java可区分为基本类型和类类型两大类型系统,其中,类类型也称为参考类型。
  2. 在Java中的基本类型主要可区分为整数、字节、浮点数、字符与布尔。整数:可细分为short 整数(占两字节)、int 整数(占4字节)与long整数(占8字节);字节:byte类型顾名思义,长度就是一字节,若用于表示整数,byte可表示-128~127的整数;浮点数:主要用来储存小数数值,可分为float浮点数(占4字节)与double浮点数(占8字节);字符:每个字符类型占2字节,汉字字符与英文字符在Java中同样都是用双字节储存;布尔:boolean类型可表示true与false,分别代表逻辑的“真”与“假”
  3. 批注问题:单行批注“//”;多行批注“/”与“/”。
  4. System.out.println(),这会在标准输出中显示文字后换行,如果使用System.out.print()则输出文字后不会换行,其中f就是format的意思,也就是格式化。

二、变量

  1. 基本规则:变量在命名时有一些规则,它不可以使用数字作为开头,也不可以使用一些特殊字符;而变量名称不可以与Java的关键字同名,也不可以与Java保留字同名;命名习惯,通常会以小写字母开始,并在每个单字开始时第一个字母使用大写,这种命名方法称为驼峰式命名法。在Java中,不可以声明局部变量后未指定任何值给它之前就使用变量;如果在指定变量值之后,就不想再改变变量值,可以在声明变量时加上final限定。
  2. 字面变量:在Java中写下一个值,该值称为字面常数;要表示字符的话,必须使用“'”符号括住字符。
  3. 数字常量表示法:有时候,想要以二进制方式表示某个值,则可以用0b作为开头。

三、运算符

  1. 算数运算:“+、-、*、/”;模数运算符:%;算数运算符使用上与学过的加减乘除一样,也是先乘除后加减。
  2. 比较、条件运算:“>、>=、<、<=、==、!=",比较条件成立时以boolean类型true表示,比较条件不成立时以false表示。条件运算符:条件式?成立返回值:失败返回值。
  3. 逻辑运算:“&&、||、!”&&与||有所谓快捷方式运算:只要左操作数评估为false,就会直接返回false,对||来说,只要左操作数评估为true,就会直接返回true,就不会再去运算右操作数。
  4. 位运算:“&、|、^、~”“<<、>>"左移被挤出去的位会被丢弃,右边补0;右移被挤出去的位会被丢弃,如果左边原来是什么就补什么;“>>>”这个运算符在右移后,最左边一定补0.
  5. 递增、递减运算:将++或——写在变量前,表示先将变量值加或减一,再返回变量值;将++或--写在变量后,表示先返回变量值再对变量加或减一。
  6. 指定运算:“+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>="

四、类型转换

整数中默认类型为int型;小数中默认类型为double型;如果表达式中包括不同类型数值,则运算时以长度最长的类型为主,其他数值自动提升类型。

五、if...else条件式、switch条件式、for循环、while循环、break、continue

这一部分在C语言学习时就已经了解,在这里只总结一下自认为不太熟悉的知识点。

switch在效率上比if...else要好;for循环中,在一个描述区块中若想写两个以上的描述语句,则使用逗号做分隔;do...while:后测试循环;break与continue还可以配合标签使用。

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

问题一:在视频学习中,发现有这样一段代码:System.out.println(60);运行结果是打印出60这个数字,于是产生困惑,为什么不用加双引号呢?就像System.out.println(“Hello World"); 解决过程:问了一些同学,但现在还没有明确的解释。

问题二:byte b=2;这个赋值语句,2默认为int型,按理来说不能赋值给byte型啊,这样会丢失精度的。 解决过程:看了视频,觉得了解一些,但对类型转换这方面还是有些不熟练,需要继续巩固。

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

在IDE中进行书上代码调试:

代码一:

代码二:

代码三:

总结:其中第三个代码要特别注意空格问题,之前由于没有注意这个问题导致运行了很多次,出现的效果都连在一起,无法分辨每一个的结果,后来经过调整成功了。

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

本章的学习感觉虽然知识点较多,比较琐碎,但内容还是比较简单的,很多知识在学习C语言时就已经掌握了,比起第一二章抽象的东西觉得第三章比较容易理解,但还是有一些小的知识点理解的不够透彻,比如说类型转换,比如说break与continue还可以配合标签使用,还需要多花时间在这上面,毕竟本章的内容是基础,学好基本语法才能在以后的学习中不吃力。

课后练习题:

操作题1:

public class Zuida {
    public static void main(String[] args) {
        int m=1000,n=495,i;
        for(i=n;i>=1;i--)
        {
            if(m%i==0&&n%i==0)
                break;
        }
        System.out.println(i);
    }
}



运行结果:

操作题2:
public class amu {
    public static void main(String[] args) {
        int i,m,n,p,q,w;
        for(i=100;i<=999;i++) {
            m = i % 10;
            n = (i - m) % 100;
            p = (i - m - n) % 1000;
            q=n/10;
            w=p/100;
            if (m * m * m + q*q*q + w*w*w == i)
                System.out.println(i);
        }
    }
}

运行结果:

总结:第一个操作题因为在C语言时就已经练习编写过,所以容易一些;在进行第二个操作题时,在分离百位、十位、个位时出错,导致运行不出结果,后来经过修改成功执行。

托管代码:

 

学习进度条

 

 代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标 5000行 30篇 400小时  
第一周 100/100 1/2 10/15 编译helloworld程序
第二周 100/200 2/4 15/30 会使用IDE并成功运行代码

参考资料

posted on 2016-03-13 17:36  20145206邹京儒  阅读(224)  评论(14编辑  收藏  举报