综合性18道面试官必问经典Java面试题!

0?wx_fmt=png

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

0?wx_fmt=jpeg

线程的概念

0?wx_fmt=jpeg

线程进程区别

0?wx_fmt=jpeg

在Java中如何实现线程

0?wx_fmt=jpeg

我们应该是使用Runnable还是Thread?

0?wx_fmt=jpeg

Thread类的start()和run()方法的区别

start()方法会创建新的线程并启动该线程,所以该方法会调用其他native方法,而run()方法就是

正常的Java方法调用,即在原来的线程中执行java代码。

Java中Runnable和Callable的区别

Runnable和Callable都代表要线程中执行的任务。Runnable是JDK1.0加入的,而Callable确实是在JDK1.5加入的。

区别:Callable的 call() 方法可以返回值和抛出异常,

0?wx_fmt=jpeg

而Runnable的run()方法不能返回值也不能抛出异常。

Callable是需要使用java.util.concurrent.ExecutorService.submit(Callable<T>)方法提交的,这样就可以获得Future对象,该对象可以装载了Callable接口的call()方法的返回结果。

Java中CyclicBarrier和CountDownLatch的区别

0?wx_fmt=jpeg

简述Java内存模型

Java内存模型包含了一系列的规则和指导原则。

Java语言是跨平台的,Java的内存模型确保了Java在不同的操作系统、CPU、内存架构上有确定的行为,特别是在多线程的情况下,一个线程所做的变动对其他线程是否可见是很重要的,这叫做先行发生关系:

0?wx_fmt=jpeg

Java中的volatile变量有什么特点

0?wx_fmt=jpeg

线程安全的概念,Vector是否是线程安全类?

0?wx_fmt=jpeg

竞态条件的概念

0?wx_fmt=jpeg

Java停止线程的方法

0?wx_fmt=jpeg

线程发生异常的结果

0?wx_fmt=jpeg

如何在线程之间共享数据

共享对象(类的静态变量或类的实例变量)

也可以使用阻塞队列等并发的集合。

notify和notifyAll的区别

0?wx_fmt=jpeg

wait,notify和notifyAll是Object类的方法的原因

0?wx_fmt=jpeg

ThreadLocal变量含义(线程局部变量)

0?wx_fmt=jpeg


扫描下方二维码关注公众号,记得分享点赞转发,JAVA架构学习分享,关注获取架构资料。


Java高级架构   ∣ 一个有用的公众号
0?wx_fmt=png
0?wx_fmt=png
长按,识别二维码,加关注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值