自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 长连接与短连接,长轮询与短轮询

序言最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码。在研究一个项目的时候,源码里面用到了HTTP的长轮询。由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HTTP的长长短短。了解的方式主要都是LZ在网络上获取的,这里只是谈一下LZ对于这四种叫法最直观的理解。如果你之前不懂的话,可以帮你普及一下,如果你之前就懂得话,可以互相对照一下。以前的误解很久之前LZ就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接

2021-12-15 18:43:07 313 1

原创 Linux常用命令整理

查看linux系统信息arch #显示机器的处理器架构(1)uname -m #显示机器的处理器架构(2)uname -r #显示正在使用的内核版本dmidecode -q #显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda #罗列一个磁盘的架构特性hdparm -tT /dev/sda #在磁盘上执行测试性读取操作cat /proc/cpuinfo #显示CPU info的信息cat /proc/int

2020-10-16 14:47:17 650

原创 mybatis神坑总结

最近做项目遇到了一个问题,后台请求一直未响应。初步排查以为是数据库锁表了,后来万万没想到只是在mybatis mapper的sql语句中多了个空格!!!程序显示已执行结束,mybatis还无报错。排查问题耗时5个多小时。具体代码如下:<delete id="deleteByPk"> delete from table_name where PK_ID=# {pkId}</delete>大家能看出来问题出现在哪儿么!!!就是#与参数之间多了个空格!!!程序一直卡在这

2020-10-12 11:34:42 336

原创 Git分支模式的选择

支的目的是隔离,但多一个分支也意味着维护成本的增加。我们可以分别从开发和发布分支的多寡,做个简单组合,即:主干开发,主干发布。分支开发,主干发布。主干开发,分支发布。分支开发,分支发布。设想两个不同的场景:如果一个软件,只有一个开发者,只需要一个发布版本,那他需要什么样的分支模式?如果一个软件,有 10 位开发者,需要支持多个版本,那他们又需要什么样的分支模式?一个好的分支模式,可以大大提高软件的开发、集成和发布效率。选择什么样的分支策略,是每一个开发团队开始工作时面临的第一个问题。那么,选

2020-07-13 11:06:58 451

原创 Git重置提交

1、重置工作区提交本地编写的代码,未执行任何git命令时,处于工作区,可以使用:git diff来查看本地修改。如果想重置(清空)工作区的修改内容,可使用:git checkout -- .清空当前工作区目录下的所有修改。也可以指定文件名称,重置对某个文件的修改。git checkout -- [filename]2、重置暂存区的修改本地编写的代码,可通过执行git add .命令将已修改的文件提交到暂存区。使用该命令后再使用git diff将不会看到任何输出。如果想查看暂存区的修改需

2020-06-30 09:52:10 4036

原创 计算机网络基础之OSI网络模型

定义开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。作用不同厂家的网络产品,只要遵照这个参考模型,就可以实现互连、互操作和可移植性。也就是说,任何遵循OSI标准的系统,只要物理上连接起来,它们之间都可以互相通信。特点开放系统互连参考模型的特点

2020-06-03 10:22:07 293

原创 最形象的解释--同步、异步、阻塞与非阻塞的区别

一、概念异步:某个事情需要10s完成。而我只需要调用某个函数告诉xxx来帮我做(然后我再干其他的事情)同步:某个事情需要10s完成,我需要一直等它完成(等10s),再能继续后面的工作。阻塞:做某件事情,直到完成,除非超时非阻塞:尝试做,如果不能做,就不做(直接返回),如果能做,就做。前两者和后两者不容易区分,不过前两者更多的有涉及到多线程交互(消息)的场景。二、举个例子小李喝了想喝水,于是去煮开水。1、小李把水壶放到炉子上,等待水烧开。(同步阻塞)小李感觉这样太费时间。2、小李把水壶放到

2020-05-28 19:27:39 218

原创 20200416 java面试

1、常用的java集合框架及底层实现2、ConcurrentHashMap的实现,1.7和1.8的区别3、AtomicInteger的底层原理4、手写死锁代码5、手写交替输出及最后输入主函数。6、mysql读写分离、主从、热备是如何实现的...

2020-05-03 18:25:11 151

原创 JAVA并发编程之详解volatile

可见性可见性的意思是,当一个线程修改共享变量时,其他线程能读到修改后的值。指令重排程序指令的执行顺序有可能和代码的顺序不一致,这个过程就称之为指令重排。作用:JVM能根据处理器的特性,充分利用多级缓存,多核等进行适当的指令重排序,使程序在保证业务运行的同时,充分利用CPU的资源,发挥最大的性能!由于指令重排的特性,为了保证程序在多线程的条件下运行结果能够与单一线程下一致,引入了Happe...

2020-05-03 16:43:03 163

原创 20200427面试京东7fresh业务部

1、@Autowired注解和@Resoure注解的区别2、Spring循环依赖3、tomcat如何区分不同项目中的相同类的,如果是你,你会如何设计。4、synchronized的锁升级5、CAS的工作原理?是否就一定是非阻塞的。6、ReentrantLock 读写锁7、CPU100%的处理办法,用哪些工具。8、mysql 联合索引的路由9、select count(*) 和 ...

2020-04-27 12:06:16 683

原创 java锁之自旋锁

定义:自旋锁(spin lock)是一种非阻塞锁,也就是说,如果某线程需要获取锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗CPU的时间,不停的试图获取锁。线程反复检查锁变量是否可用。由于线程在这一过程中保持执行,因此是一种忙等待。作用:自旋锁避免了进程上下文的调度开销。线程一直处于用户态,减少了用户态到内核态的开销与损耗(减少了上下文切换)。适用场景:1、多线程2...

