某公司java笔试题

本文深入讲解了Java中的接口意义、HashMap实现原理、内部类的作用、进程与线程的区别、synchronized用法、notify()与notifyAll()的区别、线程join使用场景及JSP作用域等关键技术点。

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

1、接口的意义是什么?(作用是什么)

答:(1)通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。

(2)通过接口可以指明多个类需要实现的方法。

(3)通过接口可以了解对象的交互界面,而不需要了解所对应的类。

2、HashMap的实现原理

答:HashMap是基于hashing的原理,我们使用put(key, value)存储对象到HashMap中,使用get(key)从HashMap中获取对象。当我们给put()方法传递键和值时,我们先对键调用hashCode()方法,返回的hashCode用于找到bucket位置来储存Entry对象。”这里关键点在于指出,HashMap是在bucket中储存键对象和值对象,作为Map.Entry。这一点有助于理解获取对象的逻辑。如果你没有意识到这一点,或者错误的认为仅仅只在bucket中存储值的话,你将不会回答如何从HashMap中获取对象的逻辑。

3、内部类的作用是什么

答:因为内部类可以随意使用外部类的成员变量(包括私有)而不用生成外部类的对象,这也是内部类的唯一优点

4、进程和线程的区别

答:点击打开链接

5、java中synchonized的用法

答:点击打开链接

6、java中notify()和notifyAll()的区别

答:notify()和notifyAll()都是Object对象用于通知处在等待该对象的线程的方法。
void notify(): 唤醒一个正在等待该对象的线程。
void notifyAll(): 唤醒所有正在等待该对象的线程。
两者的最大区别在于:
notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争。
notify他只是选择一个wait状态线程进行通知,并使它获得该对象上的锁,但不惊动其他同样在等待被该对象notify的线程们,当第一个线程运行完毕以后释放对象上的锁,此时如果该对象没有再次使用notify语句,即便该对象已经空闲,其他wait状态等待的线程由于没有得到该对象的通知,继续处在wait状态,直到这个对象发出一个notify或notifyAll,它们等待的是被notify或notifyAll,而不是锁。

7、java线程的join的使用场景

答:点击打开链接

8、jsp中的作用域

答:page:用户请求的当前页面;

  Request:用户请求访问的当前组件,以及和当前web组件共享同一用户请求的web组件。如:被请求的jsp页面和该页面用<include>指令包含的页面以及<forward>标记包含的其它jsp页面; 

  Session:同一个http会话中的web组件共享它;
  Application:整个web应用的所用web组件共享它。

9、tomact在启动的时候如何把jsp解析成servlet

答:点击打开链接



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值