Java-day04

本文详细介绍了Java编程中的NPE、new关键字的用途、数组与对象的区别、基本数据类型的引用类型、数组操作、对象构造与成员方法,以及this关键字的作用。此外,还探讨了类与对象、构造方法、成员变量、静态函数与成员方法的区别,并讲解了零值的概念。最后,提到了官方的Arrays工具类及其在二维数组、类和对象操作中的应用。
摘要由CSDN通过智能技术生成

1、什么是NPE,什么情况下会发生NPE

        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 static <T> List<T> asList(T... a):把数组转成集合
 * 
 * 注意事项:
 * 		虽然可以把数组转成集合,但是集合的长度不能改变。
		// 定义一个数组
		List<String> list = Arrays.asList("hello", "world", "java");
		list.set(1, "javaee");
 
		for (String s : list) {
			System.out.println(s);
		}

15、二维数组

                

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。

                

                

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值