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学习笔记(第8版)
[毕向东Java基础教程视频]
20145231第二周Java学习笔记的更多相关文章
- 第二周java学习总结
学号 20175206 <Java程序设计>第二周学习总结 教材学习内容总结 第二章是基本数据类型与数组,第三章是运算符.表达式和语句的内容.如果说第一章是让我们了解JAVA,那么第二章和 ...
- 2017-04-21周Java学习笔记
2017-04-21-周Java学习笔记... -------------------------------------- 计算机起源于:战争中的炮弹轨道计算.Unix操作系统是使用C语言编写的操作 ...
- 201521123110第二周Java学习总结
1.本章学习总结 本周的Java学习相对前一周更进了一步,初步学习了Java简单的输入和输出,String类的对象创建后不能修改,它是不可变的,在Java中浮点型默认是double型与C中的int型不 ...
- 第二周java学习收获
JAVA学习第二周总结 教材学习内容总结 第二章:讲了标识符与关键字,以及基本数据类型:逻辑类型.整数类型.字符类型.浮点类型. 输入输出,System.in,System.out和数组. 第三章:运 ...
- 201521123021第二周Java学习总结
1.本章学习总结 ①初步掌握了Java程序简单的输入和输出. ②回顾了运算符和表达式的使用. ③在数据类型的学习的中,要注意各类型的取值范围,特别是byte型范围很小,若为128即溢出. ④在Java ...
- 20165203《Java程序设计》第二周Java学习总结
教材学习内容总结 第二章 (一)标识符 注意: 标识符由字母.下画线.美元符号和数字组成,长度不受限制. 标识符第一个字符不能是数学字符. 标识符不能是关键字. 标识符不能是true.false和nu ...
- 《第六周java学习笔记》
教材知识点总结 Java 把 String 类定义为 final 类. new 运算符首先分配内存空间并在内存空间中放入字符序列,然后计算出引用.(new String(char a[],int st ...
- 20165319第五周java学习笔记
教材内容总结 1.String类和StringBuffer类都覆盖了toString方法,都是返回字符串. 所以带不带toString效果是一样的. 2.instanceOf运算符可以用来判断某个对象 ...
- 第二周Python学习笔记
分支结构: ① 单分支结构: 非常简单,if 条件语句,如果为true 则输出结果.否则不输出结果 ② 二分支结构: 条件结果为true则执行语句1,否则就执行语句2 If <条件>: ...
随机推荐
- 创建一个动作-Action类:
让我们创建一个Java文件HelloWorldAction.java的Java资源> SRC下一个的包名com.yiibai.struts2与下面的内容. package com.yiibai. ...
- libsvm easy.py ValueError: need more than 0 values to unpack windows下终极解决
现象是: python easy.py train test 输出: Scaling training data...WARNING: original #nonzeros 100389 new #n ...
- week 5: ;Lasso regression & coordinate descent
笔记. 岭回归, 计算回归系数时使( RSS(w)+λ||w||2) 最小 岭回归的结果会是所有的特征的weight都较小,但大多数又不完全为零. 而实际情况中,有的特征的确与输出值相关程度很高,we ...
- python3----智能检测编码的工具
f = open('C:/Users/Administrator/Desktop/100.txt', 'rb') data = f.read() # print(data) f.close() imp ...
- ios -将navigationbar的translucent属性设为No后,子控制器视图整体下移问题
如果不将navigationbar.translucent = YES 会觉得颜色很浅,因为这是半透明状态 若navigationbar.translucent = NO,颜色问题解决,但是子控制器视 ...
- TensorFlow实战:Chapter-4(CNN-2-经典卷积神经网络(AlexNet、VGGNet))
转载自:http://blog.csdn.net/u011974639/article/details/76146822 项目:https://www.cs.toronto.edu/~frossard ...
- Nginx系列之负载均衡和反响代理
NGINX介绍 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行 其特点是占有内存少,并发能力强,事实上nginx ...
- 《从零开始学Swift》学习笔记(Day 38)——构造函数与存储属性初始化
原创文章,欢迎转载.转载请注明:关东升的博客 构造函数的主要作用是初始化实例,其中包括:初始化存储属性和其它的初始化.在Rectangle类或结构体中,如果在构造函数中初始化存储属性width和hei ...
- Man-in-the-middle attack
w https://en.wikipedia.org/wiki/Man-in-the-middle_attack https://zh.wikipedia.org/wiki/中间人攻击 需要通过一个安 ...
- ASP-DateAdd时间增加
ASP内置函数DateAdd(interval, number, date) 1.interval标识你要加的日期部分,具体参数如下:yyyy → 年m → 月d → 日h → 小时n → 分钟s → ...