好程序员Java教程分享:Java工程师常见面试题
好程序员 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: 打破了封装性