2020-04-24 18:10:09 319

原创 Hashmap JDK1.7与1.8的区别

**一、数据结构不同:**1.7:数组+链表 头插法(向链表中添加元素时在头部插入,这样能提高插put操作的性能,但在多线程情况下有链表逆序和循环链表的问题–会导致死循环)。Entry<K,V>数组static class Entry<K,V> implements Map.Entry<K,V>{final K key;V value;...

2020-04-23 22:05:34 344

原创 线程之内存可见性

多个线程可以共享访问和操作相同的变量,但一个线程对一个共享变量的修改,另一个线程不一定马上就能看到,甚至永远也看不到。public class VisibilityDemo { private static boolean ok = false; static class MyThread extends Thread{ @Override pub...

2020-04-20 19:29:51 183

原创 20200414新东方一面

1、springboot的启动流程2、springboot与传统的项目有什么区别3、springboot4、mysql explain关注的字段5、聚簇索引与非聚簇索引的区别6、innodb中有哪些索引7、消息队列保持幂等性8、concurrenthashmap1.7和1.8的区别9、mybatis二级缓存10、事务隔离级别有哪些,默认的是什么11、Automic的原理...

2020-04-14 18:49:50 142

原创 二分法模板

模板一public int search(int[] nums, int target) {int left = 0, right = nums.length - 1;while(left <= right) {int mid = (left + right) / 2;if(nums[mid] == target) {// 处理逻辑} else if(nums[mid] &lt...

2020-02-13 16:11:12 117

原创 SpringMVC工作原理

什么是SpringMVCSpringMVC是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图的一种框架。其中核心类是DispatchServlet。SpringMVC工作原理1、客户端发起请求(请求中至少包含URL),前端控制器DispatcherServlet接收到请求。2、DispatcherServlet的任务是将请求发送给Spri...

2019-12-13 14:25:45 201

原创 事务隔离级别

来自网上的Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已经打到程序员的户口,但是事务还没有提交,就在这时,程序员去查看自己这个月的工资,发现比往常多了3千元,以为涨工资了非常高兴。但是老板及时发现了不对,马上回滚差点就提交了的事务...

2019-12-11 16:43:06 145 1

原创 内存泄漏与内存溢出

内存泄漏(Memory Leak)向系统申请了内存,但使用完成后不进行内存的释放。多次执行后会导致内存溢出,因为被使用的内存相当于一直被占用,从不释放,系统可分配的内存一直在减少。举例:去澡堂洗澡,每次占用一个柜子存放衣物,洗完后不把钥匙归还,之后每次都新要一个柜子,且不还钥匙。可用的柜子越来越少,直到某一天所有柜子都被占用了。内存溢出(Out Of Memory)向系统申请了内存,但系统...

2019-11-14 11:13:17 412

转载 k8s查看pod的命令

kubectl get pod参数解析NAME pod名READY 准备好的副本数STATUS 状态RESTARTS 重启AGE 已经运行的时间查看pod资源(较详细)kubectl get pod -o wide参数解析IP ip地址NODE 运行节点NOMINATED NODE 指定节点查看pod资源(非常详细)kubectl describe pod参数解析N...

2019-11-13 09:20:54 50158 3

原创 jvm运行时数据区

线程私有部分程序计数器:指向当前线程正在执行的字节码指令的地址(行号)。为什么需要程序计数器:1、java时多线程的,线程需要来回切换。2、确保多线程情况下程序的正常执行。虚拟机栈:存储当前线程运行方法所需的数据、指令、返回地址。一个方法一个栈帧栈帧:局部变量表(32位的定长区块,2的32次方):存储局部变量,例如:this(成员)Object(引用)weixin(自定...

2019-11-09 17:36:25 113

原创 Mysql索引

1、索引定义:是一种帮助mysql高效获取数据的数据结构。2、mysql索引使用的数据结构:B+Tree3、索引分类:聚集索引:叶节点包含了完整的数据记录(索引与数据行存在一起)。非聚集索引:索引与数据行分开存放。存储引擎是表维度上的概念。一个数据库可以创建不同存储引擎的数据表。3.1 myisam存储引擎(非聚集索引):索引文件和数据文件分离。data目录下以.frm 、.MYD、...

2019-10-30 22:32:33 1200

原创 Spring 事务传播机制

Spring 事务传播机制1、Propagation.REQUIRED默认事务。如果没有当前事务就新建一个事务,如果已经存在一个事务就加入到已存在的事务中。即你买了我就用你的,你没买我就自己买一个。2、Propagation.SUPPORTS支持当前事务,如果当前没有事务就以非事务的方式运行。即提供了就用,没提供就不用。3、Propagation.MANDATORY使用当前事务,...

2019-10-29 11:37:05 114

转载 TCP/IP三次握手与四次挥手

TCP/IP三次握手与四次挥手(参考自https://www.jianshu.com/p/4084a9397138 )1、TCP报文首部格式源端口和目的端口(Source Port和Destination Port):分别占用2个字节,用于区别主机中的不同进程,而IP地址是用来区分不同的主机的,源端口号和目的端口号配合上IP首部中的源IP地址和目的IP地址就能唯一的确定一个TCP连接。序号...

2019-10-16 22:19:45 109

空空如也

空空如也

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

TA关注的人

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