杭州美图JAVA面试(美图美妆app组)

办公环境地毯,但是看到工位也是没有卡位,总体拥挤。

技术总监面:30min

1.       Restful风格有哪些,有什么优点?http://www.cnblogs.com/chinajava/p/5871305.html

1)       分类HTTP:

RESTful架构风格规定,数据的元操作,即CRUD(create, read, update和delete,即数据的增删查改)操作,分别对应于HTTP方法:GET用来获取资源POST用来新建资源(也可以用于更新资源),PUT用来更新资源DELETE用来删除资源,这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。

2)       无状态:

所谓无状态的,即所有的资源,都可以通过URI定位,而且这个定位与其他资源无关,也不会因为其他资源的变化而改变。有状态和无状态的区别,举个简单的例子说明一下。如查询员工的工资,如果查询工资是需要登录系统,进入查询工资的页面,执行相关操作后,获取工资的多少,则这种情况是有状态的,因为查询工资的每一步操作都依赖于前一步操作,只要前置操作不成功,后续操作就无法执行;如果输入一个url即可得到指定员工的工资,则这种情况是无状态的,因为获取工资不依赖于其他资源或状态,且这种情况下,员工工资是一个资源,由一个url与之对应,可以通过HTTP中的GET方法得到资源,这是典型的RESTful风格。

3)       客户端与服务实现除耦合:

RESTful风格的服务,由于可以直接以json或xml为载体承载数据,以HTTP方法为统一接口完成数据操作,客户端的开发不依赖于服务实现的技术,移动终端也可以轻松使用服务。

2.       Get传递多个参数,其中有几个不传可以么?

required=flase 表示可以不传输参数

@RequestMapping(value="get1",method=RequestMethod.GET)

public voidget1(@RequestParam(value="p1",required=flase)){

map.addAttribute("p1",p1);//往页面传递 }

3.       Post传递jason例如data={num:10,name:tom},controller接受的时候怎么转换为object的

不会

4.       Jdk1.8的优点有哪些新功能?参考http://www.jb51.net/article/48304.htm

增加接口的默认方法

Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:

interface Formula{

double calculate(int a);

default double sqrt(int a) {

return Math.sqrt(a);

}}

Formula接口在拥有calculate方法之外同时还定义了sqrt方法,实现了Formula接口的子类只需要实现一个calculate方法默认方法sqrt将在子类上可以直接使用

Formula formula =new Formula() {

@Override

public double calculate(int a) {

return sqrt(a * 100);

}

};

formula.calculate(100);     // 100.0

formula.sqrt(16);//4

Date API

提供了个全新的Clock类提供了访问当前日期时间的方法,Clock是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数。某一个特定的时间点也可以使用Instant类来表示,Instant类也可以用来创建老的java.util.Date对象。

Clock clock =Clock.systemDefaultZone();

long millis =clock.millis();

Instant instant =clock.instant();

Date legacyDate = Date.from(instant);   // legacyjava.util.Date

5.       列举radis那些接口,list的使用lpop lput,有哪些好处?

参考http://www.runoob.com/redis/redis-lists.html

lpop 、rpop:分别为删除头部和尾部

//连接本地的 Redis 服务

Jedis jedis = new Jedis("localhost");

System.out.println("连接成功");

//存储数据到列表中

jedis.lpush("site-list","Runoob");

jedis.lpush("site-list","Google");

jedis.lpush("site-list","Taobao");

// 获取存储的数据并输出

List<String> list =jedis.lrange("site-list", 0 ,2);

for(int i=0; i<list.size(); i++) {

System.out.println("列表项为: "+list.get(i));

}

}

列表项为: Taobao列表项为: Google列表项为: Runoob

lrang(“list”,0,10)区间的值

头                            尾

Runoob

Google

taobao

redis.expire(key,expiration);设置过期时间

6.       Hashmap扩容之后原来数据怎么排放?

从新计算hashcode mod 算出buket

7.       存储过程应用场景

定期跑的一些数据例如统计log汇总数据。

优点

1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度

2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。存储过程,只需要连接一次数据库就可以了。

3.存储过程可以重复使用,可减少数据库开发人员的工作量。

4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。

缺点

