java面经速记
文章平均质量分 81
自行根据大佬们的博客总结
我明天再来学Web渗透
Try to learn more things.
展开
-
【java面经thinking】四
保护的代码前,将同步代码中用到的共享资源在缓存中清楚,在使用时,直接从主存拉取,在退出同步代码块前,直接将对共享资源的操作更新至主存,这样就保证了内存的可见性。悲观锁就是觉得所有线程的操作都是不安全的,所以会直接给每个线程加上锁。自适应自旋锁就是,a取锁,b自旋循环,b取锁,c就自旋更长时间;运气不好的线程,自旋是要消耗cpu资源的,cpu资源很昂贵。所以,重量级锁就是,a取锁,b进队列,b阻塞,浪费资源。有等待队列,进入等待队列(即阻塞状态),唤醒缓慢。自旋锁就是,a取锁,b自旋循环,n次挂起。原创 2024-10-19 18:34:57 · 437 阅读 · 0 评论 -
【java面经thinking】二
多路复用I/O模型,非阻塞IO,多路复用指的是多个请求复用一个线程,当多个连接都有请求时,复用器会轮询所有请求,挨个处理。采用redis-cluster集群来横向拓展,主从同步,读写分离,且可以有多个主节点,每个主节点又可以挂多个从节点。即时性备份:对每条数据的操作指令作为日志,然后追加到日志文件中,因为是追加的方式,所以不需要去寻址,比较快速。周期性备份,数据快照形式,fork,cow。所有命令都会被序列化,顺序执行,不会被中断(一致性,排他性,顺序性)。优点:数据比较完整,写入迅速,可读性强。原创 2024-10-19 14:30:27 · 753 阅读 · 0 评论 -
【java面经thinking】一
如果打破双亲委派模型,那么你需要重写loadClass方法。原创 2024-10-13 21:57:00 · 712 阅读 · 0 评论 -
【java面经速记】Mysql和ES数据同步
多维筛选:亿级规模数据使用宽表预构建(消除join),配合全字段索引,是的ES在多维筛选上具有压倒性优势。基于logstash实现数据同步,原理:定期使用sql查询新增的数据写入ES中,实现数据的增量同步。高并发:链接轻量化(线程模式),优化器、执行器、事务引擎相对简单粗暴,存储引擎做得比较细致。如果采用MQ消费解析的binlog消息,一样存在MQ延时的风险。文本搜索:基于倒排索引实现的搜索系统,文本模糊匹配搜索表现较好。最简单的方式,将数据写到mysql时,同时写到es中。优点:逻辑简单,实时性高。原创 2024-09-22 12:58:28 · 1361 阅读 · 0 评论 -
【java面经】微服务架构速记
按照业务本身独立性来划分,如果是非常底层的(操作系统内核,存储系统,网络系统,数据库系统等)就不要使用微服务,否则造成集成工作量急剧上升。http://www.dropwizard.io (关注单个微服务的开发)独立系统,SOA服务切换时间长,成本高,不够稳定。原创 2024-09-21 21:16:33 · 427 阅读 · 0 评论 -
【java面经】Redis速记
类似于set,每个元素关联double类型分数,用于从小到大排序元素,成员唯一,分数可重复。redis执行命令是单线程的,多线程主要用于处理网络数据的读写的协议解析,以优化整体性能。缓存无,数据库有数据(缓存到期)的时候,并发请求数据库查询同一数据,数据库压力过大。基本的数据类型,存储任何类型数据包括图片,序列化对象等等,一个键最大存512MB。解决:布隆过滤器提前过滤不存在的数据,或者对查询不存在的数据统一返回处理。结合redis命令特性和事务,实现分布式环境下的锁机制,确保数据一致性。原创 2024-09-21 20:52:14 · 861 阅读 · 0 评论