JAVA面试题(一)

本文主要涵盖JAVA面试中常见的选择题和简答题,包括继承、线程方法的区别、Lock与synchronized的异同、对象比较的hashCode()和equals()方法、JDBC操作步骤、面向对象设计原则、MVC模式实现、JVM加载class机制、重载与重写区别以及HashMap的工作原理。通过这些知识点的解析,帮助读者深入理解JAVA核心概念和技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、选择题

1.关于继承的说法正确的是()。正确答案: A   你的答案: B (错误)

        A.子类将继承父类所有的数据域和方法。

        B.子类将继承父类的其可见的数据域和方法。

        C.子类只继承父类public方法和数据域

        D.子类只继承父类的方法,而不继承数据域

解释:

          在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象。所以所谓的继承使子类拥有父类所有的属性和方法其实可以这样理解,子类对象确实拥有父类对象中所有的属性和方法,但是父类对象中的私有属性和方法,子类是无法访问到的,只是拥有,但不能使用。就像有些东西你可能拥有,但是你并不能使用。所以子类对象是绝对大于父类对象的,所谓的子类对象只能继承父类非私有的属性及方法的说法是错误的。可以继承,只是无法访问到而已。

 

 

二、简答题


 1.sleep()和wait()的区别?

         答:其一,sleep()是Thread类中的方法,而wait()则是Object类中的方法。 

                其二, sleep()方法导致了程序暂停,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。 

               其三,wait()方法会导致线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。

               注意是准备获取对象锁进入运行状态,而不是立即获得


 

     2.Lock和synchronized的异同?

        相同点:

             都可以使多个线程实现同步,Lock能完成synchronized所实现的所有功能。

        不同点:

       1)lock是接口,而synchronized是关键字

       2)Lock有比synchronized更精确的线程语义和更好的性能。 synchronized如果出现异常就会扔掉锁(释放锁);l oc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值