舞言李萍
随着互联网的不断发展,java开发成为了众多开发工程师使用的主流编程开发语言。今天,java课程培训机构就一起来了解一下,在java程序员面试过程中,有哪些比较常见的技术面试问题需要我们了解。
1、什么是线程?
线程是操作系统能够进行运算调度的小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。
2、线程和进程有什么区别?
线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。每个线程都拥有单独的栈内存用来存储本地数据。
3、如何在Java中实现线程?
两种方式:类的实例就是一个线程但是它需要调用接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承类或者直接调用Runnable接口来重写run()方法实现线程。
4、有哪些不同的线程生命周期?
当我们在Java程序中新建一个线程时,它的状态是New。当我们调用线程的start()方法时,状态被改变为Runnable。线程调度器会为Runnable线程池中的线程分配CPU时间并且讲它们的状态改变为Running。其他的线程状态还有Waiting,Blocked和Dead。
5、你对线程优先级的理解是什么?
每一个线程都是有优先级的,一般来说,高优先级的线程在运行时会具有优先权,但这依赖于线程调度的实现,这个实现是和操作系统相关的(OSdependent)。我们可以定义线程的优先级,但是这并不能保证高优先级的线程会在低优先级的线程前执行。线程优先级是一个int变量(从1-10),1代表低优先级,10代表高优先级。
6、什么是死锁(Deadlock)?如何分析和避免死锁?
死锁是指两个以上的线程永远阻塞的情况,这种情况产生至少需要两个以上的线程和两个以上的资源。
分析死锁,我们需要查看Java应用程序的线程转储。我们需要找出那些状态为BLOCKED的线程和他们等待的资源。每个资源都有一个唯一的id,用这个id我们可以找出哪些线程已经拥有了它的对象锁。
柚子chatmonkey
一、要求面试Java工程师,首先需要了解该职位的基本要求,包括所需的编程技能、技术能力、软件开发经验、架构设计能力等。二、在面试的过程中,产品经理可以就Java工程师的编程能力进行深入的询问,了解其具体的编程技术以及使用的工具;同时可以就其实际的开发经验,比如项目流程、项目进度、项目管理等方面进行深入的询问,以了解其是否有经验,是否有能力完成项目。三、在面试过程中,产品经理可以就Java工程师的技术架构设计能力进行深入的询问,如何建立一个架构、如何设计数据库等;同时可以就其遇到的技术问题和解决方案进行询问,以评估其解决问题的能力。四、在面试过程中,产品经理可以就Java工程师的团队协作能力进行深入的询问,比如在团队合作中,如何处理冲突、如何分享知识等;同时也可以就其自我学习能力进行询问,以衡量其能力是否足以胜任该职位。
嫣雨飘零
一般面试先是自我介绍,这个就不给你写了,简单说几句就行,不是重点。
接下来会让你介绍一下你做过的项目,这绝对是一个非常关键的问题,面试官一眼就能看出来你的能力,如果觉得你行,后面才会问细节技术问题,否则就开始应付你了。
这个问题该怎么答?一定要以技术和架构为主,业务逻辑为辅。说的越底层越好,比如你们公司项目底层是通过什么连接数据库的?哪种方法?为什么这么选择?
是否用到了spring的DI?是否将action也交给spring托管了?都在哪些地方使用了spring的事务?其实这种问题多了去了,最主要的是你一定要非常了解你做过的项目,别说业务逻辑,那都没用。
去看看hibernate的面试题,网上有。如果你的项目没用这个技术,就别提,否则一问你就傻了,对技术经理的面试千万别装
struts的原理?spring的原理?hibernate的save和方法有什么不同?这些都必须清楚,如果我上面提到的任何一点你不清楚,那就别去面试了,绝不夸张,这些都是基础。
优质工程师考试问答知识库