- 博客(11)
- 收藏
- 关注
原创 重载、重写,静态分派、动态分派的原理
重写:子类对父类方法的重写编写(方法名,参数类型,个数,返回值相同)。重载:当前类中相同方法名,不用参数类型或个数的多个方法。静态分派:发生在编译期,在编译器决定调用哪个具体的方法,直接查看字节码就知道调用的方法是哪个。动态分派:发生在运行期,在运行期决定调用哪个具体的方法。例子一:重载public class TestOverLoad { static class Phone...
2020-03-05 22:10:34 365
原创 mysql如何进行组内排序?利用复合索引高效得到结果!
常见的组内排序方式有,1:子查询法:根据子查询得到组内的最小或最大值,再通过id查询数据。2:利用group_concat(name order by name desc) 得到列值顺序或倒序的拼接字符串,再使用substring函数切合得到字符串第一个元素的值。子查询法的缺点是,需要进行子查询,所以需要用到临时表。速度比较慢而本文介绍到的使用复合索引去查询得到组内排序结果,只需要一条普通的s...
2019-12-20 23:20:53 565
原创 探究mysql order by的值相同时,返回结果不一致的原因
1.表结构由于是公司的数据库,只把需要的列展示出来,其他敏感数据就不展示了。只需要关注这两列,主键id,car_rank_id(有索引)2.过程select * from × order by car_rank_id当car_rank_id相同时,id完全无规律select id,car_rank_id from × order by car_rank_id当car_ra...
2019-12-04 17:33:57 2996
原创 mysql是怎么解决幻读的(mvcc,间隙锁)
mysql的默认隔离级别是RR(可重复读),网上随便一查都知道RR会导致幻读(同一个事务里面多次查询的结果不一致),可是我自己测试过后发现在RR下并不存在幻读的问题,哪mysql是怎么解决幻读的呢?有两种手段。1,mvcc(多版本控制),2,范围锁1. mvcc每次开启事务后都会递增创建一个版本号(version),之后的增删查改都是基于这个版本号进行操作的。SELECT (version)...
2019-10-14 18:47:35 3988 1
原创 hystrix的作用和小结
1. hystrix的作用命令模式的请求:解耦了请求者和接受者,使得发送出去的命令可以排队、异步执行。资源隔离:用ConcurrentHashMap绑定commandKey和线程池,当某个功能运行不稳定或有问题时,服务的其他部分不受影响。服务恢复比较快。健康度统计和断路器:用ConcurrentHashMap绑定commandKey和HystrixCircuitBreaker类(断路器类)...
2019-10-14 17:00:03 4724 1
原创 ribbon初始化
1. 核心类RestTemplate 发送http请求LoadBalancerInterceptor 拦截器LoadBalancerClient 负载均衡类RestTemplateCustomizer 把interceptor加载到RestTemplate@Configuration@ConditionalOnClass(RestTemplate.class)@Condition...
2019-10-06 16:29:42 340
原创 如何据业务需求设置ThreadPoolExecutor线程池参数
1. 简介常用的线程池有newFixedThreadPool,newCachedThreadPool,newSingleThreadScheduledExecutor,newScheduledThreadPool但其实这些线程池都是根据ThreadPoolExecutor传入不同的参数构造而成的,如果我们能明白这些参数的含义就能创建一个更贴合当前的业务场景的线程池了。2. 参数解析core...
2019-09-18 15:22:13 232
原创 eureka客户端启动流程
1. 获取eureka服务端的地址2. 初始化延时任务初始化任务位于这个方法中:com.netflix.discovery.DiscoveryClient#initScheduledTasks把延迟任务封装到这个类里面com.netflix.discovery.TimedSupervisorTask#TimedSupervisorTask,使得每个定时任务运行结束后根据运行时间动态调整下次...
2019-09-09 11:43:50 1220
原创 如何优化mysql分页查询
接上篇:《如何写一个高效的索引,优化mysql查询(分页,回表,排序)》现在需求改了,需要进行分页并且返回所有的字段。可以按照上篇的方法写一个三星索引,但有一个严重的问题,由于需要查询全部的列,而为了避免回表只能建立一个所有列的联合索引。这就等于把整个表的数据复制了一份。CREATE TABLE `eyas_account` ( `id` int(11) NOT NULL AUTO_INC...
2019-08-21 14:03:30 341
原创 如何写一个高效的索引,优化mysql查询(分页,回表,排序)
1. 需要优化的地方where用索引(避免全表扫描)select用索引(避免回表)排序走索引 (避免查询出来后还要进行排序)按照[《数据库索引设计与优化》][1]的说法满足1,2和3的索引就是三星索引了2. 例子测试表有3308670行数据,数据是我网上找了个人名生成网站后把数据写进去的CREATE TABLE `eyas_account` ( `id` int(11) NO...
2019-08-21 11:28:16 1398
原创 Java是引用传递还是值传递?
1. java的两种数据类型的传递类型1.1 基本类型 基本类型有8种包括:int,short,long,char,float,double,boolean,byte例1:int a = 234;1,在栈内存中找到一个空的地址如:126。2,在这个地址上放置一个int变量值为234。这个时候a=234,而不是126。所以对于基本类型是值传递!1.2 引用类型 引用类型包括:...
2019-08-15 16:27:10 83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人