zoukankan      html  css  js  c++  java
  • 20145208《Java程序设计》第2周学习总结

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

    教材学习内容总结

    • 本章内容主要讲了类型、变量与运算符的一些知识,也讲了一些基本的流程语法。

    类型

    基本类型

    • 整数:short整数(占2字节),int整数(占4字节),long整数(占8字节)。
    • 字节:byte类型--用于逐字处理数据。
    • 浮点数:用于储存小数数值。分为float类型(4字节)和double类型(8字节)。
    • 字符:char类型(2字节)。
    • 布尔:只有true和false,表示真假逻辑。

    类类型是第四章讲的内容,我在本周没有进行深入的学习

    • 学到这里我已经发现,JAVA语言的数据类型大体上了C语言一样,这为我学习JAVA更添了一份信心。

    注释

    注释的意义

    • 在视频的学习中和老师的学习指导博客中,我也意识到了注释的重要性。注释是帮助别人理解程序,增强我所编写的程序的可读性,最好的程序和最差的程序都是不用注释的。

    注释的方法

    • 单行注释://注释内容。
    • 多行注释:/* 注释内容 */
    • java.doc文档注释:/** 注释内容 */

    变量

    变量的命名

    • 变量的命名不可以用数字作为开头,也不可以用一些特殊字符,而且变量名称不能与关键字和保留字同名,命名是要以小写字母开始且各单字首字母大写的驼峰式命名法,这样方便别人一眼看出变量作用。
    • 注意在命名的时候不要使用汉语拼音的方法来命名。
    • 例如:ageOfStudent。

    字面常量

    • 整数可以用二进制(0bdddd),八进制(0ddd)、十进制(dddd)、十六进制(0Xdddd)。
    • 浮点数除了使用小数方式还可以直接用科学记号表示。
    • 一些常用的忽略符号。
    • uxxxx表示法。

    数字常量

    • Java SE7 后可以用下划线分隔数字,如:123_456,3.141_592_653,0b1010_0011.

    运算符

    • 算术运算符:+(数值相加或字符串相加)、-、*、/、%、++、--。
    • 赋值运算符:=、+=、-=、*=、/=、%=
    • 比较运算符:==、!=、<、>、<=、>=,比较运算符的结果都是布尔型,要么为true,要么为false
    • 逻辑运算符:&、|、^、!、&&、||
    • 位运算符:<<、>>、>>>(无符号右移)、&、|、^、~,位运算是对二进制进行运算

    类型转换:

    • 自动类型提升:如果表达式中包括不同类型数值,则运算时以最长的为主,其他数值自动提升类型。
    • 强制类型转换:长的类型转换为短的需要强制进行。

    流程控制:

    • 判断结构:if-else语句
    • 选择结构:switch语句
    • 循环结构:while语句、do while语句、for语句
    • 通过对一些JAVA中基础的流程语句结构的学习,我发现与C语言中的基本相同,上手起来也很轻松。

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

    在教材的学习中,我主要是在对着教材敲代码,但是在敲代码中我也发现了一些问题。
    比如卢肖明同学也提到的一道题(http://group.cnblogs.com/topic/73916.html)教材64页的代码。

    public class Shift
    {
      public static void main(String[] args)
    {
    	int number=1;
    	System.out.printf("2 的 0 次方: %d%n",number);
    	System.out.printf("2 的 1 次方: %d%n",number=number << 1);
    	System.out.printf("2 的 2 次方: %d%n",number=number << 2);
    	System.out.printf("2 的 3 次方: %d%n",number=number << 3);
    }
    }
    


    可以看到运行结果不是正确的。这是因为误将number多次赋值造成的。
    可以将代码修改成

    public class Shift
    {
      public static void main(String[] args)
    {
    	int number=1;
    	System.out.printf("2 的 0 次方: %d%n",number);
    	System.out.printf("2 的 1 次方: %d%n",number=number << 1);
    	System.out.printf("2 的 2 次方: %d%n",number=number << 1);
    	System.out.printf("2 的 3 次方: %d%n",number=number << 1);
    }
    }
    

    或者

    public class Shift
    {
      public static void main(String[] args)
    {
    	int number=1;
    	System.out.printf("2 的 0 次方: %d%n",number);
    	System.out.printf("2 的 1 次方: %d%n",number << 1);
    	System.out.printf("2 的 2 次方: %d%n",number << 2);
    	System.out.printf("2 的 3 次方: %d%n",number << 3);
    }
    }
    

    均可以解决这一问题。

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

    其他(感悟、思考等)

    对于九九乘法表不显示重复部分

    public class NineNineTable2 {
        public static void main(String[] args) {
            for (int j = 1; j < 10; j++) {
                for (int i = 1; i <= j; i++) {
                    System.out.printf("%d*%d=%2d  ", i, j, i * j);
                }
                System.out.println();
            }
        }
    }
    

    学生成绩评级

    • 书上的代码中Level符合MECE(相互独立,完全穷尽),虽然效率不如Level高,但是却不会出现120分评级为E的现象。
      可以修改为如下代码可以得出正确的结果。
    public class Level2 {
        public static void main(String[] args){
            int score = 120;
            int quotient = score / 10;
            char level;
            if(quotient>10 )
                level = 'A';
            else {
                switch (quotient) {
                    case 10:
                    case 9:
                        level = 'A';
                        break;
                    case 8:
                        level = 'B';
                        break;
                    case 7:
                        level = 'C';
                        break;
                    case 6:
                        level = 'D';
                        break;
                    default:
                        level = 'E';
                }
            }
            System.out.printf("得分等级:%c%n",level);
        }
    }
    

    random()的值的范围

    • 通过*数字来确定范围
    • 我将*10修改为*110出现了如图效果。

    C语言与JAVA的异同

    • 本周的学习让我觉得C语言与JAVA 的基础语法和结果十分相似,甚至JAVA还要相对于C语言更好掌握一点。

    思考

    • 果然,多敲代码多联系十分有用,从开学到现在,仅仅敲了了300行左右的代码就能感受到自己的进步,配合上教材和老师的博客上的内容,本学期JAVA的学习确实更像是健身教练和健身学员,健身教练也就是老师给出了一个方法和问题的解决方案,但是具体的实施和学习都要考个人的努力和主观能动性,但是只要去跟着教练的方法坚持下去就可以有很大的收获。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时 成为超过高级初学者的存在
    第一周 150/150 1/3 15/15 第一个java程序
    第二周 150/300 2/5 20/35 第一次对教材的代码进行自己的修改

    参考资料

  • 相关阅读:
    一个int类型究竟占多少个字节
    TCMalloc 安装与使用
    [创意标题] spoj 11354 Amusing numbers
    如何更好地理解和使用Github
    一天JavaScript示例-点击图片显示大图片添加鼠标
    php方法综述除去换行符(PHP_EOL使用变量)
    使用jQuery和css3实现了仿淘宝ued博客左边的菜单切换动画
    【软件使用技巧】PL/SQL Developer实现双击table询
    newlisp 接受jenkins带空格的参数
    Oracle listener lsnrctl
  • 原文地址:https://www.cnblogs.com/20145208cy/p/5272811.html
Copyright © 2011-2022 走看看