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. 用ABAP代码读取S/4HANA生产订单工序明细

    在S/4HANA事务码CO03显示的Production Order里,我希望用ABAP代码显示出该订单的operation(工序)ID,描述和状态Status,如下图所示: 很简单的几行ABAP代码 ...

  2. PetaPoco轻量级ORM框架 - 入门安装

    PetaPoco 是一个开源轻量级ORM,够小,够快,单文件 在GitHub上有很高的人气 1377星,几年来作者一直在更新 当前版本6.0.317 - Netstandard 2.0(同时支持.ne ...

  3. Centos7 之目录处理命令(八)

    linux中 关于目录 有几个重要概念 一个是 / 根目录  还有一个当前用户的家目录 比如 root用户的家目录是 /root  普通用户的家目录是/home/xxx 下 root登录 默认家目录 ...

  4. Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案

    即上篇通过将web项目打成war包部署到Tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~ 将打好的war包拷贝到Tomcat的w ...

  5. Nexus修改admin密码及其添加用户

    Nexus之所以修改密码,是为了安全起见,个人学习的话,本地windows或者虚拟机即可,外网服务器建议将密码修改复杂点,而且强烈建议端口不要8081,最好将其改为其他的.同样也是为了安全起见. 添加 ...

  6. 俄罗斯方块 UWP 版

    UWP跟 WPF编程模型一致,不过UWP做了精简,而且不同的系统的API还略有不同.不同的地方有以下几点: 1.动画.动画除了故事版,还有其它的实现方式. 2.异步方法.UWP中的方法调用,大部分都是 ...

  7. 页面QQ在线咨询、在线交谈代码

    页面QQ在线咨询.在线交谈代码 样式一: <a target="blank" rel="nofollow" href="tencent://me ...

  8. 【luogu P2827 蚯蚓】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2827 35分:暴力sortO(mnlogn). 80分:考虑到每次不好维护不被切的点+q,正难则反.改成维护 ...

  9. Epoll为我们带来了什么

    libevent中用到的,epoll是Linux下多路复用IO接口select/poll的增强版本.网上找到的介绍资料,无法标明来源. Q:网络服务器的瓶颈在哪? A:IO效率. 在大家苦苦的为在线人 ...

  10. 鼠标不能用怎么办 USB OPTICAL MOUSE

    刚买的新鼠标,一般鼠标插上去自动安装驱动,然后就可以正常使用了. 如果遇到下面这种情况:"usb optical mouse 找不到驱动程序" 插上以后死活都没作用,然后开始下载一 ...