摘要: 前言 在高并发的环境下,当我们使用一个公共的变量时如果不加锁会出现并发问题,例如SimpleDateFormat,但是加锁的话会影响性能,对于这种情况我们可以使用ThreadLocal。ThreadLocal是将公共变量copy一份到线程私有内存中以消除并发问题,ThreadLocal是JDK内部提 阅读全文
posted @ 2019-07-16 17:38 随花四散 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 前言 首先说一下业务场景:我们系统中的视频全部存储在第三方的云平台上,我们需要调用其接口来对视频进行操作。由于第三方平台的原因,这个操作可能存在0-30秒的延迟,在这期间如果有其他请求对这个视频进行操作就会出现并发问题(一个视频只允许操作一次)。 其实这个问题算不上真正的并发问题,不过其类似于并发, 阅读全文
posted @ 2019-06-24 17:25 随花四散 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 剧情: 影片是经典神话《白娘子传奇》的前传性质的故事,加以制作人的改编形成的,这个中国人耳熟能详的IP在谈起时免不了被冠上俗套、过时、不受年轻人欢迎的帽子,但是这部片子完全没有给我这样的感觉 它的剧情是原创的,但是剧中又出现了那些熟悉而又陌生的人物,这样可以勾起观众兴趣同时给观众讲故事。 影片的受众 阅读全文
posted @ 2019-01-22 18:32 随花四散 阅读(457) 评论(0) 推荐(1) 编辑
摘要: https://blog.csdn.net/qzcsu/article/details/72861891 阅读全文
posted @ 2018-12-02 20:11 随花四散 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 相信,网上很多java性能优化的帖子里都会有这么一条: 尽量把不使用的对象显式得置为null.这样有助于内存回收 可以明确的说,这个观点是基本错误的.sun jdk远比我们想象中的机智.完全能判断出对象是否已经no ref..但是,我上面用的词是"基本".也就是说,有例外的情况.这里先把这个例外情况 阅读全文
posted @ 2018-11-21 17:21 随花四散 阅读(5797) 评论(0) 推荐(1) 编辑
摘要: 1. put() 1 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, 2 boolean evict) { 3 HashMap.Node<K,V>[] tab;//指向存储数组的引用 4 HashMap.Node<K,V> 阅读全文
posted @ 2018-10-17 17:07 随花四散 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 1. synchronize的作用 synchronize是java最原始的同步关键字,通过对方法或者代码块进行加锁实现对临界区域的保护.线程每次进去同步方法或者代码块都需要申请锁,如果锁被占用则会等待锁的释放,值得注意的是,等待锁的线程不会响应中断.synchronize的锁分为对象所和类锁,当s 阅读全文
posted @ 2018-10-16 17:33 随花四散 阅读(1124) 评论(0) 推荐(0) 编辑
摘要: 1. jdk静态代理 jdk静态代理主要使用硬编码实现.他通过对在代理类中持有委托类的引用,来打到在委托类方法执行前和执行后进行处理,实现简单,容易理解. 代码如下: 1.业务逻辑接口 2.业务逻辑实现类 3.代理类 在代理类中持有一个委托类的应用,以达到在代理类中进行相关处理. 4.测试类 以上就 阅读全文
posted @ 2018-10-14 22:36 随花四散 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 1.输入流的所有实例中的read()方法皆是阻塞的. 输入流只会在发生错误或者异常关闭的时候回返回-1,如果流中没有数据,不会返回-1而是一直阻塞. 2.BufferedReader的readLine()方法以\r或者\n为结束符 BufferedReader的readLine()方法在读取流中数据 阅读全文
posted @ 2018-09-27 16:57 随花四散 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 一. 区别 1.消息队列能够积压消息,让消费者可以按照自己的节奏处理消息,但是RPC不能. 2.消息队列是一个异步的过程(生产者发送消息之后,不会等待消息的处理),RPC是一个同步的过程. 3.消息队列的生产者不能得知谁消费了消息,消费结果是否成功,而RPC的调用者明确知道被调用者是谁,处理结果也能 阅读全文
posted @ 2018-07-04 10:17 随花四散 阅读(3332) 评论(0) 推荐(0) 编辑