NPE就是空指针异常,当出现使用null进入数组或者对象时会出现NPE。
如何防止NPE?当你使用指针进行操作的时候,如果不确定指针是否为null应该对指针做非空判断,判断指针为null时,使用new关键字开辟内存空间
if(指针==null){指针=new...}
2、new关键字的作用1、用于在堆区造数组
new 数据类型[长度]
数组的构造器是系统默认就有的,任何一种数据类型都可以使用数组构造器来构造数组
例如:new int[10]
2、用于在堆区造对象
new 构造方法()
对象的构造器是类里面提供的
例如:new Student();
这个new后面的Student()是一个无参构造方法,是编译器给你自动生成的,在字节码文件中可以看到他。
对象的构造方法可以自定义
1、构造方法使用public修饰
2、构造方法没有返回值类型(连void都没有)
3、构造方法的名字必须与当前类名相同
4、构造方法的内部有一个特殊的this指针,指向当前对象
5、如果一个类没有手动指定一个构造方法,则编译器会提供一个默认的无参构造方法;如果手动指定了构造方法,则编译器将不再提供默认的构造方法。
3、数组和对象的区别1、数组和对象的创建方式不同;
2、对象没有长度;
3、调用方式不同;
4、对象值唯一,数组值可以重复;
4、基本数据类型对应的引用数据类型byte byte
short short
int Integer
long long
float float
double double
char character
boolean boolean
5、正序遍历数组,倒序遍历数组6、数组求和
7、数组求最大值和最小值
8、数组求平均数
9、数组扩容的策略
10、数组中插入元素
11、数组中删除元素
12、反转数组 13、使用冒泡排序算法排序数组
14、官方的Arrays工具类
* Arrays:针对数组进行操作的工具类。比如说排序和查找。没有构造,方法全部是静态。 * 1:public static String toString(int[] a) 把数组转成字符串(不只是int[]类型,只要是数组类型就可以用) * 2:public static void sort(int[] a) 对数组进行排序 * 3:public static int binarySearch(int[] a,int key) 二分查找 补充: * 4:public static15、二维数组List asList(T... a):把数组转成集合 * * 注意事项: * 虽然可以把数组转成集合,但是集合的长度不能改变。 // 定义一个数组 List list = Arrays.asList("hello", "world", "java"); list.set(1, "javaee"); for (String s : list) { System.out.println(s); }
16、类和对象
类是对象的模板,类是方法区的字节码文件;
对象是new关键字在堆区开辟的内存空间。
17、成员变量成员变量在一个类中并且在函数外面,没有使用static修饰成静态变量,这样的变量称为成员变量。
18、构造方法就是类用来构造对象时调用的方法,分为无参构造和有参构造。
例如:new Student();
这个new后面的Student()是一个无参构造方法,是编译器给你自动生成的,在字节码文件中可以看到他。
对象的构造方法可以自定义
1、构造方法使用public修饰
2、构造方法没有返回值类型(连void都没有)
3、构造方法的名字必须与当前类名相同
4、构造方法的内部有一个特殊的this指针,指向当前对象
5、如果一个类没有手动指定一个构造方法,则编译器会提供一个默认的无参构造方法;如果手动指定了构造方法,则编译器将不再提供默认的构造方法。
19、成员方法访问修饰符 返回参数类型 方法名(形参列表){
语句;
return 返回值;
}
为对象实现特定功能,主要是提高代码的复用性
成员方法的使用:
20、this关键字作用:1、当成员变量和局部变量重名的时候,使用this关键字区分;
2、哪个对象调用了this所在的函数,this就指代哪个对象
stu2和stu3分别调用Student()构造方法将“关羽”和“赵云”写入两个对象的name里,this用来指代不同的对象。
静态函数、成员方法、成员变量、构造方法区别:
调用方法:
构造方法被调用:
new 构造方法的方法名()
成员方法被调用:
对象指针.方法名();
静态方法被调用:
类名.静态方法名();
21、什么是零值?
定义数据类型后的初始默认值:
byte 0;
short 0;
int 0;
long 0;
float 0.0;
double 0.0
char u0000
Boolean false;
string null。



