栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java面试

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java面试

1.重写和重载的区别:

        重载是发生在同一个类里面,方法名相同,参数类型和参数个数可以不同。

        重写:子类继承父类,方法名,参数类型跟参数个数要相同。

多线程

如何预防死锁:

1.资源有限,多个线程同时需要这个资源

2.循环等待,资源被占用互相在等待对方释放资源

3.线程等待过程中不会释放已占有的资源

4.一个线程已经占有的资源,在释放之前不会被其他的线程抢占。

预防的方法就是把资源预分配。不够的时候就等待。

多线程创建的方式:

1.实现Runnable,无返回值,无法抛出异常

2.实现Callable.有返回值,可以抛出异常

3.继承Thread类创建多线程,继承java.lang.Tread类,重新Thread类的run()方法,调用start()方法开发线程。

4.通过线程池创建线程

线程安全活跃态:死锁,活锁,饥饿

1.线程饥饿:读写锁,读线程优先,会导致写线程阻塞,会造成写线程饥饿。

2.线程活锁:一直在重复做某个操作

3.线程死锁:两个线程的资源相互占用

java中的wait和sleep的区别与联系

1.所属类不一样:sleep来自Thread类,wait来自object类

2.wait是跟锁相关,会释放锁。Sleep是与线程相关,与锁无关只是进入了休眠。

3.sleep必须捕获异常。wait不需要捕获异常

4.联系:两者都会导致阻塞,两者均可被中断唤醒

java线程的生命周期:

1.创建Thread对象,再创建原生的操作系统。线程创建

2.创建完成之后,调用线程的stat()方法等待cpu分配资源阶段。就绪

3.当就绪的线程被调度,进入运行状态,run方法定义了线程的操作和功能。运行

4.运行时因为某些原因导致运行的线程变成了阻塞状态,比如用了sleep和wait方法。线程阻塞

5.执行完run方法之后,把资源释放。销毁

Synchronized和lock区别?

1.sync性能比较差,所以引入了lock

2.sync不方便线程获取锁,只能单个锁获取。lock可以切割出多个条件变量,灵活使用,可以获取多个锁。

3.sync在jvm层面上,lock是jvm的一个接口

4.lock必须在finally中释放锁。sync执行完代码或者有异常就会释放锁。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749717.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号