自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 多线程注入SPring bean

注解注入Bean的时候一直报空指针,后面查阅了一些文章后发现是因为,多线程每次运行都不在spring容器中,而后则使用了手动获取的方式,手动获取需要实现。在使用ScheduleFuture实现定时任务中,因为可能存在多个定时任务同一时段运行的情况。所以在此使用了多线程,但在使用。可加可不加,因为这个是一个工具类,我这是为了方便别的代码里要用的时候方便注入的。这个工具类写好后在需要注入的时候。

2024-01-18 14:02:53 400

原创 JDK1.7和1.8的区别

JDK1.8引入了Lambda表达式和Stream API这两个重要的新特性,使得代码编写更简洁、易读。同时,JDK1.8还引入了接口的默认方法和新的日期和时间API,进一步改进了Java语言的功能。这对于接口的演化来说是一项重大的改进,可以在不破坏现有代码的情况下添加新的方法。3.2 新的日期和时间API JDK1.8引入了一套新的日期和时间API,这个API提供了更好的性能和更丰富的功能。新的日期和时间API使用更直观的命名,更易用,同时还修复了JDK1.7中存在的一些问题。

2023-08-09 17:47:47 2863

原创 redis总结

与select/poll不同,epoll不在是一个单独的调度系统,而是由epoll_create / epoll_ctl / epoll_wait三个系统组成,后面将会看到这样做的好处。epoll_wait的效率也是非常高的,因为调用epoll_wait时,并没有一股脑的向操作系统复制这100W个连接的句柄数据,内核也不需要去遍历全部的连接。I/O多路复用器监听套接字,并关联到相应的事件处理器上面,当被监听的套接字准备好执行链接时候,与之对应的文件事件处理器就会调用相应的事件处理器来处理事件。

2023-04-01 21:07:35 122

原创 Java常量池

Java常量池

2022-12-04 10:03:16 207

原创 设计模式08-中介者模式

设计模式-中介者模式

2022-12-02 20:22:21 94

原创 设计模式07-原型模式

设计模式-原型模式

2022-12-02 19:28:24 137

原创 设计模式01-单例模式

设计模式

2022-12-02 18:59:15 135

原创 设计模式02-工厂模式

设计模式

2022-12-02 18:58:43 68

原创 设计模式03-抽象工厂模式

设计模式

2022-12-02 18:58:01 87

原创 设计模式-抽象工厂模式

设计模式

2022-12-02 18:56:51 55

原创 设计模式04-模板模式

设计模式

2022-12-02 18:55:58 85

原创 设计模式05-建造者模式

设计模式

2022-12-02 18:55:00 51

原创 设计模式06-代理模式

设计模式-代理模式

2022-12-02 17:44:41 78

原创 软件设计原则

设计模式学习

2022-12-01 20:37:31 242

原创 Spring源码-doCreateBean

doCreateBean

2022-11-17 15:06:02 634

转载 SpringCloud-@EnableFeignClients注解

@EnableFeignClients注解

2022-11-16 14:32:16 3865

转载 SpringCloud-@EnableFeignClients注解

@EnableFeignClients注解

2022-11-16 14:30:45 3341

转载 SpringBoot-01(自动装配)

springboot-自动装载

2022-11-16 10:57:01 137

原创 unable to access ‘xx.git/‘: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connec

git bash执行下面的命令,就OK了git config --global http.sslVerify false

2021-05-08 17:22:17 154

原创 Redis设计与原理-02-链表

1.结构如下多个节点之间通过prev和next指针组成双端链表list结构记录了头结点,尾结点,节点数量等信息

2020-08-27 11:21:01 94

原创 zookeeper选举详情流程

1.加载配置文件,单节点不牵扯选举,多借点需要选举2.设置IP.PORT,最大连接数等参数3.启动线程,开始节点选举4.looking状态:统计所有的looking的总数,并为每个设置选票为当前节点的myid,当前日志ID zxid和当前的的epoch 构建选票信息。开始选举 1.将自己的选票信息发送给其他所有节点 2.自己的接收队列中获取消息是否为空 1.如果为空,检查自己是否收到消息,没有的话,则发送消息联系其他节点,我没有收到消息 2.否则尝试连接...

2020-08-27 11:08:55 407

原创 Redis设计与实现-01-字符串

一1.会记录保存的SDS字符串的长度,所以获取字符串长度就可以从O(N)降到O(1)2.C语言不记录数据长度,需要自己分配好内存,才可以进行扩展,默认是已经分配好足够的空间。SDS每次修改字符串,都会进行自动分配内存,而不需要程序员进行分配。避免了内存溢出3.进行预分配,避免了每次操作都进行内存分配,减少分配次数,减少性能消耗SDS的数据存储模型未进行内存预分配进行了内存预分配二.1.空间预分配空间预分配用于优化SDS的字符串增长的操作,当SDS的API对一个SDS进行.

2020-08-23 15:03:30 142

原创 翻转链表

