20165223 《JAVA程序设计》第二周学习总结

教材学习内容总结

第二章要点

  • 标识符与关键字
  • 基本数据类型
  • 类型转换运算
  • 输入输出数据
  • 数组

第三章要点

  • 运算符与表达式
  • 语句概述
  • if条件分支语句
  • switch开关语句
  • 循环语句
  • break和continue语句
  • 数组与for语句

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

  • 标识符与关键字

    • 标识符=名字:由字母、下划线、$、数字组成,长度不受限;第一个字符不能是数字字符;区分大小写;不能用关键字;不能是true、false、null
    • java使用的语言:Unicode字符集
    • 关键字50个(需背记):
    abstract assert boolean break byte case catch char class const
    contiune default do double else enum extends final finally float
    for goto if implements import instanceof int interface long native
    new package private protected public return short static strictfp super
    switch synchronized this throw throws transient try void volatile while
  • 基本数据类型
    • 逻辑类型:boolean

      • true、false
    • 整数类型:byte、short、int、long
      • 注意每种类型的字节内存,以防溢出
      整数类型 常量 变量字节内存 变量取值范围
      int型 各种进制整数 4个(32位) -2^31~2^31-1
      byte型 不存在 1个(8位) -128~127
      short型 不存在 2个(16位) -2^15~2^15-1
      long型 后缀L 8个(64位) -2^63~2^63-1
      • long类型常量后必须用L
    • 字符类型:char
      • 不同于C:char是无符号的,且不能使用unsigned修饰所声明的char型变量
    • 浮点类型:float、double
      • float常量后必须要有后缀Ff
      • double常量后缀Dd可以省略
    • 类型转换运算
      • 不包括逻辑类型
      • 精度排列(从低到高):byte short char int long float double
      • 从低等级赋值给高等级变量时,系统自动转换
      • 从高等级赋值给低等级变量时,要强制转换:(类型名)要转换的值
      • 整数默认为int型,小数默认为double
  • 输入输出数据
    • 输入

      • 创建一个Scanner对象:Scanner reader = new Scanner(System.in)
      • Scanner对象调用方法读取用户键盘输入的数据(等待):reader.nextInt()
    • 输出
      • 换行:System.out.println();
      • 不换行:System.out.print();
      • System.out.println();System.out.print();输出串值、表达式的值,使用并置符号+使输入能串行输出
      • 与C相似的函数输出:System.out.printf("格式控制部分",表达式1,表达式2,……,表达式n);
      • 格式控制部分=格式控制符号%d、%c、%f、%s+普通字符
  • 数组
    • 声明数组:类型 [ ] 数组名;
    • 创建数组:数组名 = 类型 [整数值]
    • 数组长度:
    • 数组名.length
    • 对一维数组,表示数组单元的个数;对二维数组表示二维数组中一维数组的个数
    • 数组引用:数组变量中存放的值就是数组的引用。数组使用下标运算访问自己的单元。类型相同的数组一旦具有相同的引用,就具有一样的单元。

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

  • Example2_1.java

    • javac错打成java,导致无法编译

    • 编译时进错了目录,应该在主文件夹下编译,使用代码javac -d bin src/Example2_1.java才对。因为只有在主文件夹里java才能正确找到bin文件夹,将*.class文件放入其中。

  • Example3_9.java
    • vi编辑代码时错将System.out.printf打成System.out.println,提示了如图错误:
    • 正确认识到第二章中关于输入输出知识点掌握的缺漏并补全:
      • 格式:System.out.printf("格式控制部分",表达式1,表达式2,……,表达式n)
      • 格式控制部分=格式控制符号%d、%c、%f、%s+普通字符
      • 普通字符原样输出,格式符号输出表达式的值
  • 在提交代码的过程中git commit了错误文件
    • 参考了资料撤销git commit的错误文件,结合同学在蓝墨云中给出的代码帮助,成功解决了问题
    • git add .git commit了错误文件要如何解决:
      • 先查看节点:git log

        • commit xxx
        • Merge: xxx
        • Author: xxx
        • Date: xxx
      • 找到需要的commit_id
      • 接着:git reset commit_id
    • 此外在还未git push的时候还有:
      • 回退到上一个commit节点,保留修改后的代码:git reset commit_id
      • 回退到上一个commit节点,代码退回到上一步的:git reset –hard commit_id
  • 带包的代码的编译和运行
    • 方法一(不推荐):

      • 使用vi打开一个*.java文件,输入包相关代码:第一行输入package <包名>;,之后正常编写代码
      • 新建包文件夹:mkdir <包名>
      • 编译:javac *.java
      • 移动代码文件进包内:mv *.class <包名>
      • 运行:java <包名>.<主类名>
    • 方法二(推荐):
      • 使用vi打开一个*.java文件,输入包相关代码:第一行输入package <包名>;,之后正常编写代码
      • 编译到bin:javac -d bin *.java
      • 在包中运行:java -cp bin <包名>.<主类名>
    • 其中方法二中-cp指classpath,指明路径bin
  • 码云提交作业方法
    • 创建docs目录:mkdir docs
    • 创建空markdown文件如“java_homework_week1.md”:touch docs/java_homework_week1.md
    • 把作业博客纳入版本控制:git add ., git commit -m "init docs with empty java_homework_week1.md"
    • 把作业推送到码云上:git push
    • 在码云上点击docs文件夹,打开“java_homework_week1.md”,点击“编辑”就可以写作业了
    • 提交说明是“拷贝作业模板”,这等价于 git commit -m "拷贝作业模板", 点击“提交到master”按钮进行作业的提交
    • 将码云上写的文档同步到自己的电脑上:git pull
    • 运行一下脚本"statistics.sh",截图学习进度:./statistics.sh
    • 完成本周的学习任务,运行git push把本周学习成果推送到码云上

