Java 初中级程序员面试题宝典,持续更新中~

Java 基础部分

1.&与&&区别?

&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件
不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止。

2.使用 final 关键字修饰一个变量时,是引用不能变,还是

引用的对象不能变?
使用 final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容
还是可以改变的。

3.静态变量和实例变量的区别

在语法定义上的区别:
静态变量前要加 static 关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变
量才会被分配空间,才能使用这个实例变量。
静态变量不属于某个实例对象,而是属于类, 所以也称为类变量,只要程序加载了类的字
节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。
总之,实例变量必须创建对象后才可以通过这个对象 来使用,静态变量则可以直接使用类
名来引用。
静态变量使用时,通过类名.名称,实例变量必须要初始化后才能使用。实例变量是实例化后才
会分配空间,而静态变量当类加载时会分配空间

4.是否可以从一个 static 方法内部发出对非 static 方法

的调用?

不可以。因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该
对 象上进行方法调用,而 static 方法调用时不需要创建对象,可以直接调用。也就是说,
当一 个 static 方法被调用时,可能还没有创建任何实例对象,如果从一个 static 方法中
发出对非 static 方法的调用,那个非 static 方法是关联到哪个对象上的呢?这个逻辑无
法成立,所以, 一个 static 方法内部不可以发出对非 static 方法的调用。非 static 方法
可以访问 static 方法.static 方法不能访问非 static 方法

5."=="和 equals 方法究竟有什么区别?

==如果判断值类型的话,判断内容是否相同。如果判断引用类型则是判断内存地址是否
相同
Equals 判断值内容是否相等

6.Integer 与 int 的区别

Integer 是引用类型,默认值是 null。而 int 是是值类型默认值是 0

7.请说出作用域 public, private, protected,以及不写

时的区别

这四个作用域的可见范围如下表所示。
说明:如果在修饰的元素上面没有写任何访问修饰符,则表示 friendly。
作用域      当前类        同一包( package)     子孙类       其他包( package)
public             √                √                                   √                √
protected       √                √                                   √                ×
默认不写         √                √                                   ×                ×
private            √                ×                                  ×                 ×

8.重载与重写区别?

重载是同一个类中,方法名称相同, 但是参数或个数不同。与返回值没有关系。
重写是在多个类中, 产生继承关系。父类与子类的方法必须相同。

9.接口与抽象类的区别?

区别
①.接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。
②.类可以实现很多个接口,但是只能继承一个抽象类
③.类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象
类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
④.抽象类可以在不提供接口方法实现的情况下实现接口。
⑤.Java 接口中声明的变量默认都是 final 的。抽象类可以包含非 final 的变量。
⑥.Java 接口中的成员函数默认是 public 的。抽象类的成员函数可以是 private,protected
或者是 public。
⑦.接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含 main
方法的话是可以被调用的
 

10.final, finally, finalize 的区别。

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
内部类要访问局部变量,局部变量必须定义成 final 类型,例如,一段代码……
finally 是异常处理语句结构的一部分,表示总是执行。
finalize 是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,
以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 JVM 不保证此方法总被
调用
Java面试题持续更新,对小伙伴们有帮助的话点赞关注一下谢谢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值