摘要: l虚拟机栈(栈帧中的局部变量表)中引用的变量 l方法区中类静态属性引用的对象 l方法区中常量引用的对象 l本地方法栈中JNI引用的变量 阅读全文
posted @ 2020-12-16 11:43 LinYanyan 阅读(151) 评论(0) 推荐(0)
摘要: 相同点: 1 都实现了Map接口 2 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异 不同点: 1 hashMap允许NULL作为key和value,而hashtable不允许 2 hashMap线程不安全,Hashtable线程安全 3 ha 阅读全文
posted @ 2020-12-16 11:34 LinYanyan 阅读(105) 评论(0) 推荐(0)
摘要: HashMap初始容量大小为16,一般来说,当有数据要插入时,都会检查容量有没有超过设定的thredhold,如果超过,需要增大Hash表的尺寸,但是这样一来,整个Hash表里的元素都需要被重算一遍。这叫rehash,这个成本相当的大 阅读全文
posted @ 2020-12-16 10:12 LinYanyan 阅读(388) 评论(0) 推荐(0)
摘要: 访问一个不存在的key,缓存不起作用,请求会穿透到DB,可能DB也没查到,流量大时DB会挂掉。 解决办法: 1.采用布隆过滤器,使用一个足够大的bitmap,用于存储可能访问的key,不存在的key直接被过滤; 2访问key未在DB查询到值,也将空值写进缓存,但可以设置较短过期时间。 阅读全文
posted @ 2020-12-16 10:00 LinYanyan 阅读(102) 评论(0) 推荐(0)
摘要: 如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,造成了缓存雪崩。 解决办法: 没有完美的解决方案,可以通过随机算法让失效时间随机分布,避免同一时刻失效。 阅读全文
posted @ 2020-12-16 09:57 LinYanyan 阅读(56) 评论(0) 推荐(0)
摘要: 资源在浏览器端的本地缓存可以通过Expires和Last-Modified返回头信息进行有效控制。 1)Expires告诉浏览器在该指定过期时间前再次访问同一URL时,直接从本地缓存读取,无需再向服务器发起http请求; 优点是:浏览器直接读取缓存信息无需发起http请求。 缺点是:当用户按F5或C 阅读全文
posted @ 2020-12-16 09:51 LinYanyan 阅读(462) 评论(0) 推荐(0)
摘要: 1 在Slave启动并连接到Master之后,它将主动发送一个SYNC命令给Master。 2 Master在收到SYNC命令之后,将执行BGSAVE命令执行后台存盘进程(rdb快照), 同时收集所有接收到的修改数据集的命令即写命令到缓冲区,在后台存盘进程执行完毕后,Master将传送整个数据库文件 阅读全文
posted @ 2020-12-16 09:49 LinYanyan 阅读(43) 评论(0) 推荐(0)
摘要: 答: error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况 exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况 阅读全文
posted @ 2020-12-16 09:46 LinYanyan 阅读(86) 评论(0) 推荐(0)
摘要: 如果面试官问这个问题,那么他的意图一定是让你区分Iterator不同于Enumeration的两个方面: ●Iterator允许移除从底层集合的元素。 ●Iterator的方法名是标准化的。 阅读全文
posted @ 2020-12-16 09:44 LinYanyan 阅读(139) 评论(0) 推荐(0)
摘要: 用户发送请求至前端控制器DispatcherServlet。 2)DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3)处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给Dispatcher 阅读全文
posted @ 2020-12-16 09:42 LinYanyan 阅读(46) 评论(0) 推荐(0)
摘要: 1 该类所有的实例已经被回收 2 加载该类的ClassLoader已经被回收 4该类对应的java.lang.Class对象没有任何地方被引用 Ps:方法区除了回收无用class,也回收废弃常量,即没有被引用常量 阅读全文
posted @ 2020-12-16 09:41 LinYanyan 阅读(172) 评论(0) 推荐(0)
摘要: 从netty的4.x版本开始,netty使用引用计数机制进行部分对象的管理,通过该机制netty可以很好的实现自己的共享资源池。 如果应用需要一个资源,可以从netty自己的共享资源池中获取,新获取的资源对象的引用计数被初始化为1,可以通过资源对象的retain方法增加引用计数,当引用计数为0的时候 阅读全文
posted @ 2020-12-16 09:39 LinYanyan 阅读(123) 评论(0) 推荐(0)
摘要: 分布式锁:获取父节点下的最小节点作为获得锁的一方 命名服务:通过在zookeeper节点下创建全局唯一的一个path 配置管理:配置放在zk上,所有应用监听节点改变。 集群管理:GroupMembers集群管理,是否有机器退出和加入 阅读全文
posted @ 2020-12-16 09:37 LinYanyan 阅读(137) 评论(0) 推荐(0)
摘要: 聚簇索引,就是指主索引文件和数据文件为同一份文件,聚簇索引主要用在Innodb存储引擎中。如主键。B+Tree的叶子节点上的data就是数据本身。 非聚簇索引就是指B+Tree的叶子节点上的data,并不是数据本身,而是数据存放的地址 阅读全文
posted @ 2020-12-16 09:36 LinYanyan 阅读(606) 评论(0) 推荐(0)
摘要: 基于日志点的复制:从主服务器的哪个二进制日志的偏移量进行增量同步,如果指定错误会造成遗漏或重复。 基于GTID的复制:从服务器会告诉主服务器,已经在从服务器上已经执行完了哪些gtid值,然后主库会把从库未执行的事务gtid值发送给从库执行。同一个事务只在指定的从库上执行一次。 阅读全文
posted @ 2020-12-16 09:34 LinYanyan 阅读(139) 评论(0) 推荐(0)
摘要: 生产者投递消息到mq服务器,如果不保证消息和队列的持久化,那么当mq宕机时消息将彻底丢失,所以需要对消息做持久化存储,可以存储到磁盘或者数据库中,当mq服务器恢复时,消费端可以继续消费mq服务器中的消息。 但是,比如RabbitMQ的消息持久化,是不承诺100%的消息不丢失的! &emsp**;原因 阅读全文
posted @ 2020-12-16 09:32 LinYanyan 阅读(725) 评论(0) 推荐(0)
摘要: 当使用构造器方式初始化一个bean,而且此时多个Bean之间有循环依赖的情况,spring容器就会抛出异常! 解决办法:初始化bean的时候(注意此时的bean必须是单例,否则不能提前暴露一个创建中的bean)使用set方法进行注入属性,此时bean对象会先执行构造器实例化,接着将实例化后的bean 阅读全文
posted @ 2020-12-16 09:30 LinYanyan 阅读(457) 评论(0) 推荐(0)
摘要: select for update 的使用场景,为了避免自己看到的数据并不是数据库存储的最新数据并且看到的数据只能由自己修改,需要用 for update 来限制。 阅读全文
posted @ 2020-12-16 09:28 LinYanyan 阅读(388) 评论(0) 推荐(0)
摘要: 数据库事务必须具备ACID特性 Ø原子性:Atomic,所有的操作执行成功,才算整个事务成功 Ø一致性:Consistency,不管事务success或fail,不能破坏关系数据的完整性以及业务逻辑上的一致性 Ø隔离性:Isolation,每个事务拥有独立数据空间,多个事务的数据修改相互隔离。事务查 阅读全文
posted @ 2020-12-16 09:27 LinYanyan 阅读(124) 评论(0) 推荐(0)
摘要: 答:ZK保证Cp,即一致性,分区容错性,比如当master节点因为网络故障和其他节点失去联系的时候,剩余节点会重新进行Master选举。问题在于Master选举的时间太长30~210s,选举期间整个zk集群是不可用的,这就导致选举期间的注册服务瘫痪。 Eureka保证Ap,高可用性,它没有所谓主从节 阅读全文
posted @ 2020-12-16 09:26 LinYanyan 阅读(83) 评论(0) 推荐(0)