flutter跳转第三方应用,android系统开发入门

Android面试中有哪些常见问题汇总&答题思路

目录:

1.网络
2.Java 基础&容器&同步&设计模式
3.Java 虚拟机&内存结构&GC&类加载&四种引用&动态代理
4.Android 基础&性能优化&Framwork
5.Android 模块化&热修复&热更新&打包&混淆&压缩
6.音视频&FFmpeg&播放器

1、网络

网络协议模型

应用层:负责处理特定的应用程序细节
HTTP、FTP、DNS

传输层:为两台主机提供端到端的基础通信
TCP、UDP

网络层:控制分组传输、路由选择等
IP

链路层:操作系统设备驱动程序、网卡相关接口

TCP 和 UDP 区别

TCP 连接;可靠;有序;面向字节流;速度慢;较重量;全双工;适用于文件传输、浏览器等

  • 全双工:A 给 B 发消息的同时,B 也能给 A 发
  • 半双工:A 给 B 发消息的同时,B 不能给 A 发

UDP 无连接;不可靠;无序;面向报文;速度快;轻量;适用于即时通讯、视频通话等

TCP 三次握手

A:你能听到吗?
B:我能听到,你能听到吗?
A:我能听到,开始吧

A 和 B 两方都要能确保:我说的话,你能听到;你说的话,我能听到。所以需要三次握手

TCP 四次挥手

A:我说完了
B:我知道了,等一下,我可能还没说完
B:我也说完了
A:我知道了,结束吧

B 收到 A 结束的消息后 B 可能还没说完,没法立即回复结束标示,只能等说完后再告诉 A :我说完了。

POST 和 GET 区别

Get 参数放在 url 中;Post 参数放在 request Body 中
Get 可能不安全,因为参数放在 url 中

HTTPS

HTTP 是超文本传输协议,明文传输;HTTPS 使用 SSL 协议对 HTTP 传输数据进行了加密

HTTP 默认 80 端口;HTTPS 默认 443 端口

优点:安全
缺点:费时、SSL 证书收费,加密能力还是有限的,但是比 HTTP 强多了

2、Java 基础&容器&同步&设计模式

StringBuilder、StringBuffer、+、String.concat 链接字符串:
  • StringBuffer 线程安全,StringBuilder 线程不安全
  • +实际上是用 StringBuilder 来实现的,所以非循环体可以直接用 +,循环体不行,因为会频繁创建 StringBuilder
  • String.concat 实质是 new String ,效率也低,耗时排序:StringBuilder < StringBuffer < concat < +
Java 泛型擦除
  • 修饰成员变量等类结构相关的泛型不会被擦除
  • 容器类泛型会被擦除
ArrayList、LinkedList

ArrayList

基于数组实现,查找快:o(1),增删慢:o(n)
初始容量为10,扩容通过 System.arrayCopy 方法

LinkedList

基于双向链表实现,查找慢:o(n),增删快:o(1)
封装了队列和栈的调用

HashMap 、HashTable

HashMap

  • 基于数组和链表实现,数组是 HashMap 的主体;链表是为解决哈希冲突而存在的
  • 当发生哈希冲突且链表 size 大于阈值时会扩容,JAVA 8 会将链表转为红黑树提高性能
    允许 key/value 为 null

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值