1.什么是NPE,什么情况下会发生NPE
当你使用指针进行操作的时候,如果不确定指针是否为null应该对指针做非空判断,判断指针为nu11时,使用new关键字开辟内存空间if(指针==null){指针=new......}
2. new关键字的作用
-
用于堆区造数组
New 数据类型[长度]:
数组的构造器是系统默认就有的,任何一种数据类型都可以使用数据构造器来构造数组
例如: new int[10]
2.用于堆区造对象
- 用于堆区造数组
New 数据类型[长度]:
数组的构造器是系统默认就有的,任何一种数据类型都
可以使用数据构造器来构造数组
例如: new int[10]
2.用于堆区造对象
New 构造方法():
对象的构造器是类里面提供的
例如:new Student()
这个new后面的Student()是一个构造方法,是编译器自动给你生成的;在字节码文件中可以看到他
对象的构建方法可以自定义,自定义参数
- 构造方法使用public修饰
- 构造方法没有返回值类型(连void都没有)
- 构造方法的名字必须与当前类名相同
- 构造方法的内部都要一个this指针,指向当前对象
- 如果一个类没有手动指定构造方法,则编译器会提供一个默认的无参构造方法,如果手动指定了构造方法,则编译器将不在提供默认的无参构造方法。
3.数组和对象的区别
1、数组表示有序数据的集合,而对象表示无序数据的集合。
2、数组的数据没有”名称”,但是有对应的索引;对象的数据有”名称”(属性名),而对象因为是无序数据的集合,所以不存在索引。
4.基本数据类型对应的引用数据类型
基本数据类型 对应的引用类型(表达空概念)
1> byte ------ Byte
2> short ------ Short
3> int ------ Integer
4> long ------ Long
5> char ------ Character
6> float ------ Float
7> double ------ Double
8> boolean ------ Boolean
5.正序遍历数组,倒序遍历数组
6.数组求和
7.数组求最大值和最小值
8.数组求平均数
9.数组扩容的策略
10.数组中插入元素
11.数组中删除元秦
12.反转数组
13.使用冒泡排序算法排序数组
14.官方的Arrays工具类
Arrays类的常见操作
- 排序 :
sort()
- 查找 :
binarySearch()
- 比较:
equals()
- 填充 :
fill()
- 转列表:
asList()
- 转字符串 :
toString()
- 复制:
copyOf()
15.二维数组
二维数组其实就是一个特殊的一维数组,一维数组中每个元素就是一个一维数组
16.类和对象
类是对现实生活中一类具有共同属性和行为的事物的抽象
类是对象的数据类型,类是具有相同属性和行为的一组对象的集合
简单理解:类就是对现实事物的一种描述
类是对象的模板。它定义对象的属性,并提供用于以创建对象的构造方法以及操作对象的普通方法。
类也是一种数据类型。可以用它声明对象引用变量。对象引用变量中似乎存放了一个对象,但事实
上,它包含的只是对该对象的引用。严格地讲,对象引用变量和对象是不同的,但是大多数情况下,
它们的区别是可以忽略的。
对象是类的实例。可以使用new操作符创建对象,使用点操作符(.)通过对象的引用变量来访问该
对象的成员。
17.成员变量
成员变量是在类体中定义的变量,即全局变量,成员变量用于定义对象的状态。
18.构造方法
定义:就是类构造对象时调用的方法,主要用来实例化对象。构造方法分为无参构造方法、有参构造方法。
概念:构方法是一种特殊的“成员方法”
1,构造方法作用:(1)构造出来一个类的实例 (2)对构造出来个一个类的实例(对象)初始化
2,构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有
3,主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的
4,类中必定有构造方法,若不写,系统自动添加无参构造方法。接口不允许被实例化,所以接口中没有构造方法
5,不能被static、final、synchronized、abstract和native修饰
6,构造方法在初始化对象时自动执行,一般不能显式地直接调用.
当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应
完成构造函数的调用]
7,构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动
但是经常将他设计为进行各种初始化活动,比如初始化对象的属性
8,构造代码块:
(1)作用:给对象进行初始化,对象一建立就执行,而且优先于构造函数执行
(2)构造代码块和构造函数的区别:
构造代码块是给所有不同对象的共性进行统一初始化,构造函数是给对应的对象进行初始化
9,自定义类中,如果不写构造方法,java系统会默认添加一个无参的构造方法。
如果写了一个有参的构造方法,就一定要写无参构造方法。一般情况下,我们自定义的类都要手动给出无参构造方法。
19.成员方法
成员方法就是对象所具有的动态功能。Java 类中方法的声明采用以下格式:
修饰符 返回值类型 方法名(参数类型 参数名,参数类型 参数名2,....){
方法体语句;
return 返回值;
}
修饰符: public
返回值类型 :数据类型,基本类型、引用类型、类
方法名: 自己取的一个名字,遵循标识符命名
参数类型:各种数据类型
参数名:就是变量,遵循标识符的规范,尽量望文生意
方法体语句:就是完成功能的代码块
return: 结束方法,如果有返回值类型,需要使用return 返回一个对应类型的值,如果没有,可以省略return
20. this 关键字
(1)this代表当前对象的一个引用。所谓当前对象,指的是调用类中方法或属性的那个对象。
(2)this只能在方法内部使用,表示对“调用方法的那个对象”的引用。但要注意,如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用即可。当前方法中的this引用会自动应用于同一类中的其他方法。
(3)this不能用于静态方法。main方法也是静态的,所以this也不能用于main方法。
(4)可以使用this关键字调用重载构造方法。避免相同的初始化代码,只能在构造方法中用,并且必须位于构造方法的第一句。并且,除了构造器之外,编译器禁止在其他任何方法中调用构造器。
21.什么是零值
所谓零值就是当前变量对应的内存空间中,所有的二进制为都是"0",这就是"0"值。 "0"值最重要的是对应数据对外效果,不同的数据类型"0"值是不一样的