javase面试题

Collectio和collections的区别?

collection是一个集合接口(单例集合),继承他的有List和Set

collections:是一个针对集合操作的工具类,主要帮助集合排序、查询、线程安全等。

List的三个自实现类的特点?

ArrayList:底层数据结构是数组查询快,增删慢,具有扩容性,线程不安全,不同步,执行效率高

linkedlist:底层数据结构是链表,查询慢,增删快,线程不安全,线程不同步,执行效率高

vector:底层数据结构是数组对象,查询快,增删慢,线程安全,执行效率不高

启动线程为什么是start()。而不是run()方法?

​ 答:run方法调用相当于执行普通方法,而调用start方法是jvm去调用run方法启动线程,两个线程可以并发的执行(两个线程互相抢夺CPU执行权)。

final,finally,finalize之间的区别?

​ final 状态 修饰符 修饰的类不能被继承,修饰的方法不能被重写,修饰的成员变量,此时为常量

​ finally 捕获异常的使用

​ try…catch…fainally

​ finally里面去释放系统相关的资源(finally里面的代码一定会执行,除非特殊情况还没执行到finally时jvm退出)

finalize:object类中的一个方法,和垃圾回收器有关,当开启回收器的时候本质会调用finaize()来回收更多没有引用的对象

什么是进程?什么是线程?

进程:能够分配资源的基本单元,在程序执行的时候,创建线程

线程:执行过程的最小单元,一个进程可以包含多个线程,一个线程可以有多个线程组组成(多个线程执行具有随机性,抢夺CPU资源)

什么是静态代理?特点是什么!

​ 静态代理是属于代理模式的一种(就是让第三方类给真实角色完成一些事情),代理角色完成当前类完成不了的事情当前类注重完成自己的事

​ 特点:真实角色和代理角色都要实现同一个接口

sleep和wait方法的区别?

​ 1、来源不同,sleep是Thread类的方法,wait是object类的方法。

​ 2、是否会释放锁

​ sleep不会释放锁,在睡眠时间结束后,线程会重新恢复CPU争夺中

​ wait会释放锁,调用notify方法唤醒对方。

多线程实现方式的原理是什么?为什么会优于继承方式?

​ 多线程实现方式,就是一个静态代理模式,Thread类就是代理角色。真实的类就是自定义的类实现Runnable,重写run方法,更能体现数据共享的原理

java中什么是等待唤醒机制?

​ 就是当前类调用了wait方法,当前线程会进入阻塞状态,当另外一个类调用notify或notifyall时会唤醒当前类,然后该线程由阻塞状态变为就绪状态、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值