艾瑞 6.24 day03

目录

1.什么是NPE,什么情况下会发生NPE

2. new关键字的作用:

1.用于在堆区造数组

2.用于在堆区造对象:

3.数组和对象的区别:

4.基本数据类型对应的引用数据类型:

5.正序遍历数组,倒序遍历数组:

6.数组求和:

 7.数组求最大值和最小值:

8.数组求平均数:

9.数组扩容的策略:

10.数组中插入元素: 

11.数组中删除元秦:

12.反转数组:

13.使用冒泡排序算法排序数组:

14.官方的Arrays工具类:

 15.二维数组:

16.类和对象:

17.成员变量:

18.构造方法:

19.成员方法:

20. this 关键字:

21.什么是零值:


1.什么是NPE,什么情况下会发生NPE

NPE:NullPointerException 空指针异常

注意:java语言严格规定当前指针是null的时候,不允许通过指针进行操作

什么情况下会发生NPE:

1.返回类型为基本数据类型,return 包装数据类型的对象时,自动拆箱有可能产生 NPE。

2.数据库的查询结果可能为 null。

3.集合里的元素即使 isNotEmpty,取出的数据元素也可能为 null。

4.远程调用返回对象时,一律要求进行空指针判断,防止 NPE。

5.对于Session中获取的数据,建议进行 NPE检查,避免空指针。

6.级联调用 obj.getA().getB().getC();一连串调用,易产生 NPE。

如何防止NPE?很多方法都会出现NPE,因为null不能进行+操作,null不能进行>操作,null不能进行<操作 解决:if (arr[i]==null){break;}

当你使用指针进行操作的时候,如果不确定指针是否为null应该对指针做非空判断,判断指针为nu11时,使用new关键字开辟内存空间if(指针==null){指针=new...}

2. new关键字的作用:

new关键字的作用是在堆区开辟内存空间,并返回该内存空间的内存地址
 

1.用于在堆区造数组

new 数据类型[长度]

数据类型[长度]:数组的构造器(是系统默认就有的,任何一种数据类型都可以使用数组构造器来构造数组)

例如:new int[10],数组构造器只能用这个格式

2.用于在堆区造对象:

new 构造方法():

3.数组和对象的区别:

数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。

数组和对象的另一个区别是,数组的数据没有”名称”(name),对象的数据有”名称”(name)。

数组中所有的元素都是同一种类型

数组中的元素没有名字,只有索引

例如:int[] arr=new int[10];  10个元素全是int,只能存储10个整数

4.基本数据类型对应的引用数据类型:

Java中的数据类型可以分为两大类:基本数据类型和引用数据类型。

例如:

Integer int 类型对应的引用数据类型 , 默认值是 null

5.正序遍历数组,倒序遍历数组:

正序遍历数组:

 

倒序遍历数组:

6.数组求和:

 7.数组求最大值和最小值:

求最大值:

求最小值:

8.数组求平均数:

9.数组扩容的策略:

10.数组中插入元素: 

11.数组中删除元秦:

 

12.反转数组:

13.使用冒泡排序算法排序数组:

14.官方的Arrays工具类:

JDK 提供了一个工具类专门用来操作数组的工具类,即 Arrays,该 Arrays 工具类提供了大量的静态方法,在实际项目开发中,推荐使用,这样既快捷又不会发生错误。

Arrays:针对数组进行操作的工具类。

 

 15.二维数组:

二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。

 

16.类和对象:

类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。它们的关系是,对象是类的实例,类是对象的模板。对象是通过new classname产生的,用来调用类的方法;类的构造方法 。

17.成员变量:

静态变量可以直接使用类名操作
成员变量不能使用类名操作
静态变量在类加载的时候初始化,可以被加载出来,成员变量在类加载的时候没有初始化,不能被加载出来

18.构造方法:

new 构造方法():对象的构造器,对象的构造器是类里面提供的

例如:new student();

这个new后面的student()是一个构造方法,是编译器给你自动生成的,在字节码文件中可以看到他

对象的构造方法可以自定义,可以自定义参数

1.构造方法使用public修饰

2.构造方法没有返回值类型(连void都没有)

3.构造方法的名字必须与当前类名相同,大小写也必须一样

4.构造方法的内部有一个特殊的this指针,指向当前对象

5.如果一个类没有手动指定构造方法,则编译器会提供一个默认的无参构造方法,如果手动指定了构造方法,则编译器不再提供默认的无参构造方法。

无参构造方法存在的意义?

new Student()在堆区里面构造一个对象,对象中的元素存储的数据还未知的时候,可以使用无参构造方法,后续的代码在获得数据以后,可以通过指针操作对象,读写数据

带参构造方法存在的意义?

在堆区里面构造一个对像,已经很明确知道对象中存储的是什么内容,就可以使用带参构造方法,更加便捷

19.成员方法:

成员方法就是对象所具有的动态功能。

成员方法基本格式如下: 访问修饰符:public(公共的);protected(受保护的);无修饰符和private(私有的)。 修饰符:对属性特征的描述:如static,final,abstract 等等。 返回值类型:方法返回数据的类型。 方法名称:任何合法标识符。 参数:可以有多个,使用逗号分隔。 方法体:该方法具体实现功能的地方。 构造函数:是特殊的成员方法,他的作用是创建对象并初始化成员变量。 构造函数定义规则:构造方法的方法名,必须和类名一致。 每个类都有一个隐藏的无参构造函数。

20. this 关键字:

this 关键字指代类的当前实例,还可用作扩展方法的第一个参数的修饰符。

用哪一个指针调用成员方法入栈执行,那么栈帧中的this就指向哪个对象,只有构造方法和成员方法有this,静态函数中没有this.

 

21.什么是零值:

零值是指当你声明变量(分配内存)并未显式初始化时,始终为你的变量自动设置一个默认初始值的策略。

'':空字符,"":空字符串,null空地址(真正意义上的空值)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值