JAVA常见问题(长期更新)

(二创,学习中)

 

1.重写与重载的区别

方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

2.什么是多态性?什么是虚拟方法调用?

对象的多态性:父类的引用指向子类的对象。

Person p = new Man();

p.eat();

调用方法时,编译时看左边,运行时看右边

3.一个类可以有几个直接父类?(只有一个)一个父类可有多少个子类?(多个)子类能获取直接父类的父类中的结构吗?(可以)子类能否获取父类中private权限的属性或方法?(可以的)

A is a B

4.方法的重写(override/overwrite)的具体规则有哪些?

方法名、形参列表相同

权限修饰符

返回值

抛出的异常

5、super调用构造器,有哪些具体的注意点

this(形参列表):本类重载的其他的构造器

super(形参列表):调用父类中指定的构造器

6、多态是编译时行为还是运行时行为?

运行时行为。只有运行得到结果才知道。

7、==和equals()的区别

==既可以比较基本类型也可以比较引用类型,对于基本类型就是比较值,对于引用类型就是比较内存地址

equals是属于java.lang.Object类里面的方法,如果方法没有被重写就是默认==。String里面类的equals方法是被重写过的,容易误解。

主要要判断有没有自定义类里面重写Object的equals方法。

8、static可以理解成什么?

可以看作类变量(随着类的加载而加载),属于共享的静态变量。不需要实例对象,就可以调用变量。

9、堆、栈和方法区域

栈:局部变量c1,c2

堆:new出来的结构:对象、数组name、age

方法区:类的加载信息、静态域、常量池nation

10、静态和非静态代码块的区别?

静态跟着类运行而运行,不能调用非静态结构

非静态随着对象创建而运行,非静态可以调用非静和静的属性和方法

11、属性可以赋值的位置

1、默认初始化

2、显式初始化/5在代码块中赋值

3、构造器中初始化

4、有对象后,可以用“对象.属性”或者“对象.方法”的方式赋值

12、linux命令jps意思是什么

  1. jps是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,

  2. 非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值