全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  行业资讯

Java面试过程中必问题目

发布时间:2022-04-21 17:09:57
发布人:qyf

  俗话说的好,金三银四,金九银十,在四月这个招聘季,很多学员又迎来了求职季,为了能够做好准备迎接面试,小编下面为大家整理了一些Java面试过程中必问题目,希望能够帮助到大家。

Java面试过程中必问题目

  Java面试过程中必问题目:

  在 Java 程序中怎么保证多线程的运行安全?

  方法一:使用安全类,比如 Java. util. concurrent 下地类。

  方法二:使用自动锁 synchronized。

  方法三:使用手动锁 Lock。

  多线程中 synchronized 锁升级的原理是什么?

  synchronized 锁升级原理:在锁对象的对象头里面有一个 threadid 字段,在第一次访问的时候 threadid 为空,jvm 让其持有偏向锁,并将 threadid 设置为其线程 id,再次进入的时候会先判断 threadid 是否与其线程 id 一致,如果一致则可以直接使用此对象,如果不一致,则升级偏向锁为轻量级锁,通过自旋循环一定次数来获取锁,执行一定次数之后,如果还没有正常获取到要使用的对象,此时就会把锁从轻量级升级为重量级锁,此过程就构成了 synchronized 锁的升级。

  锁的升级的目的:锁升级是为了减低了锁带来的性能消耗。在 Java 6 之后优化 synchronized 的实现方式,使用了偏向锁升级为轻量级锁再升级到重量级锁的方式,从而减低了锁带来的性能消耗。

  synchronized 和 Lock 有什么区别?

  synchronized 可以给类、方法、代码块加锁;而 lock 只能给代码块加锁。

  synchronized 不需要手动获取锁和释放锁,使用简单,发生异常会自动释放锁,不会造成死锁;而 lock 需要自己加锁和释放锁,如果使用不当没有 unLock()去释放锁就会造成死锁。

  通过 Lock 可以知道有没有成功获取锁,而 synchronized 却无法办到。

  守护线程和用户线程的区别?

  守护线程和用户线程简介:

  用户 (User) 线程:运行在前台,执行具体的任务,如程序的主线程、连接网络的子线程等都是用户线程

  守护 (Daemon) 线程:运行在后台,为其他前台线程服务.也可以说守护线程是 JVM 中非守护线程的 “佣人”。一旦所有用户线程都结束运行,守护线程会随 JVM 一起结束工作.

  main 函数所在的线程就是一个用户线程啊,main 函数启动的同时在 JVM 内部同时还启动了好多守护线程,比如垃圾回收线程。

  那么守护线程和用户线程有什么区别呢?

  比较明显的区别之一是用户线程结束,JVM 退出,不管这个时候有没有守护线程运行。而守护线程不会影响 JVM 的退出。

  注意事项:

  setDaemon(true)必须在start()方法前执行,否则会抛出 IllegalThreadStateException 异常

  在守护线程中产生的新线程也是守护线程

  不是所有的任务都可以分配给守护线程来执行,比如读写操作或者计算逻辑

  守护 (Daemon) 线程中不能依靠 finally 块的内容来确保执行关闭或清理资源的逻辑。因为我们上面也说过了一旦所有用户线程都结束运行,守护线程会随 JVM 一起结束工作,所以守护 (Daemon) 线程中的 finally 语句块可能无法被执行。

  面向对象和面向过程的区别

  面向过程:面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。

  面向对象:面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象的性能比面向过程低。

  以上是小编今天提供的Java面试过程中必问题目,不管是了解当下招聘需求,还是准备面试,都会给大家带来很多收获。更多面试技巧可以咨询千锋教育官网顾问,他们会帮助大家解决难题。

相关文章

PMP®认证荣获北京市境外职业资格认可!

2023-09-07

有哪些好的HTML5前端开发培训机构?

2023-09-07

怎么选择适合自己的HTML5前端开发培训机构?

2023-09-07

短视频运营哪个培训机构靠谱?

2023-09-07

怎么选择靠谱的短视频运营培训机构?

2023-09-07

短视频运营哪个培训机构好?

2023-09-07
在线咨询 免费试学 教程领取