1.      SQL本身是一种结构化查询语言,但不是面向对象的,本质上还是过程化的语言,面对复杂的业务逻辑,过程化的处理会很吃力。同时SQL擅长的是数据查询而非业务逻辑的处理,如果如果把业务逻辑全放在存储过程里面,违背了这一原则。

2.调试不方便

  3. 没办法应用缓存。虽然有全局临时表(  create temporary tabl)之类的方法可以做缓存,但同样加重了数据库的负担。如果缓存并发严重,经常要加锁,那效率实在堪忧。

   4、不支持集群,数据库服务器无法水平扩展,或者数据库的切割(水平或垂直切割)。数据库切割之后,存储过程并不清楚数据存储在哪个数据库中。

 

8.       Dubbo框架的运行机制 心跳测试


消费者订阅服务,提供者注册服务,Zookeeper是dubbo的注册中心

消费订阅subscribe服务,如果没有订阅到自己想获得的服务,它会不断的尝试订阅。新的服务注册到注册中心以后,注册中心会将这些服务通过notify到消费者

消费者要持续心跳测试。

9.       消费者invoke服务的时候通过什么传输

TCP/IP

10.    注册中心推动给消费者的是列表,消费者如何总列表总获取对应ip值

11.    知道的传输协议?Tcp/ip在哪一层,http在哪一层,udp在那一层?

http ftp 是应用层,TCPUDP传输层,IP网络层

12.    Springmvc的好处的流程

Request请求找到controller里对应代码运行,@ResponseBody返回json,return redirect:index.html 页面跳转。

优点:

1、用@RequestParam获取HttpServletRequest里的参数值相当方便,spring可以进行自动的类型转换

2、对于Restful的支持,结合@RequestMapping的UriTemplate和method以及@PathVariable,非常方便地实现了restful的url

3、对于Ajax的支持,@RespsonseBody提供了方便的机制

4、灵活丰富的@Controller的函数返回类型

5、可以方便地给@Controller函数注入各种资源

 

13.    很多请求,中间需要经过统一处理,例如加日志记录,权限检测怎么实现? 拦截器参照http://blog.csdn.net/tonytfjing/article/details/39207551

SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServlet。

DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则分发到目标Controller来处理。  所以我们现在web.xml中加入以下配置:

preHandle在业务处理器处理请求之前被调用,postHandle在业务处理器处理请求执行完成后,生成视图之前执行afterCompletionDispatcherServlet完全处理完请求后被调用,可用于清理资源等 。所以要想实现自己的权限管理逻辑,需要继承HandlerInterceptorAdapter并重写其三个方法。

SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServlet。

Springmvc.xml加入拦截器实现逻辑CommonInterceptor

<!--配置拦截器, 多个拦截器,顺序执行 -->

<mvc:interceptors>

<mvc:interceptor>

<!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller -->

<mvc:mapping path="/" />

<mvc:mapping path="/user/**" />

<mvc:mapping path="/test/**" />

<bean class="com.alibaba.interceptor.CommonInterceptor"></bean>

</mvc:interceptor>

<!-- 当设置多个拦截器时,先按顺序调用preHandle方法,然后逆序调用每个拦截器的postHandle和afterCompletion方法 -->

</mvc:interceptors:

14.    说美图这个项目美妆APP是杭州这边全权负责,初期团队java开发十几个其他科技的人员五十几个,工作强度会比较大。

 

HR面试:15min

15.    之前公司遇到的争执如何处理。

16.    为什么换城市。

17.    原来公司工作强度怎么样,说美图接近996,周六加班有加班费。

18.    大概说了下公司有哪些产品。

 

