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. Scala高阶函数

    1.作为参数的函数 函数可以作为一个参数传入到一个方法当中去 def main(args: Array[String]): Unit = { val myFunc1 =(x:Int) =>{ x ...

  2. 020.2.1 system

    内容:System的常用方法1.currentTimeMillis()方法(与1970年相差多少毫秒),2.Properties  getProperties():获取系统属性3.Set<Str ...

  3. D3——scale

    d3.scale 比例尺 “Scales are functions that map from an input domain to an output range” Domains 定义域 和 R ...

  4. BZOJ 1051 受欢迎的牛 缩点

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1051 题目大意: 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数( ...

  5. 【HNOI2009】梦幻布丁

    题目描述 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色. 输入输出格式 输入格式 第一 ...

  6. MacBook搭建go语言开发环境

    mac下要安装 go 最简单的方式是通过 homebrew 直接执行: brew update && brew upgrade brew install go 安装完成后需要指定 GO ...

  7. C/C++——存储

    关于各内存空间: 栈(stack):变量,数组.栈的大小是2M(也有的是1M),反正不大,一般递归写错了,没有出口,都会报错stack overflow. 全局区(静态区):全局变量.数组,静态变量. ...

  8. 33、springboot整合springcloud

    Spring Cloud Spring Cloud是一个分布式的整体解决方案.Spring Cloud 为开发者提供了在分布式系统 (配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token ...

  9. [Python 多线程] 详解daemon属性值None,False,True的区别 (五)

    本文以多个例子介绍Python多线程中daemon属性值的区别. 回顾: 前面的文章简单介绍了在现代操作系统中,每一个进程都认为自己独占所有的计算机资源. 或者说线程就是独立的王国,进程间是相对独立的 ...

  10. sudo 启动tomcat报错没有java环境

    报错: Cannot find ./catalina.shThe file is absent or does not have execute permissionThis file is need ...