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 第一次对教材的代码进行自己的修改

    参考资料

  • 相关阅读:
    java OA系统 自定义表单 流程审批 电子印章 手写文字识别 电子签名 即时通讯
    flowable 获取当前任务流程图片的输入流
    最新 接口api插件 Swagger3 更新配置详解
    springboot 集成 activiti 流程引擎
    java 在线考试系统源码 springboot 在线教育 视频直播功能 支持手机端
    阿里 Nacos 注册中心 配置启动说明
    springboot 集成外部tomcat war包部署方式
    java 监听 redis 过期事件
    springcloudalibaba 组件版本关系
    java WebSocket 即时通讯配置使用说明
  • 原文地址:https://www.cnblogs.com/20145208cy/p/5272811.html
Copyright © 2011-2022 走看看