day04博客整理 一.什么是NPE,什么情况下会发生NPE
NPE是NullPointerException的缩写,为空指针异常
(1)当一个对象不存在时又被调用其方法会产生异常
(2)当访问或修改一个对象不存在的字段时会产生异常
(3)字符串变量未初始化
(4) 接口类型的对象没有用具体的类初始化
如何防止NPE?
重点关注报错发生的所在行,通过空指针异常产生的两条主要原因诊断具体的错误。
同时为了避免空指针的发生,最好在做判断处理时将“null”或者空值放于设定的值之前。当你使用指针进行操作的时候,如果不确定指针是否为null应该对指针做非空判断,判断指针为null时,使用new关键字开辟内存空间if(指针==null){指针=new}
二. new关键字的作用
1.用于在堆区造数组 new 数组类型[长度]
数组的构造器是系统默认就拥有的,任何一种数据类型都可以使用数组构造器来构造数组
2.在堆区造对象 new 构造方法()
对象的构造器是类里面提供的
三.数组和对象的区别
1. 数组是同一数据类型的有序数据的组合,而对象则可以是多种数据类型的无序数据组合;
2.数组中是通过下标(索引)来调用对应储存的元素值,且数组中没有名字只有索引,
3.对象是在程序运行时分配内存空间时产生的,为动态的
四.基本数据类型对应的引用数据类型
java 为每种基本类型都提供了对应的封装类型,分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean。引用类型是一种对象类型,它的值是指向内存空间的引用,就是地址。
其中int对应的Integer,默认值为null值
五.正序遍历数组,倒序遍历数组
六.数组求和
七.数组求最大值和最小值
八.数组求平均数 九.数组扩容的策略 十.数组中插入元素 十一.数组中删除元素 十二.反转数组
十三.使用冒泡排序算法排序数组 十四.官方的Arrays工具类
使用Arrays工具类的时候要进行导包
import java.util.Arrays;
1.void sort(type[] a)
该方法对 a 数组的数组元素进行排序。
2.Arrays.binarySearch(int [ ] arr, key)
二分查找有序数组的key值,如果数组包含key,则返回该下标,如果没有找到返回一个负数。
3.Arrays.equals(int [ ]arr1, int [ ]arr2)
比较arr1和arr2数组,如果下标对应值都相等,则返回true,否则返回false;
4.Arrays.toString(int [ ] arr);
将基本数据类型的数组转换成字符串。如byte [ ],boolean [ ],short [ ],char [ ],int [ ],float [ ] , long [ ] , double [ ] 。
5.int binarySearch(type[] a, int fromIndex, int toIndex, type key)
这个方法与前一个方法类似,但它只搜索 a 数组中 fromIndex 到 toIndex 索引的元素。调用该方法时要求数组中元素己经按升序排列,这样才能得到正确结果。
8)void sort(type[] a)
该方法对 a 数组的数组元素进行排序。
十五.二维数组
二维数组,本质上是以数组作为数组元素,即“数组的数组”,二维数组组织为矩阵,可以表示为行和列的集合。
十六.类和对象
类和对象之间是抽象与具体的关系。类是一个模板,是对一类事物的抽象描述,而对象用于表示现实中该事物的个体。类是在对象之上的抽象,对象则是类的具体化,是类的实例。
十七.成员变量
java中,成员变量是指在类体的变量部分中定义的变量,在成员方法之内,也称为属性。成员变量声明在类中,方法体之外,在创建对象时实例化;成员变量可被类中的方法、构造方法以及特定类的语句块访问。如果声明成员变量时没对其初始化,则系统会使用默认值初始化成员变量。
十八.构造方法
- 构造方法使用public修饰
- 构造方法没有返回值类型,甚至连void都可以没有
- 构造方法的名字必须与类名相同
- 构造方法的内部有一个this指针,指向当前对象
- 如果一个类没有手动指定的构造方法
十九.成员方法
在Java中,方法只能作为类的成员,故称为成员方法。方法操作类定义的数据,以及提供对数据的访问的代码。一个类或对象可以有多个成员方法,对象通过执行它的成员方法对传来的消息作出响应,完成特定的功能。成员方法一旦定义,便可在不同的程序段中多次调用,故可增强程序结构的清晰度,提高编程效率。
1.形参列表:表示成员方法的输入,如text(int n), Sum(int num1,int num2)
2.返回数据类型:表示成员方法输出,void表示没有返回值
3.方法主体:表示为了实现某一功能的代码块
4. return语句不是必须的
方法的声明:权限修饰符 返回值类型 方法名(形参列表){
方法体 }
二十. this 关键字
this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。
this的用法在java中大体可以分为3种:
1.普通的直接引用,this相当于是指向当前对象本身。
2.形参与成员名字重名,用this来区分:
3.引用本类的构造函数,必须写在构造函数的第一行
二十一.什么是零值
当你在声明一个变量时,未进行赋值初始化操作时,该变量默认值的初始值。