而你,并没有这个选择的权利,所以,想要安逸的生活,就必须先奋斗!
而大部分中年危机,就是因为安逸之前的奋斗不足导致的。
目录:
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
总结
最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
相信它会给大家带来很多收获:
上述【高清技术脑图】以及【配套的架构技术PDF】可以关注我免费获取
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。