随笔分类 - 面试
摘要:优质博文:IT-BLOG-CN 一、数据库隔离级别 【1】Read Uncommitted(读取未提交内容):出现脏读,也就是可能读取到其他会话中未提交事务修改的数据。【2】Read Committed(读取已提交内容):不可重复读,只能读取到已经提交的数据。Oracle 等数据库默认的隔离级别。【
阅读全文
摘要:系统性学习,异步IT-BLOG 一、HashMap 底层源码 JDK7 版本(数组+链表) 我们存放的 hashMap 都会封装成一个节点对象 Entry(key,value),然后将此节点对象存放到一个数组中,存放前首先需要确定存放的数组下标:① 通过 hash(key) 算法得到 key 的 h
阅读全文
摘要:一、Redis 为什么那么快 【1】完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中。【2】数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的。【3】采用单线程,避免不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁
阅读全文
摘要:一、阻塞队列 【1】首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示: 当阻塞队列为空时,从队列中获取元素的操作将会被阻塞。当阻塞队列是满时,往队列中添加元素的操作将会被阻塞。【2】在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤
阅读全文
摘要:更多内容,前往个人博客 一、通过synchronize 中的 wait 和 notify 实现 【1】我们可以将生产者和消费者需要的方法写在公共类中 1 package com.yintong.concurrent; 2 3 import java.util.LinkedList; 4 5 publ
阅读全文
摘要:一、BIO、NIO 和 AIO 【1】阻塞 IO(Blocking I/O):同步阻塞I/O模式,当一条线程执行 read() 或者 write() 方法时,这条线程会一直阻塞直到读取一些数据或者写出去的数据已经全部写出,在这期间这条线程不能做任何其他的事情。在活动连接数不是特别高(小于单机1000
阅读全文
摘要:当使用 12306 抢票成功后,就会进入付款界面,这个时候就会出现一个订单倒计时,下面我们就对付款倒计时的功能实现,进行深入学习和介绍,界面展示如下: 如何实现付款及时呢,首先用户下单后,存储用户的下单时间。下面介绍四种系统自动取消订单的方案: 一、DelayQueue 延时无界阻塞队列 我们的第
阅读全文
摘要:一、什么情况下会发生栈内存溢出 【1】线程请求的栈深度大于虚拟机所允许的深度,将抛出 StackOverflowError 异常。递归的调用一个简单的方法,不断累积就会抛出 StackOverflowError 异常。【2】如果虚拟机在动态扩展栈时无法申请到足够的内存空间,则抛出 OutOfMemo
阅读全文
摘要:更多内容,移步IT-BLOG 排查思路 【1】定位高负载进程 pid:登录进服务器使用 top 或 top -c命令[ps -ef | grep xxx 命令]查看当前 CPU消耗过高的进程,从而得到进程id。观察各个进程资源使用情况,可以看出进程id为18571的进程,有着较高的CPU占比。按P(
阅读全文
摘要:一、消息队列的使用场景 ☞ 以下介绍消息队列在实际应用常用的使用场景。异步处理、应用解耦、流量削锋和消息通讯四个场景。【1】异步处理:场景说明:用户注册后,需要发注册邮件和注册短信。 引入消息队列后架构如下:用户的响应时间=注册信息写入数据库的时间,例如50毫秒。发注册邮箱、发注册短信写入消息队列后
阅读全文
摘要:系统性学习,移步IT-BLOG 一、写日志引发故障 【故障现象】:应用服务集群发布后不久就出现多台服务器相继报警,硬盘可用空间低于警戒值,并且很快有服务器宕机。登录在线上服务器,发现 log 文件夹里面的文件迅速增加,不断消耗磁盘空间。【原因分析】:这是一个普通的应用服务器集群,不需要存储数据,因此
阅读全文
摘要:更多内容,移步 IT-BLOG 一、JAVA中的几种基本数据类型 Java语言中一共提供了8种原始的数据类型(byte,short,int,long,float,double,char,boolean),这些数据类型不是对象,而是 Java语言中不同于类的特殊类型,这些基本类型的数据变量在声明之后就
阅读全文
摘要:一、什么是线程 线程是指程序在运行的过程中,能够执行程序代码的一个执行单元。Java语言中,线程有四种状态:运行、就绪、挂起、结束 二、线程与进程的区别 进程是指一段正在执行的程序。而线程有时也被称为轻量级进程,它是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空间(代码段
阅读全文
摘要:通常面试官会把每一轮面试分为三个环节:① 行为面试 ② 技术面试 ③ 应聘者提问 行为面试环节 面试开始的5~10分钟通常是行为面试的时间,面试官会参照简历和你的自我介绍了解应聘者的过往经验和项目经历。由于面试官手里拿着应聘者的简历,里面有应聘者的详细信息,因此此时的自我不用花费很多时间,用30秒到
阅读全文
摘要:固定窗口计数器 将时间划分为多个窗口,窗口内出现一次请求就将计数器加一,如果计数器超过了限制数量,则本窗口内后续请求都被丢弃当,时间到达下一个窗口时,计数器重置。 固定窗口计数器是最为简单的算法,但这个算法有时会出现通过请求量允许为限制的两倍。考虑如下情况:限制 1 秒内最多通过 5 个请求,在第
阅读全文
摘要:一、Zookeeper 实现机制 文件系统 + 通知机制 二、Zookeeper 高可用实现原理 一个 ZooKeeper 集群如果要对外提供可用的服务,那么集群中必须要有过半的机器正常工作并且彼此之间能够正常通信。如果想搭建一个能够允许 N 台机器 down 掉的集群,那么就要部署一个由 2*N+
阅读全文

浙公网安备 33010602011771号