代码托管

详见码云代码链接:https://gitee.com/BESTI-IS-JAVA-2018/20165223cn.git

上周考试错题总结

详见博客:week2测试补交与总结

感悟与思考

这一周学习任务是第二第三章,明显较之第一周感受到了学习的进度,在抄代码的同时不断练习记忆,对知识点有了掌握。经过两周的课程已经开始逐渐适应上课的速度,也更明白了自己在课下还需要做更多的练习。本周进行的第一次测试由于我对包package相关的知识点掌握不到位以及对提交时间的错误把握导致没能按时提交第二个测试的结果,明确感受到了自己的不足,写了一篇博客week2测试补交与总结进行分析与总结,也提醒了我要更认真的听讲以及下去练习,才能在考试和课堂上游刃有余。

学习进度条

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

参考资料

  1. 第二第三章教学视频
  2. 代码托管
  3. 码云和博客园的简易使用
  4. 撤销git commit的错误文件

20165223《JAVA程序设计》第二周学习总结的更多相关文章

  1. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  2. 201521123063 JAVA程序设计 第二周学习总结

    1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...

  3. 2017面向对象程序设计(Java)第二周学习总结

    2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结

    丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...

  5. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  6. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  7. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

  8. 201871010121 王方 《面向对象程序设计(java)》 第二周学习总结

    这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475 ...

  9. 杨其菊201771010134《面向对象程序设计Java》第二周学习总结

    第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...

  10. 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

随机推荐

  1. 移动端Web界面滚动touch事件

    解决办法一: elem.addEventListener( 'touchstart', fn, { passive: false } ); 解决办法二: * { touch-action: pan-y ...

  2. umask 文件默认权限

    参考资料 http://book.51cto.com/art/200709/57189.htm umask就是指定当前用户在建立文件或目录时候的属性默认值. linux-xdYUnA:~ # umas ...

  3. 使用urllib2+re爬取web网站

    应用1,使用urllib2+re爬取淘宝网指定页面的所有图片

  4. Java之ArrayList自定义排序,通过实现comparator比较器接口

    两种排序方式: 1.实体类实现Comparable接口,重写compareTo(T o)方法,在其中定义排序规则,那么就可以直接调用Collections.sort()来排序对象数组 2.在调用方法的 ...

  5. nginx rewrite重写

    通过官方文档可以看到,rewrite的作用上下文是   server location,可以写在 server里面  亦或location里面; 命令: if (条件) {} 条件判断 set #设置 ...

  6. Introduction to Dynamic SQL

    The idea of using dynamic SQL is to execute SQL that will potentially generate and execute another S ...

  7. MySQL字段属性NUll的注意点

    MySQL字段属性应该尽量设置为NOT NULL 除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持 NOT NULL.这看起来好像有点争议,请往下看. 空值("&quo ...

  8. JS的初步了解

    JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备.JavaScript 是脚本语言 HTML 中的 ...

  9. Codeforces963C Frequency of String 【字符串】【AC自动机】

    题目大意: 给一个串s和很多模式串,对每个模式串求s的一个最短的子串使得这个子串中包含至少k个该模式串. 题目分析: 均摊分析,有sqrt(n)种长度不同的模式串,所以有关的串只有msqrt(n)种. ...

  10. Codeforces715 B. Complete The Graph

    传送门:>Here< 题意:给出一张带权无向图,其中有一些边权为0.要求将边权为0的边的边权重置为一个任意的正整数,使得从S到T的最短路为L.判断是否存在这种方案,如果存在输出任意一种 解 ...