空指针异常,当指针没有指向在堆区而指向null时会发生NPE;
如何防止NPE?
当你使用指针进行操作的时候,如果不确定指针是否为null应该对指针做非空判断,判断指针为nu11时,使用new关键字开辟内存空间if(指针==null){指针=new.类名}
2. new关键字的作用
students atu=new students();
students atu[]=new students[2];
atu[0]=new students();
atu[1]=new students();
3.数组和对象的区别students atu[]=new students[2];//students是类名,定义数组
atu[0]=new students();//在第一位指向一个对象
atu[1]=new students();
4.基本数据类型对应的引用数据类型----------------------引用的数据-------------------------------
public class Student {
//类里面
//没有使用static修饰
//成员变量
int no;
String name;
int age;
char sex;
static String school="NAYO";
//构造方法
public Student(int no, String name,int age,char sex){
this.no=no+2;
this.name=name;
this.age=age;
this.sex=sex;
}
//成员方法
public void show(){
System.out.println("学号"+this.no);
System.out.println("名字"+name);
System.out.println("年纪"+age);
System.out.println("性别"+sex);
}
}
--------------------------------------------------------
public class demo04 {
public static void main(String[] args) {
Student stuarr =new Student(1,"zf",29,'男');
stuarr.show();
System.out.println("-- ----");
}
}
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
static Integer[] arr={1,2,3,4,5,6,7,8,null,null};
5.正序遍历数组,倒序遍历数组正序
public static void iterator(){for (int i = 0;i
倒叙
public static void reverse(){ for (int i = arr.length-1;i>=0;i--){ System.out.print(arr[i]+","); } }
6.数组求和public static void sum () {
int sum=0;
for (int i = 0; i < arr.length; i++) {
if (arr[i]==null){
continue;
}
sum +=arr[i];
}
System.out.println("累加求和"+sum);
System.out.println("平均数"+sum%arr.length);
}
7.数组求最大值和最小值
public static void max(){
int max=arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i]==null){
continue;
}
if(max<=arr[i]){
max=arr[i];
}
}
System.out.println("最大值:"+max);
}
public static void min(){
int min=arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i]==null){
continue;
}
if(min>=arr[i]){
min=arr[i];
}
}
System.out.println("最小值:"+min);
}
8.数组求平均数
System.out.println("平均数"+sum%arr.length);
9.数组扩容的策略public static void dilatation(){
System.out.println(arr.length);
Integer[] newarr =new Integer[arr.length+arr.length/2];
for (int i=0;i
10.数组中插入元素
//插入第五
public static void insert(){
for (int i = arr.length-1; i >4; i--) {
if (arr[i]==null){
continue;
}
arr[i]=arr[i-1];
}arr[4]=0;
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+",");
}
}
//插入第6
public static void insert2(int weizhi,int e){
int empty=-1;
for (int i = 0; i < arr.length; i++) {
if (arr[i]==null){
empty=i;
break;
}
}
for (int i = empty; i >=weizhi; i--) {
arr[i]=arr[i-1];
}arr[weizhi-1]=e;
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+",");
}
}
11.数组中删除元秦
public static void insert2(int weizhi,int e){
int empty=-1;
for (int i = 0; i < arr.length; i++) { if (arr[i]==null){ empty=i; break; } }
for (int i = weizhi; i
{ arr[i-1]=arr[i]; }arr[weizhi-1]=e;
for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+","); } }
12.反转数组
public static void reverse(){
for (int i = arr.length-1;i>=0;i--){
System.out.print(arr[i]+",");
}
}
13.使用冒泡排序算法排序数组
1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,就交换他们的位置 2.每一次比较,都会产生出一个最大,或者最小的数字 3.下一轮则可以少一次排序 4.依次循环,直到结束
//冒泡排序
public void sort(int[] array){
for(int i=1;i for(int j=0;j
if(array[j]>array[j+1]){
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
showArray(array);
}
14.官方的Arrays工具类
int,long,short,byte,floauble,char,double,boolean
15.二维数组
数据类型[][] 变量名=new数据类型[长度][长度];
16.类和对象
students类
students arr =new students()对象
类的概念:
类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。
对象的概念:
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角 度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。
17.成员变量
//成员变量
int no;
String name;
int age;
char sex;
static String school="NAYO";
18.构造方法
//构造方法
public Student(int no, String name,int age,char sex){
this.no=no+2;
this.name=name;
this.age=age;
this.sex=sex;
}
19.成员方法
//成员方法
public void show(){
System.out.println("学号"+this.no);
System.out.println("名字"+name);
System.out.println("年纪"+age);
System.out.println("性别"+sex);
}
20. this 关键字
在方法里使用
代替变量名
stuarr.
21.什么是零值
默认初始值



