20155339 2016-2017-2 《Java程序设计》第2周学习总结

教材学习内容总结

这周学习了课本的第三章,主要内容是JAVA的基础语法,在这章的学习过程中我发现大部分与c语言的语法相差无几,但也有一些是与c语言不同的地方。

类型

在JAVA中分为基本类型和类类型两大类型系统。

JAVA中的基本类型主要分为如下几类:

1.整数:分为short(2字节)、int(4字节)与long(8字节)。

2.字节:byte,长度为一字节,若表示整数,可表示-128~127的整数。

3.浮点数:主要用来存储小数,可分为float(4字节)double(8字节)。

4.字符:char类型。每个字符占两字节。

5.布尔:boolean类型可表示为true与false。boolean类型不能用于运算。

其实不用记忆各种类型可存储的数值类型,可以通过API来得知。如下:

public class Range {public static void main(String[] args){

//byte、short、int、long的范围
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); //float double的范围
System.out.printf("%d~%d%n", Float.MIN_EXPONENT, Float.MAX_EXPONENT);
System.out.printf("%d~%d%n", Double.MIN_EXPONENT, Double.MAX_EXPONENT); //char的范围
System.out.printf("%h~%h%n", Character.MIN_VALUE, Character.MAX_VALUE); //布尔型
System.out.printf("%b~%b%n", Boolean.TRUE, Boolean.FALSE);
}
}

变量

  • 变量的作用:用来暂时存储资料。
  • 变量命名时不可以使用数字作为开头,也不可以使用一些特殊字符同时不能与JAVA的关键字与保留字同名。
  • 可以运用驼峰式命名法。

运算符

1.加(+)、减(-)、乘(*)、除(/)以及取余(%)。

2.比较、条件运算,当比较条件成立的时候以boolean类型true表示,反之用该类型的false表示,通过程序来学习这部分内容如下:

代码:

public class Comparison {
public static void main(String[] args){
System.out.printf("10>5结果%b%n",10>5);
System.out.printf("10>=5结果%b%n",10>=5);
System.out.printf("10<5结果%b%n",10<5);
System.out.printf("10<=5结果%b%n",10<=5);
System.out.printf("10==5结果%b%n",10==5);
System.out.printf("10!=5结果%b%n",10!=5);
}
}

  • 此处注意与=的区别。用于判断是否相等,=表示赋值。

    3.逻辑运算

    主要有:“且”&&,“或”||,“反相”!。

    4.位运算

    按位做运算,&(and)、|(or)、^(xor)与~(补码)、<<(左移)、>>(右移)。

    进行简单的尝试
public class Bitwise {
public static void main(String[] args){
System.out.println("AND 运算:");
System.out.printf("0 AND 0 %5d%n", 0&0);
System.out.printf("0 AND 1 %5d%n", 0&1);
System.out.printf("1 AND 0 %5d%n", 1&0);
System.out.printf("1 AND 1 %5d%n", 1&1); System.out.println("\nOR 运算:");
System.out.printf("0 OR 0 %6d%n", 0|0);
System.out.printf("0 OR 1 %6d%n", 0|1);
System.out.printf("1 OR 0 %6d%n", 1|0);
System.out.printf("1 OR 1 %6d%n", 1|1); System.out.println("\nXOR 运算:");
System.out.printf("0 XOR 0 %5d%n", 0^0);
System.out.printf("0 XOR 1 %5d%n", 0^1);
System.out.printf("1 XOR 0 %5d%n", 1^0);
System.out.printf("1 XOR 1 %5d%n", 1^1);
}
}

左移运算符将所有位往左移指定位数,左边被挤出去的位会被弄丢,而右边补上0;右移则向右移,最左边补上原来的位。使用左右移来计算简单的2的n次方,代码及运行结果如下:

public class openhome {
public static void main(String[] args){
int num=1;
System.out.printf("2 的 0 次方: %d%n", num);
System.out.printf("2 的 1 次方: %d%n", num<<1);
System.out.printf("2 的 2 次方: %d%n", num<<2);
System.out.printf("2 的 3 次方: %d%n", num<<3);
}
}

5.递增递减运算

此处需要注意++、--在运算符前面还是运算符后面,如果写在变量前,表示先将变量值加或减一,然后再返回变量值;将++或--运算符写在变量后,表示先返回变量值再加或减1。

类型转换

在类型转换中要注意如果你确定要是用某一类型是要进行强制类型转换,例如

short a=1;
short b=2;
short c=(short) (a+b);

流程控制语句

这部分内容包括if-else和switch两个条件式,以及for、while两个循环式,以及break、continue.

1.条件式

if-else语句与switch都是条件语句,在一定情况下两者可以相互转化,但是switch语句的变量或表达式的值必须是整数、字符、字符串或Enum,在这些情况下需要判断好是用if-else还是switch,正确的判断好用哪个可以极大的简化程序提高程序的效率,利用一个例子来练习同时比较两者的差别

