![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
进击的小王666
这个作者很懒,什么都没留下…
展开
-
maven插件爆红&&打包(package)出错
maven一直用的比较头疼,maven插件那块全都飘红,整个人都傻了。。。当然后来解决了问题,参照网络上的一个解决方案,如果有遇到同类型困境的,就参考一下~不知道大家的settings是公司还是个人的,需要指定一下plugingroup,这样确保我们本地仓库是有对应plugin的文件。然后开始解决飘红:将状态为error的进行update操作直到这块不飘红。如果你惊喜的发现pom里关于插件部分已经不爆红了,很好,尝试打包又报错了,,,,,,,,修改一下你的插件设置,这是由于单元测试没有通原创 2022-06-22 12:04:27 · 1550 阅读 · 1 评论 -
Zookeeper异常ConnectionLossException: KeeperErrorCode = ConnectionLoss
跑个新项目,也设置好了启动参数,启动的时候傻眼了:从zk拉取配置异常,导致Jedis池、kafka等等中间件都跑不起来。关键是上一个类似的项目连的zk一模一样,上一个项目毫无压力的启动。这里建议先使用telnet ip 端口测一下能不能跑通,如果不能大概是IT运维部门的事,你的vpn没有开通连接这个端口的权限~当然我的是可以跑通的。接下来就是解决方案(实测可行):上面这两个如果是自己写的连接,肯定都知道对应什么,如果不是,但愿你的打印日志里面能找到~举例:192.169.0.1 my-zk.原创 2022-06-17 11:53:18 · 794 阅读 · 0 评论 -
Fastjson反序列化远程代码执行漏洞
据国家网络与信息安全信息通报中心监测发现,开源Java开发组件Fastjson存在反序列化远程代码执行漏洞。攻击者可利用上述漏洞实施任意文件写入、服务端请求伪造等攻击行为,造成服务器权限被窃取、敏感信息泄漏等严重影响。先贴一个解决漏洞的方案:不过任何升级一定会伴随或大或小的bug,一定要对业务的影响做评估。下面对漏洞原理进行介绍:fastjson 是阿里巴巴开发的 java语言编写的高性能 JSON 库,用于将数据在 Json 和 Java Object之间相互转换。它没有用java的序列化机制,而是自原创 2022-06-15 10:17:54 · 4370 阅读 · 1 评论 -
3.15面试整理
hashmaphashmap的put流程,指定容量初始化会按照容量吗,扩容后下标是否重新计算put流程,先通过hashcode与(当前容量-1)进行异或运算,定位到数组下标,然后判断此位置是否为空,为空则放入此位置,不为空,遍历链表,使用equals方法比较,若存在一致key则直接修改value值,否则拉链,1.7采用头插法,多线程下容易引起死链,1.8采用尾插法;1.7在插入前扩容,1.8在插入后扩容,(是否达到容量*扩容因子),1.7需要对每个元素rehash计算下标,1.8扩容后hashcode原创 2022-03-16 11:19:36 · 1478 阅读 · 0 评论 -
面试总结(3.10)
你为啥用mybatis-plus,用到了哪些,链式调用对mybatis的增强,只增强不改变,简化开发,可以注册分页拦截器代替pagehelper,链式调用;修改配置文件即可打印sql日志(之前用的是一个插件);可以对实体类的字段进行映射,TableId定义主键(可以设置分配策略),TableField定义非主键字段鉴权和登录(忘说鉴权了)鉴权方面是在方法上加注解,权限字符串,在用户登录的时候,通过rbac校验获取他的权限字符串,判断是否包含此权限方可完成调用java对象的寻址方式直接指针,指针原创 2022-03-13 09:49:46 · 1210 阅读 · 0 评论 -
redis淘汰机制
来讲讲redis的淘汰机制吧~redis他是基于内存的,因此需要淘汰数据否则也会溢出崩溃;redis的两种过期策略定期删除:每隔100ms抽取设置了过期时间的数据进行检查惰性删除:获取key的时候才判断是否已经过期,过期则从内存中删除并不返回数据;redis的内存淘汰机制可在redis.conf中配置:maxmemory-policy:~默认采用禁止驱逐数据,不接受新的内存分配lru:从设置了过期时间的数据集中挑选最近最少使用的数据淘汰。ttl:从已设置了过期时间的数据集中挑选即将要过期的原创 2022-03-09 21:09:00 · 447 阅读 · 0 评论 -
启动虚拟机时可选的参数(调优)
-verbose:class输出类加载信息-verbose:gc输出gc信息-verbose:jni输出本地方法调用信息-Xms默认堆大小-Xmx最大堆大小-Xss默认栈大小-Xmn新生代大小-XX:NewRatio=n新生代与老年代比例设置-XX:SurvivorRatio新生代eden suivivor比例-XX:+HeapDumpOnOutOfMemoryError:表示当JVM发生OOM时,自动生成DUMP文件。-XX:+PrintGCDetails打印GC日志...原创 2022-03-09 20:57:32 · 293 阅读 · 0 评论 -
面试小总结
http请求报文请求行 请求方法 url 协议版本请求头 请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔空行请求体 请求数据不在GET方法中使用,而是在POST方法中使用线程状态初始 就绪 运行 阻塞 死亡就绪后分配到时间片运行,run方法结束死亡;运行态时间片到了或者yield让出执行权了回到就绪态;调用sleep(可能超时等待)或者join就进入阻塞,直到完毕后进入就绪态;调用wait进入等待队列,唤醒后进入锁池队列,抢到锁后进入就绪态;limit分页优化尽原创 2022-02-23 17:28:30 · 53 阅读 · 0 评论 -
nginx和dubbo的负载均衡策略
nginx:1.轮询2.基于权重的轮询3.响应时间4.ip hash5.请求hashdubbo:1.基于权重的随机2.基于权重的轮询3.最少活跃数(响应时间)4.一致性hash(相同参数)原创 2022-02-23 10:07:50 · 881 阅读 · 0 评论 -
解决Spring循环依赖
A类初始化时需要初始化B类,B类初始化时又需要初始化A类原创 2022-02-19 11:35:54 · 205 阅读 · 0 评论 -
2.16面试整理
springboot的核心配置文件是哪个applician.yml或者propertis,约定大于配置序列化的特点和时机跨平台传输或网络传输,传输前序列化,之后反序列化接收对一些集合容器的理解set list map collection接口前两个实现了collection接口Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象代表是hashset(哈希算法,存取快)和treeset(能够进行排序,底层是红黑树)LinkedHashSet : 具有HashSet的查询原创 2022-02-16 12:38:24 · 434 阅读 · 0 评论 -
java基础复习
数据类型八种 byte short int long float double char boolean1 2 4 8 4 8 1(ascII unicode2) 4集合不认基本数据类型,所以需要使用包装器(可以自动拆装箱,隐式调用)128陷阱,比如在Integer中,内置一个缓存数组,范围是-128-127,在此范围内的数字只保留一份在内存中,因此他们==的结果是相同的字符串不可变性的保证类是final的,不可被继承char数组是final的不可被二次指向内部不提供修改数组成员的方法好原创 2022-02-12 12:12:53 · 193 阅读 · 0 评论 -
spring AOC使用(面向切面)
通过实现接口并重写通知的方式TargetInteface(如果是用jdk动态代理的方式,还是需要定义和实现接口)public interface TargetInteface { void method1(); void method2(); int method3(Integer i);}目标类public class Target implements TargetInteface{ /* * 需要增强的方法,连接点JoinPoint **/原创 2022-01-21 10:28:49 · 973 阅读 · 0 评论 -
仿写springmvc(反射)
Main.class定义了程序启动的入口,在实际中由tomcat启动main方法public class Main { static { String path = Main.class.getResource("").getPath();//获取类加载的根路径 String packageName = Main.class.getPackage().getName();//返回包名 HeaboyMvc.scanner(path,packageNa原创 2022-01-17 19:08:26 · 208 阅读 · 0 评论 -
初始化大乱斗(java初始化)
public class InitializeDemo { private static int k = 1; private static InitializeDemo t1 = new InitializeDemo("t1"); private static InitializeDemo t2 = new InitializeDemo("t2"); private static int i = print("i"); private static int n =原创 2022-01-17 17:57:51 · 251 阅读 · 0 评论 -
java方法调用的过程及抽象类与接口的异同
调用过程 如x.f(args)1.编译器査看对象的声明类型和方法名,编译器将会一一列举所有 C 类中名为 f 的方法和其超类中访问属性为 public 且名为 f 的方法(超类的私有方法不可访问)2.编译器将査看调用方法时提供的参数类型,进行重载解析3.参数匹配如果是静态的(private static final修饰的方法)可以直接找到 并调用动态的找和实际类型最匹配的那个进行调用,这里引入方法表的概念,里面列举了所有方法的签名和调用方法。抽象类与接口的异同1.接口的方法默认是 publ原创 2022-01-15 19:36:48 · 151 阅读 · 0 评论 -
java字符串不可变的原因以及实现原理
先上结论原因:由于数组的内存连续及大小限制,需要换地址修改实现原理:final 修饰的char数组 -》 数组不指向新的数组final修饰String类 不能被其他人继承子类进行修改 1String类内没有任何一个修改数组内容的方法java的设计者认为字符串的共享性要比他的可变性重要,因此自然将他设置为不可变。如图被final修饰的类不可被继承,也就是不可以被篡改。内部的char型数组被final修饰,仅在构造器进行初始化时可被赋值一次,后面不可再进行赋值(这里指的是更换数组对象),原创 2022-01-15 18:38:41 · 457 阅读 · 0 评论 -
分布式与微服务思想介绍
分布式概述分布式(distributed)是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段,将一个业务拆分成不同的子业务,分布在不同的机器上执行。服务之间通过远程调用协同工作,对外提供服务。从理念上讲,分布式的实现有两种形式:水平扩展:当一台机器扛不住流量时,就通过添加机器的方式,将流量平分到所有服务器上,所有机器都可以提供相同的服务;垂直拆分:前端有多种查询需求时,一台机器扛不住,可以将不同的业务需求分发到不同的机器上,比如A机器处理余票查询的请求,B机器处理支付的请求。集群集群(c原创 2022-01-05 19:18:36 · 106 阅读 · 0 评论 -
java static/final关键字及128陷阱(源码剖析)
finalfinal修饰类不可继承final修饰方法不可被重写final修饰变量,变量不可被再次赋值(成为常量)final防止多线程下指令重排,保证线程可见性staticstatic表示静态,类在加载的时候,被static修饰的变量方法就将加载到方法区,并且只存在一份, 并将引用拷贝给每个对象共享,可以通过类名.属性/方法直接调用 被static修饰的内容保证线程可见128陷阱答案就在Integer的valueOf()方法当中,如果我们的数值在-128-127之间的数值都存储在有一个cath原创 2022-01-01 10:49:39 · 293 阅读 · 0 评论 -
mysql知识点总结10.24
请你写出一个SQL查询,如果一个学生知道了自己综合成绩以后,最差是排第几名? 结果按照grade升序排序:开窗函数:select grade,sum(number) over (order by grade) --按各个等级排序,分别计算sum()最差名次t_rank from class_grade order by grade;case:(面试常考)-- case when then endSELECT grade,(CASE grade WHEN 'A' THEN (SELECT SU原创 2021-12-07 19:33:01 · 138 阅读 · 0 评论