java面试题01

1.什么是面向对象?面向对象的特点是什么?

面试对象是一种编程思想,指导我们解决问题的方式。

遇到问题,分析问题。通过分析,抽象成类,以类为模板,创建对象。使用对象的属性和方法,处理问题。
特点:封装,继承,多态,抽象。

 2.方法的重载和方法的重写有什么区别?

方法的重载:在同一个类中,允许多个方法的方法名相同但参数不同

原则:方法名相同,参数名必须不同

方法的重写:子类继承父类,在子类中对父类方法重新定义的现象

原则:方法名相同;参数相同;返回值类型相同;访问修饰符>=父类的;

3.this和super区别?

this的用法:当前对象

1.当前成员变量与局部变量重名时,用this访问成员变量

2.在当前类的构造器中,调用另一个构造器  this(实参) 必须是第一句

package this_constructor;
class Person {
	String name;
	int age;
	public Person() {
		System.out.println("Person() constructor!");
	}
	public Person(String name, int age) {
		this();	// this的第二种用法调用本类中无参构造方法
		this.name = name;//this的第一种用法
		this.age = age;
		System.out.println("Person(String name, int age) constructor!");
	}
}

super的用法:父类的

1.子类的属性和方法与父类重名,使用super调用父类的属性和方法。
super.属性名
super.方法名(实参)

2.在子类构造器中调用父类的构造器,使用super调用。
super(实参)

默认调用的是父类无参构造器,可以省略。
必须是第一句。

 4.多态产生的条件是什么?

前提条件:
继承、方法的重写、向上转型

5.静态变量和实例变量的区别?

静态变量是属于类的,可以共享给所有对象使用

实例变量是属于变量的,每一个对象独有自己的实例变量

 6.抽象类和接口的区别?

区别:
抽象类使用abstract class;接口是interface。
抽象类是单继承;接口是多继承。
抽象类中有构造器;接口中不能定义构造器。
抽象类中没有缺省方法;接口中有缺省方法。
抽象类中有变量属性;接口中只能定义常量属性。
抽象类主要是用来继承extends的;接口主要用类实现implements的。

7.请简述类加载的过程?  

(1)加载阶段
通过类名找到字节码文件,读取文件内容进行解析,创建Class对象保存属性、方法、构造器。
(2)连接阶段
验证阶段:验证类是否合法和安全问题。
准备阶段:在方法区为静态变量开辟空间,赋缺省值;为常量属性开辟空间赋初始值。
解析阶段:将符号引用转为直接引用。
(3)初始化阶段
执行属性的初始化语句和静态块,为静态变量赋予初始值。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值