20145308刘昊阳 《Java程序设计》第2周学习总结

教材学习内容总结

第三章 基础语法

3.1 类型、变量与运算符

  • 类型
  • 基本类型
    • 整数(short/int/long)
      short: 2字节
      int: 4字节(默认整数类型)
      long: 8字节
    • 字节(byte)
      1字节=8个二进制数
    • 浮点数(float/double)
      float:4字节
      double:8字节(默认浮点数类型)
    • 字符(char)
      每个字符2字节(汉字、英文字母)
      字符表现形式'a',字符串表现形式"ab"
    • 布尔(boolean):分为true和false两种,无法与其他类型做运算
    • null: 内容为null(空)
  • 类类型
  • 注释
  • 三种注释
    • /:单行
    • /**/:多行(批注里套批注是不对的)
    • /** */:javadoc文档注释(读取每一行后,删掉前导的符号和符号前的空格再复制到输出文件)
  • 为何要注释
    • 提高代码的可读性,养成写代码前先写注释的习惯
    • 注释算法或者代码为什么这样写成,而不是代码做什么
  • 变量
  • Camel Case命名法:变量名以小写字母开始,并在每个单字开始时第一个字母使用大写
  • 变量声明基本规则:明确数据类型+变量名称(不可以以数字为开头,也不可以使用一些特殊字符和关键字)+数据来开辟空间
  • 变量在运算过程中,数据类型不一样计算机会提升数据类型
    例如:byte b=3; b=b+2;(运行结果会将2字节的Byte型变量提升成4字节的int型变量)
  • 指定变量值后,不想再改变变量值,在变量声明前加final
  • 局部变量使用前要初始化
  • 字面常量
  • 十进制直接书写,十六进制表示以0x开头,八进制表示以0开头,二进制以0b开头
  • 浮点数的科学记号表示法0.00123=1.23e-3
  • 小数计算机默认变量类型为Double,要书写成小数f的形式来转换成float
  • 表示字符需要用“'”括住字符
  • \ :转义字符,转变符号后字母或符号的含义,例如\n\b,如果想要打印"Hello",代码就要书写如下"\"hello\"",通过“ \ ”将Hello两边的“ " ”符号转义
  • 数字常量
  • 可以用下划线来分隔数字
  • 运算符
  • 算术运算
    • +、-、*、/、%
    • +:除了数字运算,还可用于字符串的连接,如System.out.print("5+5="+1+0);输出结果为5+5=10
    • s=s+5s+=5的区别:前者进行加法运算后再将值赋给s(共进行2次运算),后者在s的基础上自增5(共进行1次运算)
  • 关系运算
    • 大于 > 、大于等于 >= 、小于 < 、小于等于 <= 、相等 == 、不相等 !=
    • 不能对浮点数进行相等性运算
    • =与==区别:=是指定运算,==是比较运算
  • 条件运算符(Conditional Operator): 条件式 ? 成立返回值 : 失败返回值
  • 逻辑运算:运算结果是boolean值
    • &&、||、!
    • &&、||为快捷方式运算,即左操作数为false,直接判断整个算式结果为false
  • 位运算:对2进制数字串进行运算
    • &、|、~、^、<<、>>、>>>
    • << :左移,最右位补0 >> :右移,最高位为0(正数)补0,最高位为1(负数)补1 >>> :右移,最高位补0
    • 位运算是逐位运算
  • 递增、递减
    • i++、i-- : 执行一次操作后再自增\自减
    • ++i、--i : 先自增\自减后再执行操作
  • 赋值
    • = : 将右侧值赋给左边
    • 左移并赋值<<=:a<<=b,a=a<<b
    • 右移并赋值>>=:a>>=b,a=a>>b
  • 类型转换
    • 短->长安全,类型不同时计算机采取类型提升的方式,以长度最长的为准,长->短会损失精度
    • float PI = 3.14F;形式将3.14存储成float
    • long number=2147483648L形式将2147483648存储成long

      3.2 流程控制

  • 机构化程序设计三种语句:顺序、分支、循环
  • 分支
  • 类型
    • if
    • if...else
    • if...else if:执行完就结束,不再向下执行
    • switch...case
      • 应用于判断四种类型int,byte,short,char,字符串,不能判断运算结果为布尔型的变量
      • case语句间没有位置顺序,无break就向下执行
      • default语句最后执行
  • 循环
  • 类型
    • for

      • for(int x=3;循环执行条件;重复式)可以在for语句中定义一个临时变量,在语句外不可用,节省空间
      • 判断循环执行语句必须是boolean的重复式
    • while
      • 满足条件式时执行循环语句
    • do...while
      • 无论是否满足条件式都至少执行一次循环语句,之后满足条件式再执行
  • break/continue
  • break和continue单独存在时,下面可以有任何语句,因为都执行不到
  • break可以离开当前的区块,并执行区块后下一个描述句
  • continue会略过之后的描述句,并回到循环区块开头进行下一次循环

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

  • 问题:对于数据类型间的转换(数据类型的强专和丢失精度不能理解)
  • 解决过程:理解不了为什么强制转换或者会丢失精度,从根源解决问题,看了视频发现各种数据类型的存储空间不同,数据类型不同会发生溢出(overflow)或者无法运算等错误情况,记住了每种数据类型的存储空间,就从根本上解决了类型强转换的方式和计算机如何提升数据类型以防止溢出情况发生

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

  • 问题
  • p62代码运行结果错误


  • 解决过程:对照代码和报错提示,发现把printf打成了println,修改后发现成功了,不知道为什么println不能打印这个类型的变量,需要以后解决

  • 问题
  • p55代码运行结果错误

  • 解决过程:将类名称和文件名改成相同的名称

  • 问题
  • p60代码运行结果错误

  • 解决过程 : 调试了好几遍,不报错但是也不出结果,好郁闷,让同学帮着看了下,发现把%d抄成了%b,改过来了,运行成功

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

  • 上一周的学习中后半部部分的包有关内容不是很清楚,这周学习开始时又学习了一遍,体会到欠下的东西都是要自己还的,比起想着偷懒,还不如快点解决问题
  • 上一周学习时只学习和安装了IDE,这周安装练习使用了IDEA,感受大了软件的便利但也感受到了不习惯的地方,还需要多加练习
  • 这周主要学习了Java的基本语法,感觉和C语言语法的相似之处还是很多的

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 30/30 1/2 16/16 基础知识
第二周 100/130 1/3 20/36 基本语法
第三周 0/0 0/0 0/0
第四周 0/0 0/0 0/0

