JavaSE面试题集

重载和重写的区别

 方法的重载条件:

  • 方法名称相同
  • 返回值可以一样,可以不一样
  • 参数列表不同【参数数据类型、参数个数、顺序】

 方法的重写条件:

  • 方法名称相同
  • 返回值相同,如果返回值是父子关系,也可以认为是重写的
  • 参数列表相同【 参数数据类型、参数个数、顺序】
  • 父类被static、private修饰的方法、构造方法都不能被重写

在这里插入图片描述
相同点:方法名称一定不能修改


this 和 super 的区别

相同点:

  • 都是Java中的关键字
  • 只能在类的非静态方法中使用,用来访问非静态成员方法和成员变量
  • 在构造方法中调用时,必须是构造方法中的第一条语句,并且不能同时存在

不同点:

  • this是当前对象的引用,当前对象即调用实例方法的对象,super相当于是子类对象中从父类继承下来部分成员的引用
    2.在非静态成员方法中,this用来访问本类的方法和属性,super用来访问父类继承下来的方法和属性
  • 在构造方法中:this(...)用于调用本类构造方法,super(...)用于调用父类构造方法,两种调用不能同时在构造方法中出现
  • 构造方法中一定会存在super(...)的调用,用户没有写编译器也会增加,但是this(...)用户不写则没有

Java的基本数据类型和引用数据类型

   基本数据类型

  • 整数型:byte、short、long、int
  • 浮点型:float、double
  • 字符型:char
  • 布尔型:boolean

                 没有讨论在32位下还是64位下
             不管是多少位操作系统下,都是这个字节数
在这里插入图片描述


   引用数据类型

  • String
  • 数组
  • 接口

static关键字

  •   static修饰的成员变量
  1. static修饰的成员变量属于类的变量,储存在方法区中,随类的加载而被加载,不再属于对象,不再依赖于对象。
  2. 静态成员变量不属于某个对象,是类的属性,是多个对象共享的,即使创建多个对象也不会新增第二个静态成员变量。
  3. 在其类外使用时需要用类名进行访问,但也可以用当前对象的引用进行访问,但是这种方法不合理。
  4. 生命周期伴随类的一生:随类的加载而创建,随类的卸载而销毁。(当用类名进行访问类的属性时,类就会被加载,进而这些静态成员变量就会被创建)
  5. 方法中不能定义和使用静态成员变量,在方法当中定义的变量是局部变量,而静态的变量属于类变量。随着类的加载而被创建,而局部变量是调用该方法的时候,才创建的。所以,此时两种变量的性质是冲突的。Java当中不允许定义局部的静态变量

  •   static修饰的成员方法
  1. 静态成员方法不属于某个具体的对象,属于类的方法。
  2. 要用类名的方式调用,也可以用当前对象的引用进行调用,但是这样调用不合理
  3. 静态成员方法里面不能任何访问非静态的成员变量或成员方法,也不能出现this参数,因为这些都是依赖于对象的,而静态成员方法属于类的方法,不依赖于对象

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值