public class Level {public static void main(String[] args){
int score=88;
char level;
if(score >= 90){
level='A';
}
else if(score >= 80&&score<90){
level='B';
}
else if(score >=70&&score<80){
level='C';
}
else if(score>=60&&score<70){
level='D';
}
else level='E'; System.out.printf("得分等级:%c%n", level);
}
}
public class Level2 {
public static void main(String[] args){
int score = 88;
int q = score / 10;
char level;
switch(q){
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); }
}

2.循环式有for,while,do-while,其中while是第一次就开始判断循环的条件是否成立,do-while是先执行一次再判断是否再次循环。

break和continue

break可以离开当前所处的循环或条件语块,continue与break类似,但在循环语句中只会略过之后描述句,并回到循环区块开头进行下一次循环,并不会离开循环。

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

  • 问题1:对于Enum是什么不清楚
  • 解决:通过上网查询知道了是枚举类型,在使用中有如下规定:

    1.枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。
  1. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2等等。
  2. 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如一定要把数值赋予枚举变量,则必须用强制类型转换。

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

这次都是按着书上一步一步操作的没有遇到什么问题。

代码托管

  • 代码提交过程截图:

  • 代码量截图:

上周考试错题总结

  • 第19题:在src目录中编译图2.23中Main.java代码的命令是(javac –d . Main.java).忘记了要写入-d,-d指定了编译完成的位码存放文件夹。
  • 第21题:教材P49,第4题(d)原因还是不清楚。
  • 第28题: git log 命令来查看(提交历史)
  • 第30题:IDEA教程中有关调试有四种断点:行断点,方法(函数)断点,(条件断点)和临时断点。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 1/4 20/20
第二周 145/165 1/5 12/32

参考:软件工程软件的估计为什么这么难软件工程 估计方法

参考资料

20155339 2016-2017 2 《Java程序设计》第2周学习总结的更多相关文章

  1. 20155306 2016-2017-2 《Java程序设计》第九周学习总结

    20155306 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 Java语言访问数据库的一种规范,是一套API ...

  2. 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结

    20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...

  3. 20155331 2016-2017-2 《Java程序设计》第九周学习总结

    20155331 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC是什么? JDBC代表Java数据库连接,这对Java编程语言和广泛的数据库之间独立 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 利用cobbler无人值守批量安装centos

    准备: 至少两台机器,分别用作cobbler的服务端和安装测试端 准备一个iso的安装文件,最好是4G多的那个dvd包,以前用网易源上那个centos 6.4 x86_64 通过xen安装时就报错:N ...

  2. cheerio数据抓取

    很多语言都能写个爬虫抓取数据,js自然也可以,使用cheerio可以支持css检索,较快捷的获取需要的数据.首先,先把node.js给安装了.可到官网下载.安装好node.js后,使用npm安装che ...

  3. MySQL存储过程-遍历游标的例子

    delimiter $$DROP PROCEDURE IF EXISTS pro_test ;CREATE PROCEDURE pro_test()begin DECLARE var_name var ...

  4. JavaScript事件的委派与事件的绑定

    事件的委派 在很多需求中,通常元素是动态创建添加到一个父元素中的,这时候我们点击新增的元素是没有反应的 <script type="text/javascript"> ...

  5. 将git关联到pycharm

    1. 安装pycharm 2. 安装git 3. 打开pycharm, 点钟File -> settings -> Version Control -> Git 该面板中,填写git ...

  6. mysql5.6 函数大全

    # 数学函数(1)ABS(x)返回x的绝对值(2)PI()返回圆周率π,默认显示6位小数(3)SQRT(x)返回非负数的x的二次方根(4)MOD(x,y)返回x被y除后的余数(5)CEIL(x).CE ...

  7. MySQL慢查询日志分析提取【转】

    原文:https://www.cnblogs.com/skymyyang/p/7239010.html 一:查询slow log的状态,如示例代码所示,则slow log已经开启. mysql> ...

  8. 接口测试Jmeter+Fiddler组合

    接口测试Jmeter+Fiddler组合 在使用完Jmeter在做接口测试之后,个人感觉Jmeter比loadrunner好用,原因是界面操作更加直观,不必像loadrunner在写接口请求函数的时候 ...

  9. PCA方法从原理到实现

    一.简介 PCA(Principal Components Analysis)即主成分分析,是图像处理中经常用到的降维方法,大家知道,我们在处理有关数字图像处理方面的问题时,比如经常用的图像的查询问题 ...

  10. FD.io社区中国行暨未来网络技术沙龙·南京站 会议小结

    What is FD.io VPP? FD.io VPP(Fast Data Input/Output Vector Packet Processing)is a new network multi- ...