{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

Java后台开发面试应该如何准备?

hellowoodyhellowoody 回答0 收藏1
收藏问题

8条回答

soasme

soasme

回答于2022-06-28 15:52

Java开发基本上都是进行后端(服务端)开发,根据方向不同开发的侧重点还是有所区别,所以准备面试之前需要对工作方向有一个大致的了解,这样才能有针对性的进行准备。

Java开发很大一部分是从事Web后端开发,做Web后端开发需要准备的内容比较多,大致分为以下几个部分:

  1. Java Web开发的基本组件,包括Servlet、JSP、JavaBean,同时要了解Web容器(服务器)的功能细节:清楚Web应用程序的生命周期管理以及请求处理流程:
  2. MVC框架的功能划分,包括每个部分的实现技术描述:清楚每个组成部分的具体代码流程,比如控制端的操作流程细节:接收用户请求——验证用户数据——功能判断——创建业务对象——功能调用——封装对象——跳转到视图端:
  3. Java操作数据库,了解JDBC的基础类:了解基本的JDBC开发流程(驱动加载、数据源定义、连接创建、容器创建、执行Sql、关闭资源):了解DAO的应用(对象定义、接口定义、实现类定义、工厂类定义)、数据库连接池的应用等。
  4. Java常见开发模式,包括工厂模式、观察设计模式、单例模式等等,掌握Java开发的常见模式对初级程序员来说是很重要的,Java中定义了23个模式,这些经典模式能让初级程序员构建出稳定的应用。
  5. 消息中间件的概念及使用,比如JMS的使用。JMS是Java中一个重要的概念,通过JMS能够创建Java的消息中间件:
  6. 分布式开发的概念及使用,比如RMI的使用:RMI包含三个大的组成部分:接口的定义、服务类的定义以及客户类的定义,每一个部分都有固定的细节需要掌握(细节可以参考我之前在头条上写的关于RMI的文章)。
  7. 开源框架的使用,比如SpringMVC。目前在服务端使用SpringMVC进行开发是很多程序员的选择,所以掌握SpringMVC是很有必要的。
  8. EJB的概念,比如会话Bean、实体Bean、消息驱动Bean的概念及应用(选看):这部分内容能了解更好,不了解也没有太大影响。

Java除了做Web后端开发还可以做大数据以及android app的开发,如果从事大数据开发需要对算法有深入细致的了解,比如常见的KNN算法、决策树、朴素贝叶斯、回归等。

如果对Java编程感兴趣可以关注我,我在头条上写了关于Java开发的系列文章,以后会陆续更新最新的Java技术。


评论0 赞同0
  •  加载中...
fxp

fxp

回答于2022-06-28 15:52

首先不知道你要面试的是那个级别的Java程序师,那面主要从要撑握的主要技能方面来说一下。

spring系列

spring框架是做Java框架基本避不开的基础系列,意思是说学好Spring对后面的学习是非常重要的基础。

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

而由于spring是Java的一个基础框架,所以有很多Java上的其它方案可以在spring中集成,对于Java来说spring 非常重要。

数据库

数据库基本也是无论大小项目都需要的一个环节,因为数据库都要要持久化。

国内常用的数据库主要是Mysql。

mysql的主要学习点:

1、如何优化sql语句。

2、如何按照场景使用范式设计还是非范式设计。

3、学习事务。

4、主从库。

5、分区。

6、分库分表。

产品发布

如果公司产品还在单点阶段那么通过人工发布还没有什么问题,如果公司产品已处在多点或Soa等微服务阶段再通过人手打包或发布就会不太合理。

Maven

maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

通过maven构建的产品,再通过持续集成工具进行自动化发布。

-----------------------------------

本人现处广州从事互联网工作多年,资深技术人员、管理人员。愿结识有互联网业务的技术人员或企业人员。

评论0 赞同0
  •  加载中...
WilsonLiu95

WilsonLiu95

回答于2022-06-28 15:52

起码先准备下面试题哈。

ucloud巴巴Java面试题(一)

1、String和StringBuffer的区别

2、gc的概念,如果A和B对象循环引用,是否可以被GC?

3、Java中的内存溢出是如何造成的

4、String s = “123”;这个语句有几个对象产生

5、Error、Exception和RuntimeException的区别,作用又是什么?

6、列举3个以上的RuntimeException

7、reader和inputstream区别

8、hashCode的作用

9、Object类中有哪些方法,列举3个以上(可以引导)

10、char型变量中能不能存贮一个中文汉字?为什么?

11、列举几个Java Collection类库中的常用类

12、List、Set、Map是否都继承自Collection接口?

13、HashMap和Hashtable的区别

14、HashMap中是否任何对象都可以做为key,用户自定义对象做为key有没有什么要求?

15、interface 和 abstrat class的区别 是否可以继承多个接口,是否可以继承多个抽象类

16、 启动一个线程是用run()还是start()? 多线程有几种实现 同步和并发是如何解决的 什么叫守护线程,用什么方法实现守护线程(Thread.setDeamon()的含义) 如何停止一个线程? 解释是一下什么是线程安全?举例说明一个线程不安全的例子。解释Synchronized关键字的作用。 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

17、了解过哪些JDK8的新特性,举例描述下相应的特性?

18、对sql进行优化的原则有哪些?

19、servlet生命周期是生命与cgi的区别?

20、StringBuffer有什么优势?为什么快?

ucloud巴巴面试题(二):

1.介绍你做过的项目,用到的技术,涉及到的模块,然后从项目中问各种技术实现的细节(为了确保你是真的懂了).

2.看你的试卷,喊你讲解做题的思路,以及这样结果的原因.(考的是各位的java基础知识了,这点是绕不过去的,懂了就懂了啊,只有平时多看书)

3.团购6位验证码以及团购成功后,发送到你手机上的条码的实现方式.(第一个问题我说用随机数+时间来验证.第二个问题老实说,我也没答上来,我说用序列,面试官说序列到后期20位以上的时候,用户体验很差的)

4.淘宝上是如何保证库存和订单之间的数据准确性的.(考点是分布式事务,这个问题我也没答上来,最后他问我有什么问题问他的时候,我就反问的这个问题,面试官人挺好的,给我耐心的讲解了一遍淘宝的实现方式以及

epay的实现方式. 淘宝是通过分布式事物,中间用了一个叫协调者角色的程序,当那边点击购买时,会库存减一,保存一条预扣的状态,但是是个预准备状态,然后做成功后,协调者会在另一个数据库生成订单,然后这个订单也是预状态,等两边都准备好以后,通知协调者,又协调者统一完成这2个数据库的事物,从而达到完成一笔交易的目的,若其中一方失败,则将预扣的数字返回到库存从而实现类似回滚的操作.)

5.索引的原理.能否构建时间索引.时间索引构建后会存在什么问题.(索引原理我是回答的堆表索引的构建原理以及查询原理,但是关于时间索引的问题,我也没回答出个所以然来,看面试官的反馈,好像回答得不够好吧)

6.你们数据库的数据量有多大,(回答:我们是电信方面的系统,表上亿的数据很正常).问:如果保证效率?

(我是如此回答的,各位自行结合自身的情况参考.答:后台J OB程序会定期备份,把生产表数据移走,然后备份表也会再备份一次,如此剃度的备份,保证生产库的数据是最小的.然后备份表采用分区和子分区,加上构建战略索引(分析系统的sql,常用

查询字段构建复合索引,以减少每次查询时对表的访问次数)).

7.SQL注入的原理以及如何预防,并举例.(这个相对简单,网上一搜一大片)

8.使用过Memcache么? 用在项目中哪些地方? (答,在门户主机上使用,缓存session,分布式的时候,统一访问这台主机验证用户session是否存在,来维持回话的状态和实现回话同步.又追问:java代码中如何实现访问门户服务器的这个session池子的? 几年前的代码,确实忘记了..于是坦白的说,记不清楚了 )

这些是主要的问题,当你回答一个大问题时中间还有很多比较碎的追问性质的小问题,总体给我的感觉是,氛围很轻松+愉快的,技术层面上还是需要你真正的理解透彻一些关键技术点,才能做到应付各种追问和给出满意的答案吧.如果只是一知半解想去蒙混过关肯定是不行的,毕竟在支付宝的技术大牛面前,多追问几句,也就把你逼到死角了.

还有一点比较重要的感觉就是,他们比较在意你是否了解当下的一些比较热的技术点,比如淘宝的秒杀,是如何保证高并发下的安全性和性能,新浪微博那种大数据量的发送,怎么就保证正确性和时效性的.

ucloud巴巴面试题(三):

1.谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的?

2.开发中用了那些数据库?回答mysql,储存引擎有哪些?然后问了我悲观锁和乐观锁问题使用场景、分布式集群实现的原理。

3.springmvc和mybatis的工作原理,有没有看过底层源码?

4.熟悉IO么?与NIO的区别,阻塞与非阻塞的区别

5.微信红包怎么实现。

6.海量数据分析。

7.线程安全和非线程安全。

8.HTTP2.0、thrift。

9.java反射应用

10.分布式事务一致性。

11.nio的底层实现。

12.jvm基础是必问的,jvm GC原理,JVM怎么回收内存。

13.API接口与SDI接口的区别

14.dubbo如何一条链接并发多个调用。Dubbo的原理,序列化相关问题。

15.用过哪些中间件。

16.做过工作流引擎没有。

17.以前的工作经历,自己觉得出彩的地方

18.线程池的一些原理,锁的机制升降级

19.从系统层面考虑,分布式从哪些纬度考虑

20.Hadoop底层怎么实现

21.threadLocal,线程池,hashMap/hashTable/coccurentHashMap等

22.秒杀系统的设计

23.虚拟机,IO相关知识点

24.Linux的命令

25.一个整形数组,给定一个数,在数组中找出两个数的和等于这个数,并打印出来,我写的时间复杂度高,要求O(n)。

26.n个整数,找出连续的m个数加和是最大。

27.更重视开源技术

28.数据库锁隐原理

29.1000个线程同时运行,怎么防止不卡

30.并列的并发消费问题)

