- 博客(105)
- 资源 (1)
- 收藏
- 关注
原创 JAVASE面试
由于分布式id用的Long类型,但是返回给前端后id会最后两位会四舍五入,很奇葩,但是用postman测试则不会,怀疑是前端框架转的,Long类型使用js的number类型接受不了,所以损失了精度。
2022-10-14 09:41:20
378
原创 前端接受后端请求Long类型的bug
由于分布式id用的Long类型,但是返回给前端后id会最后两位会四舍五入,很奇葩,但是用postman测试则不会,怀疑是前端框架转的,Long类型使用js的number类型接受不了,所以损失了精度。
2022-09-28 15:56:50
866
原创 docker查看容器启动命令
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike 你的容器id
2022-06-24 17:45:26
1085
原创 mysql行锁机制--未完
本篇只分析mysql在可重复读隔离级别的加锁机制前置知识对于行级锁,主要分为以下三类:行锁(Record Lock):锁定单个行记录的锁,防止其他事务对此行进行update和delete。在RC、RR隔离级别下都支持。间隙锁(Gap Lock):锁定索引记录间隙(不含该记录),确保索引记录间隙不变,防止其他事务在这个间隙进行insert,产生幻读。在RR隔离级别下都支持。临键锁(Next-Key Lock):行锁和间隙锁组合,同时锁住数据,并锁住数据前面的间隙Gap。在RR隔离级别下支持。主
2022-05-05 18:51:47
607
原创 tomcat请求乱码
乱码产生的原因Tomcat接受浏览器请求,在处理数据时产生乱码,原因是:tomcat不知道浏览器发来数据的编码格式,此时tomcat会使用默认的ISO8859-1去解析,导致乱码。让tomcat选择正确的编码解析是解决乱码的根本请求乱码的处理get请求对于get请求提交的数据,在不同版本的tomcat中有不同的处理方式,在tomcat8及以上的版本,服务器默认以utf-8的编码方式处理请求参数,这一点可以从tomcat8官方文档中可以看出URIEncoding: This specifies t
2022-03-29 11:32:56
2131
原创 面试必看-目录
mysql数据库隔离级别优化 索引锁 mvcc分库分表死锁以及mysql死锁的处理行锁什么时候升级表锁redis持久化集群–新增一台机器怎么处理数据结构redis内存不够用怎么办热点key失效、雪崩、穿透的解决springioc和aop事物失效的原因事物传播特性bean的生命周期mybatis一级和二级缓存如何匹配接口和xmlspringmvc流程如何匹配url设计模式常见的设计模式数据结构与算法排序算法分布式分布式锁分布式事务CAP源码li
2022-03-22 20:01:11
3179
原创 面试源码--HashMap
HashMap中put方法的过程?调用哈希函数获取Key对应的hash值,再计算其数组下标;如果没有出现哈希冲突,则直接放入数组;如果出现哈希冲突,则以链表的方式放在链表后面;如果链表长度超过阀值(TREEIFYTHRESHOLD==8),数组长度达到64,就把链表转成红黑树,链表长度低于6,就把红黑树转回链表;如果结点的key已经存在,则替换其value即可;如果集合中的键值对大于12,调用resize方法进行数组扩容。补充:当HashMap中的其中一个链表的对象个数如果达到了8个,此时如果
2022-02-21 15:06:56
304
原创 面试源码--ArrayList和LinkedList的区别
相同点:ArrayList 和 LinkedList都是List的实现类,List集合主要有两个特点:1、有序;2、可重复。所以他们两个肯定也有其特征。ArrayList和 LinkedList都是线程不安全的,多线程环境下容易造成脏读的问题,可以使用Collections.synchronizedList()方法保证线程的安全性。不同点查询ArrayList随机访问效率很高,因为元素的存储是有序的,通过下标index可以知道所查询数据在内存中的位置,寻址快,时间复杂度O(1);LinkedLi
2022-01-14 15:13:27
193
原创 面试源码--LinkedList
1.结构双向链表有头尾节点,Node有前后指针transient int size = 0; transient Node<E> first; transient Node<E> last; public LinkedList() { }private static class Node<E> { E item; Node<E> next; Node
2022-01-14 14:42:07
157
原创 面试源码--ArrayList
1.增强for的本质如下代码:ArrayList<String> strings = new ArrayList<>(); strings.add("333"); strings.add("3334"); for (String string : strings) { System.out.println(string); }编译后再反编译ArrayList<String>
2022-01-13 16:31:07
1387
原创 springboot优雅校验参数
springboot优雅校验参数注意:引入的包import javax.validation.constraints.NotBlank;import org.springframework.validation.annotation.Validated;
2021-12-21 11:11:48
378
原创 java8 新日期api使用
date转localDate date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()localDate转dateDate.from(localDate.atTime(23,59,59).atZone(ZoneId.systemDefault()).toInstant())localDate获取月份最后一天,返回localDatelocalDate.with(TemporalAdjusters.lastDayOfMonth())
2021-12-13 17:18:44
768
原创 算法练习--数组
leetcode题目• https://leetcode-cn.com/problems/move-zeroes/解法:国际网站:滚雪球解法https://leetcode.com/problems/move-zeroes/discuss/172432/THE-EASIEST-but-UNUSUAL-snowball-JAVA-solution-BEATS-100-(O(n))-%2B-clear-explanation国内网站:两种解法https://leetcode-cn.com/pro
2021-12-13 15:17:14
351
原创 mybatis一级缓存与二级缓存
MyBatis缓存机制详解(一级缓存,二级缓存)一级缓存源码当查询集合的时候会调用SqlSessionTemplate的方法selectList此方法会走动态代理最后finally清空缓存private class SqlSessionInterceptor implements InvocationHandler { @Override public Object invoke(Object proxy, Method method, Object[] args) throws
2021-12-09 16:30:26
196
原创 springboot整合mybatis原理
pom<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>在mybatis-sp
2021-12-09 10:29:37
564
原创 开发接口的安全性保证
保证安全性需要保证两点1.请求参数未被篡改2.请求的时效性请求的时效性可以在请求参数加上时间戳参数,如time=xxx保证参数不改动,需要对参数(包含时间戳参数)进行md5加密(加盐),放在请求头中进行请求md5不可逆加密,验证只能通过原始字符串再次加密得到加密串进行对比接口安全https://blog.youkuaiyun.com/qq_24025219/article/details/104525696?ops_request_misc=&request_id=&biz_id=102&
2021-09-14 10:56:33
157
原创 springboot实现webservice的发布和调用
发布webservicepom文件<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.2.5</version> </dependency>web
2021-09-08 10:30:30
1054
原创 线上根据错误关键字查询日志命令
cat logs/info.log | grep ‘972ab192-c589-4989-91ca-39918a1a17c5’ -B201.logs/info.log 是日志位置2.972ab192-c589-4989-91ca-39918a1a17c5 是错误关键字3.-A10 代表 该错误关键字前10行 ,-B20代表该错误关键字后20行
2021-08-24 15:03:18
173
原创 数据结构--循环队列
使用数组的方式实现队列public class MyQueue implements Queue { private Object[] arr; private int head; private int tail; private int count; private int arrLength; public MyQueue(int cap){ arr = new Object[cap]; arrLength = cap
2021-07-04 12:11:27
91
原创 实现热部署
生成 GUID 的网址https://www.guidgen.com/用这个网址 + 生成的 GUID 激活https://jrebel.qekang.com/参考文章地址https://note.youdao.com/ynoteshare1/index.html?id=da9fe89c80cf42991c5dd60cc7b17997&type=note防丢失https://blog.youkuaiyun.com/qq_36406189/article/details/102869981..
2021-06-29 18:19:20
89
原创 JRebel热部署
IDEA+JRebel实现全自动热部署的方法步骤生成 GUID 的网址IDEA+JRebel实现全自动热部署的方法步骤更新时间:2019年11月20日 15:17:36 转载 作者:yiyayiya这篇文章主要介绍了IDEA+JRebel实现全自动热部署的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧简述:JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效。IDEA上原生是不支持热部署的,
2021-06-29 18:05:57
847
原创 自己实现一个简易版的ArrayList
接口public interface MyList<T> { int size(); boolean add(T o); void add(int index,T o); T remove(int index); T get(int index); boolean isEmpty();}实现类public class MyArrayList<T> implements MyList<T> { Object
2021-06-02 09:56:13
120
原创 项目bug
SpringBoot整合TkMapper配置多数据源的坑问题一本人遇到的问题是修改老项目,项目中配置的两个数据源,MapperScan用的是mybatis的注解(如下图),由于之前的项目用的通用mapper,想引进通用mapper,在启动类上加了通用mapper的注解MapperScan,可以正常工作。有一天突然觉得不需要在启动类上加通用mapper的注解MapperScan,因为已经配置了mybatis的MapperScan,删除后,两个数据库的mapper都使用了一个数据库,并且报错某个表的colu
2021-05-31 18:35:19
116
原创 项目常用代码总结
lombok的@BuilderStudent.builder() .sno( "001" ) .sname( "admin" ) .sage( 18 ) .sphone( "110" ) .build();xml里面sql的常用写法,包括时间、like、foreach where `p`.`now_state` not in ('8') and
2021-05-28 11:05:05
340
原创 mysql的update复杂语句
UPDATE t_s_user a ,(SELECT ur.id,bu.username,bu.realname,ur.roleids, (SELECT r.rolename FROM t_s_role r WHERE r.id IN(IFNULL(ur.roleids,''))) rolenames from t_s_base_user bu LEFT JOIN ( SELECT u.id,ru.roleids FROM t_s_user u LEFT j...
2021-05-27 10:05:10
1409
原创 架构演进之路
单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。理解:所有的功能在一个jar包或war包垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。理解:分为互不相干的应用,彼此没有交互与调用,可能会存在代码的重复分布式服务架构当垂直应用越来越多,应用之间交互不可避免.
2021-05-26 11:08:58
252
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人