因为疫情原因,我们被隔离在了寝室,准确来说是不能出寝室楼。当然,所有的供给由学校免费提供,但有时的确让人感到惶恐。
在宿舍学习的效率真的不是很高,没有上床下桌,把电脑放在床上桌上已经很不错了,最近也有在学习Java,只是没有持续的去更新笔记,在此对近期笔记进行汇总,也算是自己再简单的温习一下。
一、明确目标
1.我简单的思考了一下为什么学习Java?
本次系统的学习对于我来说很重要,大学毕业前最后一次系统的学习Java了,差缺补漏,认真的去听老师的每一句话,添加一些自己的理解。
二、笔记的具体内容
1.对于字符串的比较问题:
(1)当使用 == 判断时
对于基本数据类型, == 判断的是数值是否相同;但是对于引用数据类型,判断的是是否引用同一个数据对象(也就是前后两个元素的地址是否相同)
(2)利用Java中的方法
很明显当我们只想比较两个字符串的内容是否相同 == 是不适用的,所以Java为我们提供了一种方法
equals方法
str1.equals(str2);
2.在ASCII码表中,大小写字母之间相差 32 位
3.排序分为两大类:
(1)内部排序:将待处理的数据加载到内部存储器中进行排序。
(2)外部排序:当数据量过大无法加载到内存中时,就要借助外部存储进行排序。
4.对于二维数组如何获得横度和广度的大小
int [] [] arr = {{1,2,3}, {4,5,6}};
通过 arr.length 得到的是一维数组的个数,每个一维数组的长度获取方式为 arr[i].length
5.二维数组的每一个元素都是一维数组
6.对于二维数组中,多个元素之间的容量可以不同,从行列的角度而言,可以列数不固定
7.类与方法:
(1)对于一个类而言,可以理解为程序员自定义的数据类型
(2)类包含成员变量与成员方法
(3)对象是类的一个实例化
(4)对于各种数据类型的默认值:
byte、short、int 的默认值都是 0
long 的默认值为 0L
float 的默认值为 0.0f
double 的默认值为 0.0d
char 的默认值为 ‘\u0000’
String 的默认值为 null
boolean 的默认值为 false
(5)对于类中被调用的方法,调用结束后就会自动销毁
(6)对于重复的部分,可以提取出来封装成一个单独的类,可以提高代码的复用性
8.类和对象的内存分配机制:
(1)Java内存的结构分析
栈:一般存放基本数据类型
堆:用来存放对象,存一些引用数据类型的值,在栈中存放引用数据类型的变量名和对应在堆中的地址
方法区:常量池,加载类的信息
示图区:
(2)创建对象时的内存分配流程
1)先加载类的信息。
2)在堆中创建一块区域加载类的信息(在堆中分配空间),并对成员变量进行初始化。(初始化的值可以参考7.(4))
3)把创建的地址分配给相应的对象
4)进行指定初始化。