昨天面试恒生的Java软件开发工程师
一面的时候,首先上来先做个人介绍
其实就是让你说说你的项目
总体会围绕你的项目来问
后来还问了些Java基础

总结下面试过程中不会的问题
一、什么是中间件?

个人理解,早期WEB项目采用MVC架构,全靠一台服务器扛起来的,随着互联发发展,服务器压力越来越大,分布式框架被大量的运用在B2C等项目中,比如面相服务的SOA架构,所采用的方式就是将各个业务系统拆分开来,独自承担压力,这样的架构就保证了项目的高可用。那么问题也随之而来,各个服务间如何进行通信,使用点对点的方式后期发现调用易造成混乱,所以可以采用这个面相服务治理的中间件Dubbo。嘿嘿,那么中间件到底是干嘛的其实根据上面来说能够稍微知道一点,其实就好像上面大家说的,中间件跟业务无关,仅仅在做各个服务中连接问题,好像一个路由器一样,将所有的子系统统一管理,从dubbo的核心RPC和NIO也能看出来,主要还是在负责服务间连接通信。还有就是它要去使用还需要依赖一个注册中心,官方推荐Zookeeper,我的理解就是dubbo负责连接(就是用自己的方案来获取provider和customer的url)集中交给zookeeper注册中间统一管理。这样我们在调用服务的时候,只需要通过中间件,就可以完成。这样做的好处就是可以让我们不论是前端和后端人员,可以在大型的分布式系统中专注于自身业务即可。

二、做项目过程中你遇到的最大困难是什么?怎么解决的?

二面就深入的问你项目之类的,问你的具体功能具体实现之类的
之后就是也问了些Java基础
总结问题
一、string和stringbuffer区别?
string是不可变字符串
stringbuffer是可变字符串
前者可以为null后者不可以
stringbuffer是线程安全的,其中公开的方法都是synchronize修饰的

二、数值转字符串,字符串转数值
数值转字符串-- String.ValueOf(a) a+" "
字符串转数值 int a = Integer.parseInt(String s)