自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java高并发编程笔记(一)同步器

本篇主要总结同步器的相关例子:包括synchronized、volatile、原子变量类(AtomicXxx)、CountDownLatch、ReentrantLock和ThreadLocal。还涉及到wait和notify/notifyAll。以及一些面试题如:生产者、消费者问题回忆关于线程的几个基本知识点:线程的概念(程序中不同的执行路径可以放到不同的CPU中同步运行); 如何启...

2019-12-26 17:18:03 500 1

原创 写两个线程,线程1添加10个元素到容器,线程2对元素个数做监控,个数为5时,线程2给出提示并结束

思路:开启两个线程,线程t1添加元素,线程t2监控元素个数为5。如何保证元素个数为5的时候t2执行,这里就思考如何再元素个数为5的时候t2拿到锁执行,t1等待。直到t2执行完之后t1再拿到锁。第一种方法:public class waitFiveSecondTest { volatile List list = new ArrayList<>(); pu...

2019-12-25 10:39:59 569 1

原创 浅谈volatile基本原理

内存可见性  volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩。  为了能比较清晰彻底的理解volatile,我们一步一步来分析。首先来看看...

2019-12-24 17:44:35 162

原创 TCP的流量控制——滑动窗口

TCP利用滑动窗口实现流量控制。一般来说,我们总是希望数据传输的更快一些。但是如果发送方把数据发送的很快,接受方就可能来不及接收,这就会造成数据的丢失。 所谓的流量控制就是让发送发的发送速率不要太快,要让接受方来得及接收数据。一般用于流量控制使用停止等待和滑动窗口进行流量控制。下面使用TCP流量控制举例,假设主机A和主机B,TCP发送的每个报文包含100字节。接受方主机B通知...

2019-12-24 17:01:00 749

原创 TCP的拥塞控制看这篇就足够了

先介绍拥塞控制的基本条件: 在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况叫做拥塞。在计算机网络中的链路容量(即带宽)、交换节点中的缓存和处理机等,都是网络资源 若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。好吧,一本正经果然不适合刚开始想学习的人。举个例子:交通十字路口是有红路灯的,如果没有按...

2019-12-22 18:25:12 924

原创 Spring事务注解实现的原理

Spring事务注解是个典型的Spring AOP的注解。方法上面加上@Transactional,方法就有了事务的能力。面试中:基于动态代理讲更多的东西。。。。为什么呢?--->其实里面核心也是动态代理。在一个使用了ProfitDetailService对象方法上面加入了@Transactional注解,正常来说我们导入的应该是ProfitDetailServiceImp对...

2019-12-09 17:05:29 4685

原创 【java设计模式】之 代理(Proxy)模式(上)

先来看下代理模式的定义和目的 定义:给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用 目的:1、通过引入代理对象的方式来简介访问目标对象,防止直接访问目标对象给系统带来不必要的复杂性 2、通过代理对象对原有的业务增强好吧,这看上去完全不像人话,那我举个例子把这个说成人话把。如下: 张三现在...

2019-12-09 14:43:04 221

原创 【java设计模式】之 代理(Proxy)模式(下)

接上一篇代理(Proxy)模式,看下proxy内部到底做了什么处理。通过上篇的代码debug,如图p发现这里调用proxy发现如下图中的$Proxy0和$Proxy1代理类,如何来的呢?先回顾一些知识:类的完整生命周期如图:一般类的完整生命周期从源文件开始,然后通过javac编译成字节码文件,然后通过类加载机制在元空间(1.7之前为方法区)生成class对象,然后new出实例化...

2019-12-09 14:42:12 175

原创 使用SUBSTRING_INDEX将数据库某字段分割然后赋给另外一个字段

业务场景:历史数据展示的时候数据根据sort字段排序,sort字段定义为double(20,0) ,第三方传过来的数据sort又存在小数点的情况,比如传过来的3.25,3.5在数据库存储的时候都是3。导致排序展示的时候乱序。比较好处理的是,因为项目还存储了页码,见下图。这里将page_first_to_last中的字段根据—分割并将值赋值给sort,即可完美解决历史数据问题。UPDAT...

2019-12-04 16:01:36 368

原创 记一次对接第三方数据传输nginx出现“504 Gateway Time-out”的解决方法

业务场景:第三发团队直接将数据通过http请求将数据通过接口传给我们,然后我们再进行入库。项目涉及到大量图片信息,不仅要去第三方fastDFS服务器上下载图片还有对图片进行ocr识别导致图片数据量很大时,会报错504服务相应超时。项目中使用了nginx,所以这里解决超时问题要修改nginx配置文件。1.问题分析nginx访问出现504 Gateway Time-out,一般是由于程序执行时间...

2019-12-04 15:46:37 1191

转载 记一次解决OutOfMemoryError:Java heap space

业务场景:项目中涉及到大量图片导出,另外中途使用I/O对图片进行了处理,图片个数过多导致内存溢出。https://blog.csdn.net/lyflyyvip/article/details/82288719使用OutOfMemoryError神器jvisualvm(从cmd进入)看一下内存情况,跟这篇博客业务情况很类似,但是不同的是内存溢出的问题并不是相关少部分代码导致的。实际业...

2019-12-04 15:40:02 236

原创 mybatis中使用_parameter获取参数进行条件查询

业务场景:数据查询业务逻辑改变,但是要兼容历史数据。而当前逻辑的数据需要根据某些条件去判断是否查询。使用_parameter获取参数进行判断mapper:Integer getNoFJEvidenceNum(@Param("case_id") String case_id, @Param("isFj") int isFj); //isFj就是当前逻辑判断查询条件xml:&...

2019-12-04 15:14:14 911

数据结构中的顺序表储存

数据结构中顺序表的储存结构,数据的查找,添加,删除.优点:可以直接通过下标查找到要找的数据,密度大.缺点:删除和添加要移动大量的元素,会产生碎片

2014-01-02

空空如也

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

TA关注的人

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