java学习笔记(day06)
0x00 数组
1.获取数组内数据
直接打印数组名称,得到的是数组对应的内存哈希值。
访问数组元素的格式:数组名称【索引值】
索引值:就是一个int数字,代表数组当中元素的编号。
【注意】:索引值从0开始,一直到“数组长度-1”为止。
2.访问数组元素进行赋值
使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值。规则如下:
如果是整数类型,那么默认为0;
如果是浮点类型,那么默认为0.0;
如果是字符类型,那么默认为'\u0000';
如果是布尔类型,那么默认为false;
如果是引用类型,那么默认为null。
注意事项:静态初始化其实也有默认值的过程,只不过系统自动马上将默认值替换成为了大括号当中的具体数值。
3.Java中的内存划分
Java的内存需要划分为5个部分:
- 栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。
局部变量:方法的参数,或者是方法()内部的变量。
作用域:一旦超出作用域,立刻从栈内存当中消失。 - 堆(Heap):凡是new出来的东西,都在堆当中。
堆内存里面的东西偶读有一个地址值:16进制 - 方法区(Method Area):存储.class相关信息,包含方法的信息。
- 本地方法栈(Native Method Stack):于操作系统相关。
- 寄存器(pc Register):与CPU相关。
4.数组索引越界异常
如果访问数组元素的时候,索引编号并不存在,那么将会发生数组索引越界一场。
简单点来说,就是数组的索引编号写错了。
5.空指针异常
PS:所有的引用类型变量,都可以赋值为一个null,但是代表其中什么都没有。
数组必须进行new初始化才能使用其中的元素。如果只是赋值了一个null,没有进行new创建,那么将会发生空指针异常。
原因:忘了new。
解决:补上new。
6.获取数组长度
如何获取数组的长度,格式:
数组名称.length
根据上面的方式,会得到一个Int数字,代表数组长度。
数组一旦创建,程序运行起见,长度不可改变。
7.数组的遍历输出
数组遍历,说的就是对数组当中的每一个元素进行逐一、挨个儿处理。默认的处理方式就是打印输出。
还可以利用数组的长度来进行循环输出。
8.数组元素的反转
数组元素的反转:
本来的样子:【1,2,3,4】
之后的样子:【4,3,2,1】
要求不能使用新数组,就永远原来的唯一一个数组。
- 数组元素的反转,其实就是对称位置的元素交换。
- 通常遍历数组用的是一个索引,现在表示对称位置需要两个索引。
- 交换两个变量。
- 当最大和最小值相同时,停止交换;当最小值大于最大值的时候,停止交换。
9.数组作为方法参数/方法返回值
数组可以作为方法的参数。
当调用方法的时候,向方法的小括号进行传参,传递进去的其实是数组的地址值。
一个方法当中可以有0、1、多个参数,但是只能有0或者1个返回值,不能有多个返回值。
如果希望一个方法当中产生了多个结果进行数据返回,可以使用一个数组作为返回值类型。
任何数据类型都能作为方法的参数类型,或者返回值类型。
数组作为方法的参数,传递进去的其实是数组的地址值。
数组作为方法的返回值,返回的其实也是数组的地址值。
0x01 面向对象
面向过程:当需要视线一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节。
面向对象:当需要视线一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事。
特点
面向对象思想是一种更符合我们思考习惯 的思想,他能将复杂的事情简单化,并将我们从执行者变成了指挥者。面向对象的预言中,包含了三大基本特征,即封装,继承和多态。