24-04-10美团移动面

24-04-10美团前端&移动端面

问题:

  • 安卓四大组件(不会直接问Java了)

  • 说一下StringBuilder和StringBuffer区别

    StringBuilder与StringBuffer功能类似,但是StringBuffer是线程安全的,方法都添加了synchronized关键字。

  • 为什么不直接使用String而要用StringBuilder或者StringBuffer

    String类的对象是不可变的,一旦String对象被创建,所包含的字符串内容是不可改变的。每次对String对象进行修改操作都会生成一个新的String对象,导致大量的内存开销。而StringBuffer和StringBuilder的字符串修改操作都是直接在原有字符串对象的底层数组上进行的,而不会生成新的String对象。

  • String内部成员变量、.length()方法时间复杂度多少

    以JDK8为例:包含final修饰的 char数组hash

    image-20240410185212778

    其中 .length() 方法调用的是 value 数组的 length 属性

    image-20240410185423398

  • 如何将String设计成动态容量的

    问的是C++中string是可变的,能不能Java的String也实现动态长度?

  • Map底层数据结构???如何保证key唯一

    回答的HashMap,说Map类似?不懂啥意思

  • Java与C++区别

  • JVM、垃圾回收

    JVM原理最全、清晰、通俗讲解,五天40小时吐血整理_jvm原理讲解教程最全清晰通俗讲解-CSDN博客

  • C++源文件如何到机器码?还是字节码如何到机器码

  • 网页输入网址到显示内容发生了什么

    1、DNS解析:发送DNS请求(浏览器缓存、本地缓存、hosts文件),发送给本地DNS服务器(缓存有直接返回),没有询问根域名服务器,根据根域名的指示找到对应的DNS服务器得到IP地址

    2、TCP连接 三次握手

    3、发送HTTP请求给服务器

    4、服务器处理请求并返回响应报文

    5、浏览器解析渲染页面

    6、结束连接 四次挥手

  • 不同局域网可能包含相同ip,顶端DNS如何将查询到的信息返还给请求主机

    不懂

  • 线程池、如何设计

    核心线程数、最大线程数、非核心线程存活时间、阻塞队列、拒绝策略、线程工厂

  • 其他忘了。。。

算法:

  • 树的最近祖先

    e3698b209adb05022f00c94a63c9485b

  • 最长合法括号序列

    5eb3f230d9be3dcbdd9a43ede7b36c8b