好程序员Java教程分享:Java工程师常见面试题
一:BigInteger
(1)针对大整数的运算:可以让超过Integer范围内的数据进行运算。
(2)构造方法
A:BigInteger(String s)
(3)成员方法(自己补齐)
BigInteger b1=new BigInteger("100");
BigInteger b1=new BigInteger("50");
A:加:b1.add(b2);//150
B:减:b1.subtract(b2);//50
C:乘:b1.multiply(b2);//500(这个面试题考过)
D:除:b1.divide(b2);//2
二:面试题:
(1)静态代码块,构造代码块,构造方法的顺序问题?
静态代码块>构造代码块>构造方法其中静态代码块(只执行一次)
(2)当Son s=new Son();时父类和子类中各种代码执行顺序。(先进行父类初始化,然后进行子类初始化)
父类静态代码块1
子类静态代码块2
父类构造代码块3
父类无参构造方法4
子类构造代码块5
子类无参构造方法6
十一:面试题
==和equals()的区别?
A:==
基本类型:比较的是值是否相同
引用类型:比较的是地址值是否相同
B:equals()
equals:Object中默认比较引用类型的地址值,而String类重写了equals()方法,比较的是内容是否相等。
三:静态变量和成员变量的区别
A:所属不同
静态变量:属于类,类变量
成员变量:属于对象,对象变量,实例变量
B:内存位置不同
静态变量:方法区的静态区
成员变量:堆内存
C:生命周期不同
静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
D:调用不同
静态变量:可以通过对象名调用,也可以通过类名调用
成员变量:只能通过对象名调用
四:final修饰 局部变量
a:基本类型 值不能发生改变 ,是常量。如:final int x=10;
b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的.
final Student s=new Student();
s.age=100;
如教室编号,302教室一旦被final确定,就没法改变,但是教室里的学生(值)是可以改变的。
五:两个面试题:
A:Override和Overload的区别?Overload是否可以改变返回值类型?方法重写和方法重载的区别。
方法重写:子类中出现了和父类中一模一样的方法声明。又称方法覆盖,方法复写
方法重载:本类中出现了方法名一样,参数列表不同的方法,与返回值无关。
B:this和super的区别和各自的作用?
this:代表当前类的对象引用,
super:代表父类存储空间的标识,(可以理解为父类的引用,通过这个东西可以访问父类的成员)
六:继承的好处:
A:提高了代码的复用性
B:提高了代码的维护性
C:让类与类产生了一个关系,是多态的前提
继承的弊端:
A:让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类。
开发的原则:低耦合,高内聚。
耦合:类与类的关系
内聚:自己完成某件事情的能力
B:打破了封装性