1_京东面经

作者:惊阵嗯 链接:https://www.nowcoder.com/discuss/432918 来源:牛客网 平时基本都在看牛油发的各种面经,对自己的春招作用很大,于是想写下京东的面经回馈给大家,顺便留下本菜鸡在这个春招里的一点痕迹。
阅读全文

集群高并发情况下如何保证分布式唯一全局Id生成

集群高并发情况下如何保证分布式唯一全局Id生成 问题 为什么需要分布式全局唯一ID以及分布式ID的业务需求 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识,如在美团点评的金融、支付、餐饮、酒店
阅读全文

Java两种动态代理JDK动态代理和CGLIB动态代理

Java两种动态代理JDK动态代理和CGLIB动态代理 代理模式 代理模式是23种设计模式的一种,他是指一个对象A通过持有另一个对象B,可以具有B同样的行为的模式。为了对外开放协议,B往往实现了一个接口,A也会去实现接口。但是B是“真正”实现类,A则比较“虚”,他借用了B的方法去实现接口的方法。A虽然是“伪军”,但它可以增强B,在调用B的方法前后都做些其他的事情。Spring
阅读全文

4_MySQL的存储引擎

Mysql默认搜索引擎 Mysql5.5以后默认使用InnoDB为搜索引擎 MyISAM是表锁,不支持事务和主外键 InnoDB默认可以创建16个索引 InnoDB支持事务,MyIsam不支持事务,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放到begin
阅读全文

分布式锁

分布式锁 集群环境下保证ID不重复 原来的Synchronized + Lock只能锁单机,也就是只能在一个JVM环境下 而在分布式+集群的环境下,变成了N对N的关系,在并发的环境下,如果使用UUID或者自增ID,就可能出现ID重复的问题,因此在集群下的环境下,对JVM进行加锁,这就是分布式锁。
阅读全文

代码块

代码块 普通代码块:在方法或语句中出现的{},就被称为代码块 静态代码块:静态代码块有且仅加载一次,也就是在这个类被加载至内存的时候 普通代码块和一般语句执行顺序由他们在代码中出现的次序决定,先出现先执行
阅读全文

等等与equals的区别

等等与equals的区别 前言 我们都知道, == 是比较内存地址,equals是比较值 但是这种非常错误的一种观点 ==:比较基本数据类型的时候,比较的是值,引用数据类型比较的是地址(new的对象,==比较永远是false)
阅读全文

Spring源码

Spring源码 Spring源码方面的知识 Spring bean的生命周期 Spring 工厂,Spring容器,上下文 Spring BeanPostprocessor Spring 和 主流框架的源码 Spring BeanFactory 和 FactoryBean的区别
阅读全文

NIO深入

NIO深入 BIO 概念 在提到NIO之前,我们说先看看BIO,也就是Blocking IO,阻塞IO,我们首先实现一个最基本的网络通信 /** * QQ客户端 * * @author: 陌溪 * @create: 2020-03-28-11:09
阅读全文

Java NIO

Java NIO 概念 Java NIO(New IO),No Blocking IO 非阻塞IO,是从Java1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的,基于通道的IO操作。NIO将以更加高效的方式进行文件读写操作
阅读全文