20155339 2016-2017 2 《Java程序设计》第2周学习总结
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.枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。
- 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,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 | 
- 计划学习时间:15小时 
- 实际学习时间:12小时 
- 改进情况:更合理的利用了时间,稍微提高了写效率。 
参考资料
20155339 2016-2017 2 《Java程序设计》第2周学习总结的更多相关文章
- 20155306 2016-2017-2 《Java程序设计》第九周学习总结
		20155306 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 Java语言访问数据库的一种规范,是一套API ... 
- 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结
		20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ... 
- 20155331 2016-2017-2 《Java程序设计》第九周学习总结
		20155331 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC是什么? JDBC代表Java数据库连接,这对Java编程语言和广泛的数据库之间独立 ... 
- 20145213《Java程序设计》第九周学习总结
		20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ... 
- 20145213《Java程序设计》第二周学习总结
		20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ... 
- 20145213《Java程序设计》第一周学习总结
		20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ... 
- 21045308刘昊阳 《Java程序设计》第九周学习总结
		21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ... 
- 20145330孙文馨   《Java程序设计》第一周学习总结
		20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ... 
- 20145337 《Java程序设计》第九周学习总结
		20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ... 
- 20145337 《Java程序设计》第二周学习总结
		20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ... 
随机推荐
- C对64位整数类型的支持
			在使用C语言过程中可能需要接触长整数类型,其中包括固定长度数据类型的声明.输入输出函数的标志符等细节,在此记录. int64_t 与 uint64_t C的标准只规定特定数据类型需要实现的最小长度,特 ... 
- jquery实现的时间轴
			代码 样式文件style.css 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 
- asp,mdb,工具
			<%set conn=Server.CreateObject("ADODB.Connection")conn.Provider="Microsoft.Jet.OLE ... 
- 2018-2019-2 网络对抗技术 20165322 Exp3 免杀原理与实践
			2018-2019-2 网络对抗技术 20165322 Exp3 免杀原理与实践 目录 实验内容与步骤 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ... 
- Kali-linux Arpspoof工具
			Arpspoof是一个非常好的ARP欺骗的源代码程序.它的运行不会影响整个网络的通信,该工具通过替换传输中的数据从而达到对目标的欺骗.本节将介绍Arpspoof工具的 使用. 9.8.1 URL流量操 ... 
- jquery全选 反选
			//全选 反选 $('#chkAll').on('click',function(){ $('input.chkbox').prop('checked',$(this).prop('checked') ... 
- [LuoguP1360][USACP07MAR]黄金阵容均衡
			[LuoguP1360][USACP07MAR]黄金阵容均衡(Link) 每天会增加一个数\(A\),将\(A\)二进制分解为\(a[i]\),对于每一个\(i\)都增加\(a[i]\),如果一段时间 ... 
- 07 consistent gets、db block gets的简单精辟的理解
			consistent gets.db block gets的简单精辟的理解 consistent gets:一致性读,为了保持读一致性而获取的块,其中可能包括undo block,也有包括非u ... 
- C# 依据鼠标坐标取网页内成员坐标.ie
			C# 根据鼠标坐标取网页内成员坐标.ie 有时候你需要后台获取ie浏览器 鼠标所在位置的元素坐标,然而你使用屏幕坐标是不可行的 所以我们需要把坐标转换成浏览器内坐标 然后再通过elementFromP ... 
- PHP && ,and ,||,or 的区别
			PHP中的逻辑“与”运算有两种形式:AND 和 &&,同样“或”运算也有OR和||两种形式. 如果是单独两个表达式参加的运算,两种形式的结果完全相同,例如 $a AND $b和$a & ... 
