20145231第二周Java学习笔记
20145231 《Java程序设计》第2周学习总结
教材学习内容总结
本周的学习采用的依然是先看课本,再看视频,然后实践敲代码,最后根据学习笔记总结完成博客。
第三章:基础语法
知识点比较多比较零碎,整理的都是实际操作中可能会出错的或是之前不太理解的。
1、1字节(byte)=8位(bit),1024字节=1kb,64位的操作系统代表字节是固定由八位二进制构成,字长为64位,每个字由八个字节构成;(思考:64位操作系统与32位操作系统在于构成字的字节数量不同,具体表现就是存储空间不同)
2、负数的二进制表示:取反加一,最高位一定为一;
3、变量:将不确定的数据进行存储;(在内存中开辟空间:名称:变量名,空间类型:数据类型,数据)
4、输入整数默认为int型,输入小数默认为double型;
5、数据类型:基本数据类型和引用数据类型,其中前者又包括:数值型(byte、short、int、long、float、double)、字符型(char)、布尔型(boolean);
6、硬盘与CPU中缓存(缓冲存储空间)越大,运算量越大,效率较高;
7、同一区间内(大括号)不能重复用同一变量名定义,应当在数据不确定,又需要对数据进行存储时,定义变量;
8、运算过程中,不同类型之间不可进行运算,必要时可进行强制转换,运算中出现多种数据类型时,以大为主,小向大提升,强制转换时,可以去掉自动转换时的多余部分,也可能丢失精度;
9、字符串数据和任何数据使用+都是表示相连接,最终都会变成字符串;
10、转义字符:通过\来转变后面字母或符号的含义:\n换行,\b退格,\r按下回车键,\t制表符,相当于tab键;
11、逻辑运算符:用于连接布尔类型表达式;
12、&&与&的区别:&&效率相对更高,当其左边为假时即停止运算,同理||与|也一样,其左边为真即停止运算;
13、位运算:左移:移几位就乘以2的几次幂,右移:移几位就除以2的几次幂(带符号右移,最高位补原来数据最高位值,若是>>>符号,最高位直接补0);
14、&、|、^也可以进行位运算(先转换为二进制,按位运算后,再将二进制结果转换为十进制);
15、一个数异或同一个数两次结果还是原来的数;
16、利用右移可以进行进制转换;
17、三元运算符:优点:可以简化代码;弊端:必须要给出结果(eg:用if语句可不显示结果);
18、对比if语句和switch语句:值不多且满足byte、int、short、char类型时可用switch语句适当提高效率,其他情况一般用if语句;
19、编写代码注重格式和规范化,在编写代码先注明需求、思路、解决步骤等;
20、char类型中写中文是可以的,一个汉字为两个字节,在范围内。
教材学习中的问题和解决过程
问题一:
不理熟悉布尔类型表达式的输出结果;
解决过程:
通过看书上逻辑运算部分理解了布尔类型表达式输出只有两种结果即:true、false,在Java语言中System.out.println(3>4)和System.out.printf("%b%n",3>4)显示结果都是false即逻辑判断的结果。
问题二:看视频时思考的一个问题:用最有效率的方式计算2*8?
解决过程:要是直接计算的话需要转换成二进制计算,2*8相当于2乘以2的三次方,即:2<<3,这样就简化了运算。
问题三:如何在不用第三个变量的情况下对两个整数变量进行互换?
解决过程:定义两个变量m、n,n=n+m;m=n-m;n=n-m;(eg:11=8+3;m=11-3;n=11-8;)
问题四:System.out.println("5+5="+5+5);//显示"5+5=55",结果不是我们想要的怎么解决?
解决过程:System.out.println("5+5="+(5+5))//显示"5+5=10",通过提高运算优先级来实现。
代码调试中的问题和解决过程
首先,先是按照第一周的方法敲代码并运行,然后下载安装了IDEA,学习了简单的使用方法,使得敲代码及编译过程变得容易。如图:
然后对书上代码进行了编译,首次编译出现了问题,原因是没有定义SDK,后经设定SDK,可以成功编译,且在代码中含有println时,后面内容不能出现%n,否则就重复换行。大致操作及运行结果如图:
重新理解了递加递减运算中++i和i++的区别,如图:
通过打印九九乘法表了解了不同循环描述语句的写法,同时第二种写法可读性不是很强,但相对简练,利用了上一条知识点:++j与j++区别,结果如图:
其他(感悟、思考等,可选)
且学且珍惜。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 21/41 | |
第三周 | 500/1000 | 0/0 | 00/00 | |
第四周 | 300/1300 | 0/0 | 00/00 |
参考资料
-
[毕向东Java基础教程视频]