- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 【无标题】
Lambda表达式 需求场景:动态过滤对象属性。如下四个图片: 上图代码实现通过接口实现类来过滤传入的list数据,该模式为策略设计模式。 还可以使用匿名内部类完成功能 流式编程StreamAPI 2.Lambda基础语法 Java8中引入一个新的操作符“->”,该操作符称为箭头操作符或者Lambda操作符 箭头左侧是接口抽象方法的参数列表,右侧是接口的实现(Lambda体)。 语法1:无参数,无返回值 ()->System.out.println(“Hello world”); 语法..
2022-03-31 08:06:17
51
原创 Zookeeper
1、zk的写数据流程 如果写的节点是leader: 1、leader自己写一份 2、将写指令分发给其他follower,并在写完后收到回复,当确认写完的数据超过半数服务节点则给客户端响应写OK 如果写的节点是非leader: 1、follower将写指令发给leader 2、leader自己写一份 3、将写指令分发给其他follower,并在写完后收到回复,当leader确认写完的数据超过半数服务节点则给客户端相连的follower确认写OK 该follower再给client回复写OK ...
2021-08-27 21:49:33
81
原创 常用设计模式总结
设计模式: 1、工厂模式 简单工厂 【直接创建对象太复杂;把复杂创建过程进行抽离复用】把复杂的创建过程抽离到工厂方法中,已达到复用目的 工厂方法 【简单工厂创建方法膨胀;不符合开闭原则;扩展麻烦】如果创建对象的工厂方法需要增加新的类型修改麻烦;把工厂抽离出一个接口、抽象类,新增类继承实现即可;随意增加即可。 抽象工厂 【工厂方法每一个具体产品就要对应一个具体工厂】 2、装饰者模式 3、代理模式 ...
2021-08-01 18:44:20
34
原创 2021-07-07
java中多个线程顺序打印字符10次 /** * Hello world! * */ public class App { public static boolean a = true,b = false,c=false; public static Object object = new Object(); public static void main( String[] args ) { Thread thread1 = new Thread(){
2021-07-07 21:59:39
39
原创 Mysql相关知识点
id:数字越大越优先执行,一样大从上往下执行,id=null表示这是一个结果集 select_type: simple:表示不需要union操作或者不包含子查询的简单select查询,有连接查询时,外层查询为simple,且只有一个 primary:一个需要union操作或者有子查询的select,位于最外层的查询,select_type=primary且只有一个 union:union连接的两个select查询,第一个查询时dervied派生表,除了第一个表外,第二个以后的表select_type都是u.
2021-06-11 23:11:15
27
原创 Redis相关事宜
一、缓存击穿 key对应的数据存在,但是在redis中过期,此时若有大量并发请求过来,这些请求一般都会从后端DB加载数据并回设到redis, 解决方案: - 使用互斥锁 - 设置Key永不过期(更新操作时删除缓存) 二、缓存穿透 redis中没有,DB中也没有 解决方案: - 布隆过滤器 - 设置Key永不过期(更新操作时删除缓存) 击穿:一个key非常热点,在不停的扛着大并发,大并发集中对一个点进行访问,当这个key在失效的瞬间,大并发就穿破缓存来到DB,给DB造成压力; 穿透:恶意攻
2021-05-27 08:09:52
60
原创 JVM内存模型
字符串常量池 字符串常量池底层是C++完成的一个类似于HashMap的一个数据结构StringTable; oop:Ordinary Object Pointer(普通对象指针),它用来表示对象的实例信息,它是在new的时候创建的。 查看字节码情况:jstat -class 25491 查看字节码编译情况:jstat -complier25491 查看GC情况:jstat -gc 25491 ...
2021-03-07 23:23:43
37
原创 2021-01-01
1.加载的类在JVM中创建对应的类结构,该类结构会存储在方法区(JDK1.8之前:永久代,JDK1.8之后:云空间) 2.类被加载至元空间后会在堆中创建一个java.lang.Class对象,用来封装位于方法区内的数据结构,该Class对象是在加载类的过程中创建的,每个类都对应有一个Class类型的对象。该Class对象是访问元数据的接口,也是实现反射的关键入口,通过该Class对象可以获取目标类所关联的数据结构(方法、属性字段等) 3.Class类的构造方法是私有的,只有JVM能够创建。 4.数组类本身
2021-01-01 23:00:12
44
原创 2020-12-13
参考博客 java中int类型边界 简单数据类型之间的转换 在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int--long--float--double 简单数据类型之间的转换又可以分为: 低级到高级的自动类型转换 高级到低级的强制类型转换 包装类过渡类型能够转换 自动类型转换 低级变量可以直接转换为高级变量,例如,下面的语句可以在Java中直接通过: byte b; int i=b; long l=...
2020-12-16 21:57:59
35
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人