31.高并发量大的话怎么处理热点,数据等

32.如何获取一个本地服务器上可用的端口

33.流量控制相关问题

34.数据库TPS是多少,是否进行测试过

35.缓存击穿有哪些方案解决

36.Java怎么挖取回收器相关原理

37.Java的集合都有哪些,都有什么特点

38.分布式锁,redis缓存,spring aop,系统架构图,MySQL的特性

39.场景,同时给10万个人发工资,怎么样设计并发方案,能确保在1分钟内全部发完 打个比方会提出类似的场景

1-3页面试题,第4页笔试题加Java招聘信息。[page]

支付宝笔试题

(1). cookie 和 session 的区别

cookie机制采用的是在客户端保持状态的方案,

而session机制采用的是在服务器端保持状态的方案。

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗

考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、将登陆信息等重要信息存放为SESSION

其他信息如果需要保留,可以放在COOKIE中

(2). JVM 内存模型

(3). SQL注入的原理

(4). . 悲观锁 和 乐观锁

(5). . 读程序,输出结果. 关于treemap的

(6). . linux 基础命令,统计日志中的信息

(7). . java 分布式集群

(8). . 一道设计题,具体到数据库的表.大概是淘宝的搜索中,输入手机,会出来很多类型,按品牌按价格区间按手机种类.

