自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Welocme

你要为你的梦想负责

  • 博客(19)
  • 收藏
  • 关注

原创 2022 年终复盘

2022年终

2023-01-04 17:37:14 227

原创 2021年终复盘

2021 年终复盘学习方面​ 今年学习方面确实没有很大的收获。学习了一部分的知识包括,手写Spring核心功能(精通)、学习(Go,Rust)、本来想了解Go源码一直没有进度,看了ES源码解析与优化实战书并尝试自己操作,了解下设计思想。​ 还看了几本书,增长黑客、Spring源码讲解、ES源码解析与优化实战书、向上成长。​ 国庆节加入了dubbogo社区,感谢于老板让我参与哈哈,当然了还是要自己主动去找机会,然后国庆节那天贡献了一个pr,尽管代码很简单但是对我来说是一小步,然后慢慢对开源社区多了一份

2021-12-31 23:09:19 358 1

原创 TCP协议与UDP协议 & 什么是三次握手与四次挥手

TCP协议与UDP协议 & 什么是三次握手与四次挥手tcp协议和udp协议都工作在传输层,他们的目标都是在程序之间传数据。数据可以是文本文件可以是视频也可以是图片。TCP和UDP区别是什么TCP基于连接,UDP基于非连接举个例子如果把人与人的通信,比喻为进程与进程的通信。有两种方式,不过这两种方式之间最大的区别是什么?写信,基于非链接UDP对方是否能收到内容是否完整消息是否按顺序收信地址收信人是否存在,都无法确认打电话,基于TCP连接电话接通互相通话结束挂断

2021-06-14 23:37:25 305 3

原创 使用SpringBoot的InitializingBean特性,编写可扩展可维护的拦截器

