day04博客整理 一.什么是NPE,什么情况下会发生NPE

NPE是NullPointerException的缩写,为空指针异常

 

(1)当一个对象不存在时又被调用其方法会产生异常

(2)当访问或修改一个对象不存在的字段时会产生异常

(3)字符串变量未初始化

(4)   接口类型的对象没有用具体的类初始化

java n区别 r java的npe_jvm

如何防止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值

五.正序遍历数组,倒序遍历数组

java n区别 r java的npe_学习_02

java n区别 r java的npe_java_03

六.数组求和

七.数组求最大值和最小值

八.数组求平均数 九.数组扩容的策略 十.数组中插入元素 十一.数组中删除元素 十二.反转数组

十三.使用冒泡排序算法排序数组 十四.官方的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中,成员变量是指在类体的变量部分中定义的变量,在成员方法之内,也称为属性。成员变量声明在类中,方法体之外,在创建对象时实例化;成员变量可被类中的方法、构造方法以及特定类的语句块访问。如果声明成员变量时没对其初始化,则系统会使用默认值初始化成员变量。

十八.构造方法

  1. 构造方法使用public修饰
  2. 构造方法没有返回值类型,甚至连void都可以没有
  3. 构造方法的名字必须与类名相同
  4. 构造方法的内部有一个this指针,指向当前对象
  5. 如果一个类没有手动指定的构造方法

十九.成员方法

在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.引用本类的构造函数,必须写在构造函数的第一行

二十一.什么是零值

当你在声明一个变量时,未进行赋值初始化操作时,该变量默认值的初始值。