评论0 赞同0
  •  加载中...
KnewOne

KnewOne

回答于2022-06-28 15:52

Java后台开发岗是根据工作年限的不同,等级也不同的。1-3年经验,是初级开发工程师,3-5年为中级开发工程师,5年以前也一般为高级开发工程师的录用标准。对于绝大多数公司,对面试者的工作经验是硬性标准,并且对于不同阶段的员工,面试是有不同的要求的。

1 Java初级或者初级不到的应届生入门阶段。

本阶段的面试都是考Java基础,集合,JVM等基础概念的考验,因为这个阶段别人都知道,你工作经验不多,所以在项目经验上的要求不会太高,基本有1-2两个项目经验就够了,对基础的考察会非常注重,比如常见的排序算法等,都是必须要去准备的,这些都是必不可少的。基础不扎实,基本就没戏了。

2 Java中级开发工程师

这一阶段面试项目经验就非常重要了,这三年来你做的项目是哪方面的,Web项目还是JavaEE项目,有无千万级数据大项目等等都是面试官非常看重的,对于这一阶段,笔试基本就是个摆设,有的公司可能看到经验就直接免了笔试,毕竟经验放在这里。然后就是之前做的项目和面试公司所需是否对口,这个也非常关键。

3 Java高级开发工程师

这一阶段老实说就不单单是经验的问题了,对理论方面Java底层源码,流行框架底层源码的理解成了重中之重,Redis等中间件的使用,数据库调优经验等都是必不可少的,工作年限达到了,理论研究没上去也是不行的,这一阶段的面试,就像是神仙打架级别的,难度是非常大的。

