360 一、二、三面面经

360智能穿戴 4.29收到意向通知书

2020/4/8

一面 45min?

  • 介绍一下项目 你最熟悉哪一个 遇到过什么问题 在实习过程中最大的收获(工作流程、文档阅读、设计模式实际使用)
  • Java基础: Java面向对象4个特性:继承、多态、抽象、封装。
  • java基础:设计模式7大原则:
    • 开闭原则(对扩展开放、对修改关闭)
    • 里氏代换原则(子类对象可以代替父类型)、
    • 依赖倒转原则(高层模块不应该依赖底层模块,两者都应该依赖抽象、而不是细节。 即面向接口编程)
    • 接口隔离原则(建立单一接口,接口中的方法尽量少)
    • 组合/聚合复用原则(尽量用合成、聚合,而不是继承达到复用的目的) has-a、 is-a
    • 迪米特原则(强调低耦合、高内聚,应该对其它类保持最少的了解)
    • 单一职责原则(一个类只负责一个功能)
  • 23个设计模式(说说经常使用的有哪些)
  • 多线程说一下
  • 汉字占几个char,Unicode、UTF-8(三个char)(https://www.jianshu.com/p/44340006ae0d)(http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html)
  • Android:activity生命周期、fragment生命周期、activity启动模式
  • activity怎么统一管理(继承BaseActivity,但是如果第三方不能继承该怎么办(反射?AOP切面下来了解一下))
  • 有什么OOM、内存泄漏说一下(对象生命周期结束未回收,webView没有及时销毁)、(context被其他实例持有如handler,消息队列、游标IO未及时close、广播接收器没有及时注销、bitmap存大图)
内存泄漏:
1.查询数据库没有关闭游标 
2. 构造Adapter时,没有使用缓存的 convertView 
3. Bitmap对象不再使用时调用recycle()释放内存 
4. 无用时没有释放对象的引用 
5. 在Activity中使用非静态的内部类,并开启一个长时间运行的线程,因为内部类持有Activity的引用,会导致Activity本来可以被gc时却长期得不到回收 
6.使用Handler处理消息前,Activity通过例如finish()退出,导致内存泄漏 
7.动态注册广播在Activity销毁前没有unregisterReceiver
  • 算法:

    • 图的遍历有哪几种,会遇到什么问题(可能深度太深会使栈溢出)
    • 树的遍历有哪几种
  • java虚拟机内存模型说一下

  • 有什么想问的(具体做些什么、技术选型)

  • for循环里面用new还是clone,看情况。

      1.new与clone的性能差别主要在构造函数和对象包含的引用(浅拷贝可忽略);
      2.若构造函数功能简单,则new耗时更少;
      3.若构造函数比较耗时,则clone(浅)耗时更少(克隆不用走构造);
      4.无论两者情况如何,大部分情况下深拷贝耗时都是最多的。

    4.14二面 25min

  • 首先是java基础:

    • 介绍一下面向对象几个原则(抽象、继承、封装、多态)。
    • String是基本数据类型还是引用类型(引用类型,只是做了一些优化看起来像基本类型)。(https://blog.csdn.net/weter_drop/article/details/94126057)
    • HashMap介绍一下。
    • JVM是什么。
    • GC介绍一下。
  • Android:

    • 四大组件是什么:Activity、Service、BroadCast、ContentProvider。
    • 四种启动模式:Standard、SingleTop、SingleTask、SingleInstance。
    • fragment生命周期说一下,怎么使用。
    • 进程和线程的关系。
    • 一个app有几个进程(一般来说是一个,需要多个的话要指定)
    • 线程间通信:我说了handler。其他的还有AsyncTask。java中的线程通信有wait()、notify()、condition等。
    • 什么是ANR?
    • 列表页可以用什么实现(ListView、RecyclerView)。
    • ListView与LinearLayout区别:ListView对item做了缓存。
    • 如何判定不同的item类型?(有一个itemType变量可以判断)。
    • 一个ListView有100个item,怎么确定ListView的高度(不会,我说了100*item高度)。(https://my.oschina.net/u/1377657/blog/349847)
    • 如何使ImageVIew中的图片居中铺满(记得有一个属性ImageView.ScaleType来设置缩放和居中,铺满应该需要自己去测量宽高进行平铺)。
    • dp与dpi区别,怎么把dp和像素进行转换(忘了,一些数学公式吧)。(http://www.apkbus.com/blog-912299-77784.html)
    • 用过哪些第三方开源框架(OkHttp、Glide).
    • Gradle了解不?
    • 架构用的是什么:说了一下MVC、MVP、MVVM。自己的项目是mvc。可以改进为MVVM。
    • 项目中的微信登录是怎么实现的。(看微信api接入文档,创建对应的activity,注册,对uid进行一些识别。其他的忘了需要再看看)。
  • 网络协议:http与https区别(多了一层SSL:数据加密、身份认证、数据完整性)

4.16 三面

  • 自我介绍、说了一些项目、实习
  • 面试官介绍部门、部门氛围之类的
#面经##校招##安卓工程师##360公司#
全部评论
有结果了嘛
点赞 回复 分享
发布于 2020-04-26 17:42
你发结果了嘛
点赞 回复 分享
发布于 2020-04-29 16:41

相关推荐

牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
头像
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
3 10 评论
分享
牛客网
牛客企业服务