拦截器如果我们要用拦截器,拦截某个接口需要校验,还需要再拦截器方法写上/admin/** 等等,这样代码不可维护,不可扩展我们可以使用注释来指定这个接口是否要拦截,使用到Spring的InitializingBean,再系统启动的时候通过注解拿到需要拦截的接口路径,代码编写一下注释编写@Target(TYPE)@Retention(RUNTIME)public @interface Interceptor {}拦截器编写public class AdminInterceptor impl

2021-04-14 14:29:50 195

原创 Java线程的6种状态及切换

Java线程状态常见的线程状态有六种:new一个线程时,还没有调用start()该线程处于新建状态线程对象调用start()方法时候,他会被线程调度器来执行,也就是交给操作系统来执行了,那么操作系统来运行的时候,这整个状态叫Runnable,Runnable内部有两个状态 (1)Ready就绪状态/(2)Running运行状态。就绪状态是说扔到CPU的等待队列里面去排队等待CPU运行,等真正扔到CPU上去运行的时候才叫Runnable运行状态。(调用yiled时候会从Running状态跑到Ready

2021-03-01 11:59:27 92

原创 Flink-四大组件

Flink-四大组件作业管理器(JobManager)控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的JobManager所控制执行。JobManager会先接收到要执行的应用程序,这个应用程序会包括:作业图(JobGraph)、逻辑数据流图(logical dataflow graph)和打包所有类、库和其它资源的JAR包。JobManager会把JobGraph转换成一个物理层面的数据流图,这个图被叫做“柱形图”(ExecutionGraph),包含了所有可以并发执行的任务

2021-02-28 11:48:22 1164

原创 最快简单的Apache Flink入门

Flink-入门安装为了能够运行Flink,唯一的要求是安装有效的Java 8或11。您可以通过发出以下命令来检查Java的正确安装:java -version安装环境 centos7下载Flink ,我这里安装的是1.11.3版本,下载好文件并压缩tar -zxvf flink-1.11.3-bin-scala_2.11.tgzcd flink-1.11.3启动 ./bin/start-cluster.sh访问ip:8081,注意访问flink页面注意端口是否开放,防火墙是否关闭

2021-02-23 18:13:17 397

原创 Java并发编程的艺术 - Java 阻塞队列

什么是阻塞队列​ 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。支持阻塞的插入方法:当队列满的时候,队列会阻塞插入元素的线程,知道对了不满。支持阻塞的移除方法:当队列为空时候,获取元素的线程会等待队列变为非空。​ 阻塞队列常用生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者从队列里获取元素。阻塞队列就是生产者用来存放元素、消费者用来获取元素的容器。​ 在阻塞队列不可用时,附加操作提供了四种处理方式方法/处理方式抛出异常返回特殊值一直阻塞超时退

2020-12-29 17:51:13 218

原创 ThreadPoolExecutor 介绍 使用

ThreadPoolExecutor 介绍 使用​ 想用好ThreadPoolExecutor线程池就必须要了解线程、进程和线程池是什么什么是线程、线程和进程的区别是什么?​ 线程、程序执行流的最小执行单元,是行程中的实际运作单位。​ 进程是一个动态的过程,是一个活动的实体。一个应用程序(英雄联盟)的运行就可以被看作是一个进程,而线程是运行中的实际的任务执行者。进程中包含了多个可以同时运行的线程。单线程和多线程的区别?单线程​ 在程序执行时,所走的程序路径按照连续的顺序排下来,前面的操作处理好

2020-12-28 18:12:05 849

原创 Java并发编程的艺术 - ConcurrentHashMap(JDK1.7版本)

Java并发编程的艺术 - ConcurrentHashMap(JDK1.7版本)为什么要使用ConcurrentHashMap在并发编程中使用HashMap会导致程序死循环。而使用线程安全的HashTable效率又非常低下。线程不安全的HashMap​ 在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发的情况下不能使用HashMap。执行以下代码会造成死循环。public class ConcurrentHashMapTest { f

2020-12-27 16:48:54 402 1

原创 Java 并发编程的艺术 - 线程的supend()、resume()、stop()

Java 线程的supend()、resume()、stop() public static void main(String[] args) throws Exception { Thread thread = new Thread(new Runner(), "PrintThread"); thread.setDaemon(true); thread.start(); TimeUnit.SECONDS.sleep(3);

2020-11-10 06:48:08 301 1

原创 Java 并发编程的艺术 - volatile

Java 并发编程的艺术 - volatile在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的"可见性"。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。如果volatile变量修饰符使用适当的话,它比synchronized的使用和执行成本更低,因为它不会引起上下文的切换和调度。volatile的定义与实现原理Java编程语言允许线程访问共享变量,是为

2020-10-26 22:49:35 102

原创 Apache Flink 介绍

Flink什么是Flink?Flink是一个框架和分布式处理引擎,用于对无限制和有限制的数据留进行有状态的计算。Flink被设计为可在所有常见的集群环境中运行,以内存速度和任何规模执行计算。处理无界和有界数据任何类型的数据都是作为事件流产生的。信用卡交易,传感器测量,机器日志或网站移动应用程序上的用户交互,所有这些数据均作为流生成。数据可以作为无界流或有界流处理。无界流有一个起点,但没有定义的终点。它们不会终止并在生成数据时提供数据,无界流必须被连续处理,即事件在被摄取后必须被及时处理。无法

2020-10-21 17:38:30 335 1

原创 Golnag 搭建国内镜像踩坑

Golnag 搭建国内镜像踩坑在Windows系统下,go语言已经搭建好我们不在讲解,傻瓜式安装就好。搭建国内镜像打开此电脑属性,选择高级系统属性,环境变量设置新增用户变量,我们添加两个环境输入变量名:GO111MODULE输入变量值:on输入变量名:GOPROXY输入变量值:https://goproxy.cn完成搭建国内镜像了,安装快的起飞...

2020-07-23 14:34:54 377

原创 Spring 4 实战(跟踪 Spring MVC 的请求)

跟踪 Spring MVC 的请求​ 用户请求浏览器①,会带用户所请求内容的信息,至少会包含请求的URL,可能会带其他的信息,比如用户提交的表单信息。​ 请求的是Spring的DispatcherServlet。Spring MVC 所有的请求都会通过一个前端控制器(Controller)Servlet。前端控制器是常用的Web应用程序模式,在这里将请求给应用程序的其他组件来执行实际的处理,在Spring MVC中,DispatcherServlet就是前端控制器。​ DispatcherServl

2020-07-22 16:44:28 122

原创 ElasticSearch动态Mappings详解

Elasticsearchmappings 动态映射### Dynamic fieid mappings 默认情况下是根据es支持的数据类型类推测参数的类型,而动态模板允许您定义自定义映射规则,根据自定义的规则来推测字段值所属的类型,从而添加字段类型映射。{ "dynamic_templates": [ // 1 { "my_template_name": { //2 match conditions , //3

2020-06-23 14:57:44 401

原创 Java HashMap插入分析

Java HashMap插入分析插入逻辑分析首先定义要插入的键值对属于那个桶,定位到桶后,在判断是否为空。如果为空,将键值对存入。如果不为空,将键值对接在链表最后一个位置或者更新键值对。首先HashMap是变长的集合,所以需要考虑扩容的问题。在JDK8中,HashMap引入了红黑树优化过长链表,还需要考虑多长的链表需要进行优化。插入操作源码: public V put(K ...

2020-04-21 23:24:03 442

原创 Java JDK8 HashMap简介

Java中的HashMap的实现原理hashCode 的作用hashCode的存在主要是用于查找快捷性,如HashTable,HashMap等。hashCode是用来散列存储结构中确定对象的存储地址。如果两个对象相同,就适用于equals(java.lang.Object)方法,那么这个两个对象的hashCode一定要相同。如果对象的equals方法被重写,那么对象的hashCode...

2020-03-11 14:26:37 375

原创 google开源的用于监控基础设施应用的工具 cAdvisor 报错 inotify_add_watch /sys/fs/cgroup/cpuacct,cpu

错误问题/usr/bin/docker-current: Error parsing reference: " --volume=/var/lib/docker/:/var/lib/docker:ro" is not a valid repository/tag: invalid reference format.解决问题输入以下命令符mount -o remount,rw '/sys/f...

2020-02-29 17:35:43 1308

空空如也

空空如也

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

TA关注的人

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