杭州美图JAVA面试(美图美妆app组)相关推荐

  1. java面试app_java面试题库app

    java面试题库app是一款专为正在找工作的java程序员打造的软件,这款软件集合了精选的Java面试笔试题目及答案,致力于帮助用户通过面试和笔试,有需要的朋友快来下载吧. java面试题库app特色 ...

  2. 美的java面试经验

    一面 1手撕:合并两个有序数组,写完验证通过后给面试官讲思路,分析复杂度 2然后开始撕java Java对象创建方式 3接口和抽象类的区别 4浅拷贝深拷贝 5 Java ArrayList Linke ...

  3. 杭州中国移动java待遇_【中国移动杭州研发中心Java面试】移动杭研社招java中级面试-看准网...

    移动杭研社招java中级面试 移动杭研的面试比较紧凑,一个上午就面完了.到了后先在前台登记,填写个人信息,和党性测试,党性测试有点像以前点政治题,知道不知道随意填了下,前台妹子说这个不要紧的.然后一面 ...

  4. 22年最强Java面试八股文界的“六边形战士”,堪称天花板!

    不积跬步无以至千里,下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面 ...

  5. 2022分享三面阿里:Java 面试核心手册 +Java 电子书 + 技术笔记 + 学习视频

    写在片头:声明,勿杠 首先简单说一下,这三次面试阿里并不是一次性去面的,实际上第一次面试时候还在大四,找的实习岗,不太清楚是什么部门,别问我为什么还记得面试题,有记录和复盘的习惯,再问就是杠. 个人背 ...

  6. 第一次去大公去面试总结----美图公司面试总结

    今天下午去了美图公司面试,心里还是很紧张的,第一次去大公司面试,也不知道会迎来什么样的挑战. 按照惯例来一张图 进门之后,前台妹子给我填了一张表格,然后就给我安排会议室,一路走过好几间会议室都有人开会 ...

  7. 美图php面试题目,美图面试经验

    面试过程: 美图来我们学校是最后一站,显示宣讲会,宣讲结束就是笔试,笔试不会很难,考了一些基础算法和计算机网络的基础知识,以及一些简单的编程题. 笔试结束后过了两天就收到了HR打来电话让过去面试,约了 ...

  8. 美图php校招难吗,美图怎么样

    面试过程: 美图来我们学校是最后一站,显示宣讲会,宣讲结束就是笔试,笔试不会很难,考了一些基础算法和计算机网络的基础知识,以及一些简单的编程题. 笔试结束后过了两天就收到了HR打来电话让过去面试,约了 ...

  9. android 寺库trytry_寺库与美图达成战略合作美图美妆APP将由TryTry运营_联商网

    联商网消息:美图公司电商业务有新进展,寺库集团投资的美妆电商"TryTry"将接手. 即日起,美图美妆APP将由寺库集团(SECO)投资的美妆电商"TryTry" ...

最新文章

  1. 数据库的三大范式和事物
  2. php导出doc文件_PHP生成Word文档的方法
  3. 消灭 Java 代码的“坏味道”
  4. 社会主义基本经济规律是经济效益规律
  5. UPS电池延时估算方法及配置表,ups配置不再难
  6. python3基础题目,Python3.x 基础练习题100例(91-100)
  7. 【新年礼物】阿里资深p8教你学习Web全栈架构师!
  8. Windows Server Failover Cluster 使用的协议和端口
  9. python 爬糗事百科
  10. 数据--第23课 - 队列的优化实现
  11. 大学生怎样学习一门编程
  12. 对象存储OSS适用于哪些场景
  13. 关于Excel被保护的工作表忘记密码的强制解除办法
  14. 基于python的招聘网站分析
  15. mysql 浏览量统计_统计网站的每日访问量
  16. VNC 锁屏之后无法输入密码解锁
  17. SMD电容极性的区分
  18. IAR for ARM系列教程(四)_菜单(Ⅱ)
  19. 使用FME 批量OSGB转FBX(OBJ) (亲测)
  20. 二进制负数的补码为什么是符号位不变,其他位取反加一?

热门文章

  1. 《你不可不知的人性》刘墉 读书笔记(五)
  2. 经典力学中最难的问题,至今没有答案
  3. matlab模拟斜抛运动60,大学物理教学改革论文,关于大学物理教学方法改革-Matlab的妙用相关参考文献资料-免费论文范文...
  4. 2017面向对象程序设计(Java)第十六周学习总结
  5. 芒果TV的2020:在长视频界放下野心
  6. 轻生女孩跳下地铁站台被4节车厢滑过生还(图)
  7. Bone-Age-Detection-From-X-Ray
  8. 电脑专业英语1500词-1
  9. Cortex-M入门
  10. 单片机1602液晶显示