java面试的时候你被提问过哪些问题
谢谢邀请!
一般面试官会基于你的面试简历进行相对应的知识点提问,例如你的简历中写了精通(精通这两个字谨慎使用)Java并发编程,面试官可能会问CAS的实现原理、ThreadLocal实现原理及是否会出现内存泄露、HashMap的实现原理及为什么会出现并发问题等,这种就是根据简历上的描述提出的针对性问题,还有就是根据你简历上的项目经历,提问你在这个项目中的角色、负责那些功能、如何实现的、遇到那些问题及如何解决的,所以你的简历内容基本就隐藏了面试官的问题,当然如果遇到菜鸟面试官,这个就不一定了,问的可能就比较随意且基础。
关于一些面试中可能会问到的经典问题可以关注我的头条号,不断分享Java面试题,而且都是深入分析答案哦,希望对你有所帮助!
spring cloud面试题及答案
1、为什么人们会犹豫使用微服务?
我见过许多开发者在这个问题上摸索。毕竟,在面试微服务架构师角色时,他们会被问到这个问题,所以承认它的缺点可能有点棘手。以下是一些很好的答案:
它们需要大量协作-微服务需要大量的合作。不同的微服务模块,可能分散在不同的团队,团队之间需要始终保持良好的同步。
他们需要建立繁重的架构-系统是分布式的,架构涉及很多。他们需要过多的计划来处理操作开销-如果您计划使用微服务架构,则需要为操作开销做好准备。需要熟练的专业人员,他们可以支持异构分布的微服务。
2、SpringCloud是什么
1、SpringCloud是一系列框架的有序集合。它利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。
2、SpringCloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Java程序员面试中容易被问哪些问题
1.前台后台都做吗?10分
这一般是我的第一个问题,超过90%的人会回答:"都做,后台多一点,前台少一点"
这不是我想要的答案,鬼都知道程序员都要多少涉及一下前台,后台更不用说了.
碰到过一个聪明人,他是这么回答的:前台js写的比较熟练,html的框架模板也能搭建的非常整齐美观,只是特效能力比较差
这个问题我不想过多讨论,加分但不减分
2.事务,什么是事务,为何用事务10分
大部分面试者,就会举各种各样的例子(比如银行存钱,这个最多)来说明这个问题,其实他们都理解.
但这不是我想要的答案,我期望的答案只有一句:"保证数据的一致性和完整性",可惜只有5%左右的人答出来了
这个问题可以大概了解出面试者的分析能力,以及语言总结能力,还有他们对这个玩意的理解程度
答不出减分,举例子不加分
3.面向切面(AOP),原理是什么10分
这个就是对技能的掌握程度了
大部分又是举例子,什么找中介啊之类的,其实就是来掩盖他们懂一点实现逻辑,但是不知道源码怎么实现的.
但还真是有学霸能把代理的原理讲出来,非常好.
答不出减分,举例子不加分,讲出原理双倍分.
4.两个项目之间如何通信10分
很基础的问题,答上来就有分,说明你接触或者了解过网络
5.在上个问题基础之上问,碰到乱码怎么解决,utf-8和gbk可以直接转换么10分
大部分应聘者到这里基本就开始胡扯了.有说声明字符串编码接收的,有说改项目编码的,各种各样五花八门.
更有甚者,utf-8和gbk可以直接转换...
直接说明了他们完全没有遇到过此类问题,也并不了解编码.
答不出不减分,胡扯减分,答对双倍分.
6.简述一项技术或设计模式的原理20分
这个几乎是送分的,但90%的人答不出.我很不解.
答不出减分,答出加分
-----------------------------------------------------------------------------------------------------------------------------
问完以上几个问题大概可以判断出应聘者的技术程度
不管怎么样
希望多锻炼自己的口才与技术.
Java程序员如何应对面试问题
程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容。
1说得太少
尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”。面试官会通过你对这些技术和非技术问题的回答来评估你的激情。他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力。
所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊。如果你不能很好地说明你的经验、成就和技能可以给企业带来的价值,那么你的竞争力毫无疑问就高不起来。所以,你需要对一些最常见的开放式问答作充分的准备,学会推销自己。
2说得太多
不断地说,不断地说,却并没有什么实质性的内容。换句话说,就是废话连篇,言之无物。如果你不能简洁的解释问题,那么面试官就会怀疑你在工作时的表现是不是也会像你的谈话一样拖泥带水?可以先问问面试官,确定是否真的需要详细解释。
解释也是一门艺术,关键是确定重点,如果需要的话再深入到细节。当聊到业务的时候,就应该从业务的角度看问题,不要涉及任何技术术语。学会用简洁明了的方式解释问题。如果你能时刻把握主旨,那么这一点也不是问题。
3回答不出一些必知的基本技术问题
面试不是技术竞赛,不是看谁答对的问题多,但是有一些“必须知道”的核心Java和Web基础知识,你不能不知。例如,对于Java开发人员
1)不知道“==”和equals()之间的区别。
2)不知道equals()和hashCode()方法被隐式调用时的约定。
3)不知道OO的概念和设计原则。
4)不能很好地处理多线程。
5)不知道如何在HTTP客户端与服务器端之间保持状态。
6)不能解释曾投入精力过的应用程序的高层体系结构。
7)不知道SQL。
…
4既写不好简单的代码,又回答不出如何解决棘手的问题
作为一个开发人员,你应该根据自己的经验水平,来针对给定的问题和情况编写代码。特别是如果碰到一个比较棘手的问题,那么即使你还没有解决方案,也应该将你的思路讲给面试官听。当然这在面试时会让人特别紧张,尤其是在还有时间限制的情况下,但是你也必须保持冷静,至少应该说明你将如何试着去解决问题的方法。
5糟糕的礼仪和态度
迟到,不适宜的着装,抖手抖脚,没有眼神接触,过于紧张,没有提问,显示不出对这份职业的兴趣,“我什么都知道”的高傲态度,贬低你的现在和以前的雇主,遇到技术问题时烦躁不安或者垂头丧气,为自己找理由而不是虚心接受错误,与面试官发生争执,不好的肢体语言,随波逐流而没有自己的看法,过于呆板,撒谎,嗓门太大,无法成为良好的倾听者,等等。
提示:面试官要找的不是技术明星,而是实实在在具备了合适的技术技能、软技能、端正的态度以及能为企业获取利益、全面的专业人才。因此,不妨先研究下想要应聘的机构,深入了解其工作规范以调整回答问题时的方向和重点。将每一场面试都当作免费的培训课程,积极调整心态,不但能达到一个双赢的局面,还可以减少紧张的情绪,从而获得更好的表现。这样即使你并没有得到那份工作,也可以由此学到点什么,获得进步。
java面试的时候项目经验该怎么说
1用简历争取到更多的面试机会
本不想写这段,但最近我在帮一些同学准备简历时,发现他们虽然在当前公司里能胜任Java开发的工作,但凭简历恐怕无法得到面试机会,或者无法得到和自己相匹配的工资。而且准备简历的过程,也是准备项目说辞的过程,所以这里就一并把写简历的注意要点写上。
注意点1:阅读职位介绍上的技能要求年限,在简历上的醒目位置标明你有足量的相关技术项目经验。
比如某职位需要有Springboot3年经验,又如某职位需要有2年大数据开发经验,而你恰好有了,就在简历第一页个人信息介绍下直接写明。
万一假设你缺乏一些,比如要求是有2年大数据,而你就只有一年,你就回想下,你在读书阶段,有没有在外面做过兼职,有没有帮老师一起做过项目,有的话别客气,把这部分的技术年限也加上。
注意点2:再仔细阅读职位介绍上要求的技术,也列在第一页的醒目位置。
比如某职位需要有jave核心开发,多线程开发经验,分布式组件开发经验。其实对做开发的人来说,这些技术多少在项目里也用过,但如果你不写上,甚至你的简历没法过筛选,甚至你没有面试机会。
注意点3:再多少写些你的亮点,怎么写看下面的范例。
也就是说,在简历第一页,你写好姓名性别年龄和手机邮箱等基本信息后,一般可以用如下概要的形式,向面试官展示你和职位的匹配度,如下是范例。
1具有3年Java开发经验,2年SpringBoot开发经验,2年数据库开发经验。(这里的年限需要大于等于职位介绍上的要求,如果达不到,很多公司就不给面试机会)
如下再根据职位介绍上要求的技术,总纲性列出你掌握的技术,以此证明你很匹配
2有Oracle,MySQL等数据库开发经验。
3有多线程,集合等方面的开发经验
4有大数据方面的xx技术和xx技术的开发经验。
这里你可以尽可能多地列出你掌握的JD上的技能,然后,你可以照着如下的范例列些你的亮点。
5具有用索引,执行计划进行数据库调优的经验。(当前不会就自己查,这块资料太多)
6熟悉JavaJVM虚拟机结构,熟悉垃圾回收流程,有JVM性能调优的经验。(当前不会也自己查)
7有在linux分析日志和排查问题的经验。(如果不会就去看些linux文件打开和搜索的相关命令)
8熟悉面向对象思想,在项目里用过设计模式。(自己去看个单例或工厂模式,然后套到项目需求里)
9有分布式组件的开发经验。(如果没有就别写,但对初级开发来说,这绝对是加分项)
10熟悉Java集合等方面的底层代码。(自己去看HashMap,ConcurrrentHashMap,快速失效,ArrayList增删改查的底层代码,不难)
11工作责任心强,具有一定的承压能力,肯加班。(写上去总不会错)
其实对大多数初级开发而言,应该都具备上述技能,哪怕当下不具备,用个把月绝对也能学会,所以大家完全可以写在简历上。
但我收到的很多Java开发的简历,只是简单地列出会的技术,没有任何润色性的文字,这样的简历或许就无法完全地展示候选人的能力,对应地,得到的面试机会可能就大大降低了。
相反,姑且先不论候选人是培训班出身还是科班出身,但就凭在简历第一页醒目地展示和该职位的匹配度,至少面试官就肯继续往下看项目经验了,这样得到面试的机会,乃至通过面试的机会,就大大增加了。
2自我介绍时,立即全面抛出技术栈和亮点Java程序员项目经验介绍:背景:姓名:张三;年龄:25;籍贯:安徽;毕业学校:南京审计学院;工作经验:2年;求职城市:北京面试官你好,我叫张三,今年25岁,来自安徽,毕业于南京审计学院计算机专业,毕业以后在江苏南京工作了2年,在2年我分别在两家公司做了三个项目,第一家工作实习半年,做了一个家居信息管理的项目,第二家公司昕怡服装有限公司(最好说出公司的具体名字)工作一年半左右的时间做了两个项目,最近做的一个项目是互联网的电商平台,因为昕怡服装有限公司是一家专门从事服装贸易的公司,随着公司的不断壮大发展,线下实体门店已无法满足公司发展的需求。
为了进一步扩展公司的规模,决定研发昕怡商城。此商城项目主要包含前台系统,后台系统,订单系统,搜索系统,登录系统。
我在此项目中主要参与了登录系统与后台系统中部分模块的工作。
1.使用maven进行项目构建,实现整个项目的统一管理。
2.在登录系统中,主要负责注册模块与登录模块。在注册模块中,我们使用hibernate-validator依赖完成后台POJO的校验,可以防止用户跳过前端的js校验。在登录模块中,通过Controller,Service和Dao三层架构查询用户在数据库中是否存在信息,如果存在则通过当前时间戳及用户id生成一个token,将token存入的redis中,然后把toekn存入到cookie中,发送给浏览器。
3.在后台系统中,主要负责商品类目的回显,完成商品的CRUD功能,在处理商品类目时,需要是否需要在同一事务中进行操作,同时通过nginx处理静态资源,来访问图片。
后续:面试官问道为何来北京:一直想来北京(想往一线城市发展),北京是帝都,想在北京打拼一番事业;
项目考点:1.面试官问这个问题,首先不是问技术,而是问你的基本概述能力,一个项目从你口中说出来,应该是有层次感的,不应该想到哪里说哪里,正常来说,应该从一个项目的生命周期为基准线,展开讲。讲的过程中,顺带附加你在这个项目的比重,也就是你在这条基准线上,那几个点是你负责的。
2.项目基本概述说清楚后,应该举个例子说明一下你这个人非常愿意主动解决问题,比如项目过程中,出现一个怎么样的难点,然后你是如何如何解决的,说到点就好了。
3.最后应该主动问下面试官,对于这个项目概述,有没有想问的地方和不清楚的地方。
想去面试java程序员实习生要什么技能吗
由于互联网行业近些年快速发展,众多人纷纷涌入这一行业。其中,程序员这一角色占据很大的比例。如果你想要去作为一名程序员的实习生,首先需要的就是Java的基本知识,常见框架SSH/SSM,SpringBoot,有能力的可以学一些分布式的框架,做一些互联网项目实战。
那么要学到什么程度呢?起码要能独立完成项目功能的增删改查,常见框架的原理关系要搞懂,在公司实习简单的功能肯定是要会开发的。
希望以上的回答对你有所帮助!