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 - 常用忽略符号
\b 倒退一个字符
\f 换页
\n 换行
\r 光标移至行首 - 撰写整数或浮点数常量是可以用下划线更清楚表示某些数字。例如
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版)》学习指导
)
20145213《Java程序设计》第二周学习总结的更多相关文章
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 201521123063 JAVA程序设计 第二周学习总结
1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...
- 2017面向对象程序设计(Java)第二周学习总结
2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结
丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...
- 201521044152<java程序设计>第一周学习总结
本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
- 201871010121 王方 《面向对象程序设计(java)》 第二周学习总结
这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475 ...
- 杨其菊201771010134《面向对象程序设计Java》第二周学习总结
第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...
- 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
随机推荐
- Linq→join中指定多个条件
还是习惯先撸一段SQL * FROM User_Pic P AND P.Guid = R.UserPicGuid ORDER BY PicSize DESC 然后发现Linq中的join不能多条件.. ...
- elf文件中的.plt .rel.dyn .rel.plt .got .got.plt的关系
.plt的作用是一个跳板,保存了某个符号在重定位表中的偏移量(用来第一次查找某个符号)和对应的.got.plt的对应的地址 .rel.dyn重定向表,在程序启动时就需要重定位完成. .rel.plt保 ...
- 串行移位锁存并行输出可级联器件74HC595
一.背景 老同学今天突然咨询关于74HC595,自己没用过,同学说可以级联10级!10级?我艹,这么叼,级联又是 什么鬼,这勾起了我极大兴趣,二话不说,手册down下来研究,并在此做个记录. 二.正文 ...
- 微信 6.5.1 for iOS发布 可以在朋友圈分享相册中的视频
今天微信 6.5.1 for iOS发布了,最主要的一个功能是可以在朋友圈分享相册中的视频,卖转发朋友圈视频软件的家伙估计要哭了.微信这次更新,更有利于个人号的运营,个人号的价值将更高.先定一个小目标 ...
- PHP函数 rtrim() 的一个怪异现象
今天用rtrim()函数时遇到了一个奇怪的问题: echo rtrim('<p></div>', '</div>'); // 输出为 <p echo ltri ...
- iOS8无法弹出本地通知?
最近在看<iOS编程(第4版)>(就是Big Nerd Ranch用的那本教材).这本书写的不错,推荐一下,写的很细致,循序渐进,不能不赞一下外国人写书的思路,确实跟国人不同.之前学And ...
- 网络编程1-TCP编程(socket)
1 如何实现网络中的主机相互通信 一定的规则,有两套参考模型 (1)osi参考模型,过于理想化,未能在互联网上推行 osi有七层 (2)tcp/ip参考模型,有四层,各层之间通过不同的网络协议传输数据 ...
- android ListView嵌套GridView显示不全问题
只需重写GridView即可:public class MyGridView extends GridView{ public MyGridView(android.content.Context c ...
- Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
这个图片异步加载并缓存的类已经被很多开发者所使用,是最常用的几个开源库之一,主流的应用,随便反编译几个火的项目,都可以见到它的身影. 可是有的人并不知道如何去使用这库如何进行配置,网上查到的信息对于刚 ...
- VirtualBox centos 6.5 minimal 开启网络
默认情况下载的centos 6.5 minimal是不开启网卡功能的,按照下面的步骤开启网卡. vi /etc/sysconfig/network-script/ifcfg-eth0 将其中的 ONB ...