千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  行业资讯  > Java面试过程中必问题目

Java面试过程中必问题目

来源:千锋教育
发布人:qyf
时间: 2022-04-21 17:09:57 1650532197

  俗话说的好,金三银四,金九银十,在四月这个招聘季,很多学员又迎来了求职季,为了能够做好准备迎接面试,小编下面为大家整理了一些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面试过程中必问题目,不管是了解当下招聘需求,还是准备面试,都会给大家带来很多收获。更多面试技巧可以咨询千锋教育官网顾问,他们会帮助大家解决难题。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT
开班信息
北京校区
  • 北京校区
  • 大连校区
  • 广州校区
  • 成都校区
  • 杭州校区
  • 长沙校区
  • 合肥校区
  • 南京校区
  • 上海校区
  • 深圳校区
  • 武汉校区
  • 郑州校区
  • 西安校区
  • 青岛校区
  • 重庆校区
  • 太原校区
  • 沈阳校区
  • 南昌校区
  • 哈尔滨校区