(二创,学习中)
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意思是什么
-
jps是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,
-
非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。