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

    20145213《Java程序设计》第二周学习总结


    教材学习内容总结

    本周娄老师给的任务是学习教材的第三章——基础语法。其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来,字里行间依稀能窥见C语言的影子。不过想想Java本来就是基于C语言的基础上开发的新编程软件,倒也释然。啃着C语言的老本,第三章预习起来倒也是轻车熟路了,水到渠成地总结了一些Tips,新司机们,快上车!

    • Java可区分为基本类型和类类型(参考类型)两大类型系统,其中基本类型又可以主要分为整数、字节、浮点数、字符与布尔。整数可细分为 short整数(占2字节)、int(占4字节)、long(占8字节)。浮点数可分为float浮点数(占4字节)、double(占8字节)。
    • 单行批注用//我是批注,多行批注用/* 我是批注 */ 。
    • 变量的声明可以用 byte、short、int、long、float、double、char、boolean等关键词。变量不可以使用数字作为开头也不可以使用一些特殊字符,更不可以与Java的关键词同名。变量命名风格主要以清楚易懂为主,这里推荐新手用驼峰式命名法,即通常以小写字母开始,并且在每个单字开始时第一个字母大写。
    • int number1 = 12; //以十进制表示
      int number2 = 0xC; //以十六进制表示,以0x开头(念 零)
      int number3 = 014; //以八进制表示,以0开头(念 零)
      double number4 = 1.23e-3 //理解为科学计数法,e后面数字为10的幂次,表示0.00123
    • 常用忽略符号
       倒退一个字符
      f 换页
      换行
      光标移至行首
    • 撰写整数或浮点数常量是可以用下划线更清楚表示某些数字。例如
      int number1 = 1234_5678;
      double number2 = 3.1415_9265;
    • 条件运算符,使用方式如下:
      条件 ? 成立返回值 :失败返回值
    • 逻辑运算符 &&(且)、||(或)、!(反相)。位运算符 &(AND)、|(OR)、^(XOR)、~(补码)。拒绝混淆,注意区分!
    • 位运算上,还有左移(<<)与右移(>>),左移运算符会将所有位往左移动指定位数,指定位数加在左移运算符后面。右移同理。被挤掉的位会被丢弃,另一边补零。
    • 递增,递减运算。注意i++与++i的区别。前者表示先返回变量值,再对变量加一。后者表示先将变量加一,再返回变量值。
    • 指定运算符+= 例如A+=B 表示A=A+B;其他运算符同理,注意规则,并善于在今后代码编写中使用,以简化代码。
    • 类型转换过程中,容易出现精度缺失错误。两种解决办法。例
      double pi = 3.14;
      float pi = 3.14 //因为8字节数据要放到4字节空间中,所以会出现精度缺失的错误。
      改正如下:
      float pi = 3.14F;
      float pi = (float) 3.14;
    • 如果表达式中包括不同类型数值,则运算时以长度最长的类型为主,其他数值自动提升类型。如果操作数都是不大于int的整数,则自动全部提升为int类型进行运算。

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

    教材P55给出了求各个类型可储存的数值范围,代码如下
    public class Range { public static void main(String[] args) { System.out.printf("%d~%d%n",Byte.MIN_VALUE, Byte.MAX_VALUE); System.out.printf("%d~%d%n",Short.MIN_VALUE, Short.MAX_VALUE); System.out.printf("%d~%d%n",Integer.MIN_VALUE, Integer.MAX_VALUE); System.out.printf("%d~%d%n",Long.MIN_VALUE, Long.MAX_VALUE); System.out.printf("%d~%d%n",Float.MIN_EXPONENT, Float.MAX_EXPONENT); System.out.printf("%d~%d%n",Double.MIN_EXPONENT, Double.MAX_EXPONENT); System.out.printf("%h~%h%n",Character.MIN_VALUE, Character.MAX_VALUE); System.out.printf("%b~%b%n",Boolean.TRUE, Boolean.FALSE); } }
    让我不解的是代码中并没有给出具体求范围的方法,只是打出一些字符串而已,更没有定义。但结果还是正确的。现在我只好自我安慰这些字符串就是在Java中代表特定的数字。
    还有一个问题就是我依葫芦画瓢,照搬教材代码时,执行时,会出现汉字乱码现象,效果图如下:


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

    不敲代码验所学,读尽教材也枉然。反而很容易纸上谈兵,落入盲目自信。正所谓读万卷书不如行万里路,这里的行路就是指敲代码啦。本周我也开始了Java上的小小长征了!共计200步.
    首先是教材P55,执行效果如下:

    首先看到乱码错误还是第一次,完全看不懂电脑在说什么,只好自己找原因了。后来发现原来对于Float和Double来说,他们的特定范围专称后缀是.MIN_EXPONENT和.MAX_EXPONENT.这要和其他的后缀.MIN_VALUE和.MAX_VALUE区别开来。正确执行效果如下:

    接着来到了教材的P57,首先来感受一下变量的力量吧。


    之前是牛刀小试,接下来是P60的比较运算


    意料之内的汉字乱码,但不能阻挡我长征的步伐,接下来是P62的位运算;

    这次是P64修正后的教材习题,由于汉字会出现乱码,编译不了,于是我省略了一下汉字,看不懂的请脑补一下。
    这是教材错误的代码

    这是正确的代码

    利用if else判断奇数


    利用switch分分数等级


    利用for编九九乘法表

    利用while编一个小游戏


    其他

    教材操作题
    第一题

    第二题发生了一点小插曲,首先是这个结果

    我就有点怀疑当初设置的变量B,C,D是否有违背我的意志,利用课本提供的定义概念时用到的数字,加入一个while语句判断

    后面得知在求解I的个位数字时出现错误,于是修改求解代码,最后调试结果如下

    博客写到这快到尾声了,我也是常常吐一口气。有种错觉,感觉写博客比敲代码难多了,可能是自己写作能力还不足,目前代码还比较简单吧。本周长征的结果个人还比较满意,想想200行代码应该有着落了。


    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 20/20 1/1 10/10
    200/220 1/2 15/25

    参考资料

    *Java学习笔记(第8版)
    *《Java学习笔记(第8版)》学习指导

    )

  • 相关阅读:
    2015-01-27-从实验出发理解buffer与cache区别-吴伟顺
    【实习记】2014-09-26恢复linux下误删的ntfs盘中的文件
    【实习记】2014-09-24万事达卡bin查询项目总结
    【实习记】2014-09-04浏览代码查middle资料+总结我折腾过的源码浏览器
    【实习记】2014-09-01从复杂到简单:一行命令区间查重+长整型在awk中的bug
    【实习记】2014-08-29算法学习Boyer-Moore和最长公共子串(LCS)
    【实习记】2014-08-28知值求范围问题
    【实习记】2014-08-27堆排序理解总结+使用typedef指代函数指针
    【实习记】2014-08-26都是回车惹的祸——shell脚本必须是unix行尾
    【实习记】2014-08-24实习生无法映射磁盘替代方案rsync+非默认端口22设置
  • 原文地址:https://www.cnblogs.com/qiwei/p/5273108.html
Copyright © 2011-2022 走看看