public static Node reverse(Node node) { if (node == null || node.next == null) { return node; } Node temp = node.next; Node newNode = reverse(node.next); temp.next = node; node.next = null; ..

2020-08-17 12:22:18 83

转载 索引失效情况

要想分析MySQL查询语句中的相关信息,如是全表查询还是部分查询,就要用到explain.索引的优点大大减少了服务器需要扫描的数据量 可以帮助服务器避免排序或减少使用临时表排序 索引可以随机I/O变为顺序I/O索引的缺点需要占用磁盘空间,因此冗余低效的索引将占用大量的磁盘空间 降低DML性能,对于数据的任意增删改都需要调整对应的索引,甚至出现索引分裂 索引会产生相应的碎片,产生维护开销一、explain用法:explain +查询语句。id:查询语句的序列号,上面图片中只

2020-08-15 20:47:43 176

转载 二分查找

import java.util.Arrays; /** * 测试二分法查找 * 二分法适用于已经排好序的数组 * @author Administrator * */public class TestBinarySearch { public static void main(String[] args) { int[] arr= {30,20,50,10,80,9,7,12,100,40,8}; Arrays.sort(arr); System.out.println(A.

2020-08-05 19:21:19 66

原创 找出链表是否是环状链表,并找出对应的入口

1.定义Node属性package com.example.demo;public class Node1 { // 这仅仅是一个标识,用来标记这是哪一个节点 public int tag; public Node1 next; public Node1(Node1 next, int tag) { this.next = next; this.tag = tag; }}2.构建有环链表 0public

2020-07-28 10:02:48 85

原创 LRU算法

Node节点定义package com.example.demo;public class Node { Object key; Object value; Node pre; Node next; public Node(Object key, Object value) { this.key = key; this.value = value; }}LRU算法package com.example..

2020-07-26 14:15:26 62

原创 算法练习

package com.example.demo;import java.util.Arrays;public class Test20200716 { public static void main(String[] args) { int [] A = {3,2};int [] [] queries = {{4,0},{3,0}}; int[] ints = sumEvenAfterQueries(A, queries); for(i.

2020-07-26 13:56:48 78

原创 算法练习

package com.alibaba.dubbo.examples.validation;import com.alibaba.dubbo.common.utils.Stack;import java.util.*;import java.util.concurrent.CountDownLatch;import java.util.concurrent.Semaphore;public class Test { public static void main(String[] .

2020-07-26 13:45:21 100

原创 leetcode121,122(卖出股票的最佳时机)

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。思路。只需要前一天比后一天小就可以前一天卖出,买进,后一天再卖出,计算public static int maxProfit1(int[] prices) { int sum = 0; for(int i=1;i<prices.length;i++) { if (pric...

2020-07-26 13:41:58 93

原创 leetcode-118(杨辉三角)

//给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。 public static List<List<Integer>> generate(int numRows) { List<List<Integer>> lists = new ArrayList<List<Integer>>(); for (int i =0;...

2020-07-26 13:36:59 54

原创 使用栈实现队列

Stack<Integer> stack = new Stack<Integer>(); stack.push(1); stack.push(3); stack.push(2); stack.push(8); stack.push(5); get(stack); while (!stack.isEmpty()){ Syst...

2020-07-26 13:34:35 84

原创 leetcode-88(合并两个有序数组)

public static int[] merge(int[] a, int[] b) { int lena = a.length; int lenb = b.length; int[] c = new int[lena + lenb]; int i = 0, j = 0, k = 0;//分别代表数组a ,b , c 的索引 while (i < lena && j < lenb) { ...

2020-07-26 13:30:36 61

原创 快速排序

快速排序 public static void main(String[] args) { int[] arr = { 49, 38, 65, 97, 23, 22, 76, 1, 5, 8, 2, 0, -1, 22 }; quickSort(arr, 0, arr.length-1); for(int in:arr) { System.out.println(in); } } public s.

2020-07-26 13:27:16 61

转载 项目扩展性设计原则

http://baijiahao.baidu.com/s?id=1589208155817565299&wfr=spider&for=pc

2020-07-02 18:34:16 1456

原创 synchronized

用户态与内核态JDK早期,synchronized 叫做重量级锁, 因为申请锁资源必须通过kernel, 系统调用;hello.asm;write(int fd, const void *buffer, size_t nbytes)section data msg db "Hello", 0xA len equ $ - msgsection .textglobal _start_start: mov edx, len mov ecx, msg

2020-06-12 18:11:04 308

原创 dubbo服务暴露简版总结

dubbo服务导出1.serviceBean实现了ApplicationListener接口,当spring刷新上下文的时候,会回调onApplicationevent事件2.是否延迟导出,执行export方法3.执行父类ServiceConfig的export方法,4.执行doExport5.执行doExportUrl导出服务6.执行doExportUrlForProtocol为每个协议下面导出服务7.执行RegisteyProtocol里面的export方法,将服务者链接包装成invoke

2020-06-02 18:50:14 262

原创 Dubbo调用过程

对于接口方法,我们可以按照需求标注 Adaptive 注解。在获取实现类的过程中,如果某个实现类被 Adaptive 注解修饰了,那么该类就会被赋值给 cachedAdaptiveClass 变量。以 Protocol 接口为例,该接口的 destroy 和 getDefaultPort 未标注 Adaptive 注解,其他方法均标注了 Adaptive 注解。Dubbo 不会为没有标注 Adaptive 注解的方法生成代理逻辑,对于该种类型的方法,仅会生成一句抛出异常的代码。Registry.

2020-05-20 15:21:38 162

原创 Runnable+线程池

1.创建线程池 private ExecutorService executor; /** *启动项目的同时创建线程池 */ @PostConstruct private void initThreadPool() { executor = new ThreadPoolExecutor(5, 10, 1000, TimeUnit.SECONDS, linkedBlockingQueue);.

2020-05-20 10:20:36 654

原创 Callbale+线程池

一创建线程池和Callable任务1.创建线程池//创建线程池public class ThreadExecutors { /** * 初始化线程池 */ static ThreadPoolExecutor pool = initExecutorPool(); public static String ThreadResult(Req req) { String respMsg = null; Future&lt.

2020-05-20 10:12:51 794

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除