Java
文章平均质量分 72
gehanyang
这个作者很懒,什么都没留下…
展开
-
IO、NIO、IO多路复用及netty
IO、NETTY原创 2023-02-17 10:53:20 · 276 阅读 · 0 评论 -
2021面试题
1 Java相关 1.1 反射和动态代理 反射:在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,对任意一个对象都能够通过反射机制调用一个类的任意方法,这种动态获取类信息及动态调用类对象方法的功能称为java的反射机制。 动态代理:就是根据对象在内存中加载的Class类创建运行时类对象,从而调用代理类方法和属性。使用Proxy和InvocationHandler两个类,并实现invoke方法 1.2 Spring的两种动态代理:Jdk和Cglib 的区别和实现 java动态代理是利原创 2021-10-10 22:54:47 · 491 阅读 · 1 评论 -
MySQL数据库
1 MySQL复制功能 1.1复制的作用 基于语句的复制和基于行的复制两种。 复制是让一台服务器的数据与其他服务器保持同步,通过复制可以让读操作指向备库来获得更好的读扩展。 数据分布 负载均衡 备份 高可用和故障切换 MySQL升级测试 1.2复制如何进行工作 在主库上把数据更改记录到二进制文件。 备库将主库中的日志复制到自己的中继日志中。 备库读取中继日志事件,将其放到备库数据之上。 1.3 复制的原理 1、基于语句的复制 在Master上执行的SQL语句,...原创 2021-09-09 17:55:51 · 150 阅读 · 0 评论 -
java面试
1 Java基础 1.1 String、StringBuffer与StringBuilder之间区别 String是不可变的对象,因此在每次对String类型进行改变的时候其实都等同于生成了一个新的String对象 和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象 StringBuffer字符串变量(线程安全) StringBuilder字符串变量(非线程安) 1.2ArrayList与Lin...原创 2021-09-08 10:04:33 · 137 阅读 · 0 评论 -
缓存的风险
1 缓存穿透 缓存穿透指查询了数据库中不存在的数据,每次查询都会先查询一级、二级缓存 在查询到最末端的数据库。 缓存穿透的原因有业务逻辑本身的问题和恶意攻击导致。 针对业务逻辑的问题:可以约定在一定时间内对返回为空的key值进行缓存,使得在一定时间内缓存只被穿透一次。 针对恶意攻击 可以使用布隆过滤器来解决。所谓恶意攻击是指请求者刻意构造数据库中肯定不存在的 Key 值,然后发送大量请求进行查询。布隆过滤器是用最小的代价来判断某个元素是否存在于某个集合的办法。如果布隆过滤器给出的判定...原创 2021-07-26 11:38:49 · 205 阅读 · 0 评论 -
Java锁的分类
1 锁的分类 无锁 -> 偏向锁->轻量锁(自旋锁)->重量级锁 1.1 偏向锁 当一个同步代码块中只有一个线程进行访问时,把整个同步都消除掉,标志位是01 当有另外一个线程尝试获取该锁时,偏向模式宣告结束 ...原创 2021-06-27 16:31:49 · 82 阅读 · 0 评论