好程序员
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:
打破了封装性