评论0 赞同0
  •  加载中...
shmily

shmily

回答于2022-06-28 15:52

1 准备下基本的数据结构相关的:如链表/二叉树等常见问题,排序等等

2 各个公司的面试风格可能不一样,提前找点相关的,心里不慌

3 java相关的,如jvm底层,设计模式等等

4 后台开发相关的,架构设计/MVC/数据库/并发/分布式/消息队列/rpc等等

5 开源框架如果有了解的话,再复习一下

6 做过的项目,这个好好准备一下

7 可以找几家面面试试,要做好每次的总结

评论0 赞同0
  •  加载中...
zhangfaliang

zhangfaliang

回答于2022-06-28 15:52

很多Java程序员在面试时,通常会遇到以下几个问题(几个比较经典的)!下面,跟着我一起来看看具体是哪几个问题吧!

1、自我感觉自己的Java的技术不错,但是面试往往不如人意;

2、对面试官提出的问题很懵,不知道它问的是什么?

3、面试才开始,有些面试官就疯狂地从知识基础的开始询问;

4、一些面试官一直在问有关业务场景的问题,完全不知道面试前要准备什么。

面试(无论是为了找工作还是升职)是我们每个人都无法逃避的事情。有时候,与其一味写代码,不如提升一下自己的面试技巧。我特意搜集了很多信息,整理,现在分享给大家!

1、Java的基本知识很重要。

能否熟练掌握Java基础知识,是一项被许多大公司高度重视的基本能力,但总有人追求高深的技术,而忽略它。如果您的底层知识扎实,一套完整的框架知识,这将会为您未来所有的面试打下坚实的基础。

2、不要答非所问,明确面试提问的意图

面试官针对不同的Java岗位要求,对能力考察的重点有些差异!

如果你是参加校招,会重点看到你的基本知识,逻辑思维,更多以挖掘潜力为主;

如果你是初级Java工程师,你需要注重基本知识的应用和自身掌握知识的广度;

对于资深或高级Java工程师来说,更需要对基本原理有深刻的理解,并且能够灵活地使用各种知识,一般以综合能力为主。

3、了解Java应用能力考察点和加分项

不同类型的公司对候选人的能力需要而不同。对于社交门户,Java工程师的考察知识是大规模和高并发场景的应用和体系结构能力。

O2O行业将重点放在对求职者综合能力的考察;

互金更喜欢具有缜密的逻辑思维和在高可用性安全领域经验丰富的候选人。

因此,为了提高面试合格率,达到事半功倍的效果,面试前应根据公司类型和岗位要求进行特殊准备。

综合以上我分享的这三个维度准备面试,通过率就会大大提高。但是,如果你真的想轻松地应对面试,还需要和大工厂的面试官进行沟通交流,了解更多关于面试的核心技能。这样,您就能更好地了解自己的弱点,清晰考察的要点。

面试是一个交流的过程,千万不能生搬硬套,要根据具体情况分析,提出合适的问题,比如从公司工作,团队,客户等工作相关的内容提出问题,那么就不会有太多的错误。

评论0 赞同0
  •  加载中...
Flink_China

Flink_China

回答于2022-06-28 15:52

java开发从事B/S的后台开发,面试技术点:

  1. java基础知识

  2. java开发相关的框架,Spring、SpringMVC、Mybatis等,微服务SpringCloud、Dubbo等

  3. 非关系星数据库redis,MongoDB等

  4. svn/gid版本管理

  5. 技术面得差不多,主要就是看项目经验了

评论0 赞同0
  •  加载中...
zhaochunqi

zhaochunqi

回答于2022-06-28 15:52

1 项目经验。你做过什么项目,项目流程和难点在哪,如何解决的。

2 框架知识。例如ssm框架主要工作原理,与传统的servlet和jdbc相比他们有什么优点和缺点。

3 为人处事方面了。礼貌,谦逊,平和。

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<