vue 最简用法: <!-- jsp文件 --><div id="app"> <h2>{{product}} is in stock</h2></div><script sr ...
面经整理(好友投稿)
Posted on
|
Edited on
|
In
interview
天猫Java一面
1. 常见集合类的区别和适用场景
List集合
ArrayList:
- 基于数组来实现集合的功能,内部维护了一个可变长的对象数组,集合扩容时会创建更大的数组空间,把原有数据复制到新的数组中。随机访问快,插入和删除的效率低。
LinkedList:
- 基于链表实现,数据的删除和插入快,随机访问的速度很慢。
####Map集合
HashMap:
- 线程不安全,存储键值对,允许 key 和 value 为 null
ConcurrentHashMap:
- 线程安全,不允许 key 和 value 为 null,使用的锁机制实现线程安全
TreeMap:
- 线程不安全,依靠comparator或comparable实现key的去重,TreaMap是有序的
面经整理3
Posted on
|
Edited on
|
In
interview
部分题目来源:美团 java 后台 哈尔滨现场面试面经
1. 数据库主从同步、读写分离
主要用来提升数据库的并发负载能力。
- 数据的热备;
- 架构的扩展;
- 支持更大的并发;
主从复制的步骤:
- 从库生成两个线程,一个 IO 线程,一个 SQL 线程;
- IO 线程去请求主库的 binlog,并将得到的 binlog 日志写入 relay log 文件中。主库会生成一个 binlog dump 线程,用来给从库的 IO 线程传 binlog;
- binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息(查询不会有记录,只记录增删改)。在 my.cnf 中增加
log_bin
参数即可开启。
- binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息(查询不会有记录,只记录增删改)。在 my.cnf 中增加
- SQL 线程,会读取 relay log 文件中的日志(从 Exec_Master_Log_Pos 位置开始执行),并解析成具体操作,来实现主从的操作一致,而最终数据一致。
缺点:
- 数据的实时性较差;
- 数据量大时,同步效率差;
- 同时连接多个数据库,容易引起混乱;
- 读具有高性能高可靠性和可伸缩。只读服务器因为没有写操作,大大减轻磁盘 IO 等性能问题;多个只读服务器可以采用负载均衡的方式实现可伸缩性。
- 写数据的分配一般采用哈希映射。
interview(1)
Posted on
|
Edited on
|
In
interview
1. 同步 异步 非阻塞 阻塞 bio nio aio
这题问的是网络 IO 模型。
以 IO 的读数据(read)举例,会经历两个阶段:
1)等待数据准备。
2)将数据从内核拷贝到进程中。
IO 模型主要分为五种:
大型网站技术架构——读书笔记(1)
Posted on
|
Edited on
|
In
notes
《大型网站技术架构——核心原理与案例分析》 李智慧
读书笔记(1)
1. 技术演化
- 最初是应用程序、文件、数据库都在同一台服务器上完成最简单的网站结构。
- 为解决存储空间不足的问题,出现应用服务器、文件服务器、数据库服务器职责分开的情况。
- 应用服务器主要处理业务逻辑,需要更快更强的 CPU;
- 文件服务器需要存储用户上传的文件,需要更大的硬盘;
- 数据库服务器需要快速磁盘检索和数据缓存,所以需要更快的硬盘和更大的内存。
- 网站使用的缓存分为两种:应用服务器上的本地缓存(特点:响应快,但数据量小,可能跟程序争用内存资源)、缓存在分布式缓存服务器上的远程缓存(可采用集群的方式,不受内存容量限制)。
tinySpring-Aop-分析笔记(2)
Posted on
|
Edited on
|
In
spring
tinySpring Aop 分析笔记(2)
项目学习地址:code4craft/tiny-spring
step-8-invite-pointcut-and-aspectj
- step-8 新增了对
AspectJExpressionPointcut
这个类。- 它使用 AspectJ 表达式进行匹配。
- 实现了
Pointcut, ClassFilter, MethodMatcher
三个接口。 - 首先拿到一个
PointcutParser
,是用来解析 expression 的。 - 解析传入的
expression
,拿到一个PointcutExpression
的实现类。 - ClassFilter 表示与表达式匹配的类;
- MethodMatcher 查找与表达式匹配的方法;
- Pointcut 表示获取的是方法还是类。