20145308刘昊阳 《Java程序设计》第2周学习总结的更多相关文章

  1. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

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

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. JavaScript基础——使用JavaScript对象

    JavaScript有许多内置对象,如Number(数字).Array(数组).String(字符串).Date(日期)和Math(数学).这些内置对象都有成员属性和方法.除了JavaScript对象 ...

  2. 二、JavaScript语言--事件处理--DOM事件探秘--下拉菜单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 字符识别(模板匹配&BP神经网络训练)

    http://blog.csdn.net/zhang11wu4/article/details/7585632

  4. 并发中的Native方法,CAS操作与ABA问题

    Native方法,Unsafe与CAS操作 >>JNI和Native方法 Java中,通过JNI(Java Native Interface,java本地接口)来实现本地化,访问操作系统底 ...

  5. 【转载】 Python 方法参数 * 和 **

    Python的函数定义中有两种特殊的情况,即出现*,**的形式. 如:def myfun1(username, *keys)或def myfun2(username, **keys)等. 他们与函数有 ...

  6. git 本地仓库和远程仓库及本地分支和远程分支

    从远程git仓库签出代码:   $ git clone git://aaa.com/git_project.git (远程git服务器项目所在地址) 当你需要克隆远程项目到本地时,默认会把项目保存在名 ...

  7. 攻城狮在路上(叁)Linux(十三)--- 文件与目录的管理

    一.查看文件与目录: 1.命令格式:ls [-aAdfFhilnrRSt] 目录名称; 2.参数说明: -a:显示所有的文件,包括隐藏文件(隐藏文件一般以.开头). -d:仅列出目录本身. -l:列出 ...

  8. C# SMTP邮件发送 分类: C# 2014-07-13 19:10 334人阅读 评论(1) 收藏

    邮件发送在网站应用程序中经常会用到,包括您现在看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,做了一个客户端Demo,希望对有需要的童鞋有所帮助: 核心代码: ...

  9. 配置ogg异构mysql-oracle 单向同步

    从mysql到oracle和oracle到mysql差不多.大致步骤如下: 环境是:192.168.0.165 (Mysql ) —> 192.168.0.164 ( Oracle )想将mys ...

  10. Android学习二_八:Animation的使用(一) (转)

    一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等,这些效果可以应用在绝大 ...