
java
文章平均质量分 64
凤凰码路
这个作者很懒,什么都没留下…
展开
-
滑动窗口java代码实现
public class SlidingWindow { /** * 循环队列 分段存放数据 */ private AtomicInteger[] timeSlices; /** * 每个时间片的时长,以毫秒为单位 */ private int timeMillisPerSlice; /** * 共有多少个时间片(即窗口长度) */ private int windowSize; /*.原创 2020-07-09 14:15:04 · 1426 阅读 · 0 评论 -
ThreadLocal为什么这么设计,还有那些可以优化点?
问题一. 同一个线程方法之间的传参方式有那些?1. 通过方法参数进行传参,与业务逻辑无关的通过参数,不方便。2. 通过公共变量进行传参 如: static object param = null,这样写有很多问题,如并发问题,gc问题,几乎不这样写。ThreadLocal按照第二种解决方式方式进行了优化。优化:把object 放在了Thread类里面,这样object的生命周期就可以依赖Thread的生命周期,因为是线程的内部属性,天生线程安全。问题二:线程中有多个参数的化怎么办,是不是原创 2020-05-11 21:48:59 · 500 阅读 · 0 评论 -
java iterator迭代器的那些事
1. Java 迭代器如何实现的看代码(以ArrayList为例)2.迭代的过程中添加删除元素为何报错原创 2020-04-26 14:17:37 · 152 阅读 · 0 评论 -
分布式锁——Redis
IoC:Inversion of Control 控制反转 面向对象的一种设计思想。对象之间的关系不由对象本想决定,而是由操纵对象的主角决定。每个人之间的关系由上帝决定。所以程序员编码的时候只需要关注上帝就可以了,不需要关注每一个对象。核心接口 BeanFactory IoC容器的最基础的接口IoC容器中的对象基础接口BeanDefinitionIoC容器接口核心设计图...原创 2025-02-06 15:54:47 · 705 阅读 · 0 评论 -
为什么内存进制是1024,数据传输速率是1000?
内存进制:在日常生活中,有0-9十种标识,所以就用10进制。在钟表上,有60个刻度,所以就用60进制。在计算机底层,只有0和1两种标识,所以就用2进制,由于2太小了,所以就用了2^10作为进制。大胆推测,假如哪天计算机出现了3种标识,那么就要用3^n进制了。进制换算1T=1024GB1G=1024M1M=1024KlK=1024B1B=8b (B:...原创 2019-05-20 20:14:45 · 12966 阅读 · 5 评论 -
activeMQ持久化与 个Spring的结合
答疑 消息的发送策略持久化消息默认情况下,生产者发送的消息是持久化的。消息发送到broker以后,producer会等待broker对这条消息的处理情况的反馈可以设置消息发送端发送持久化消息的异步方式connectionFactory.setUseAsyncSend(true);回执窗口大小设置connectionFacto...转载 2019-01-24 17:51:42 · 177 阅读 · 0 评论 -
Java中创建对象的5种方式和8种单例创建的关系
原创 2019-01-08 17:24:04 · 400 阅读 · 0 评论 -
Java中创建对象的5种方式
作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象。然而这里有很多创建对象的方法,我们会在这篇文章中学到。 Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码如果你运行了末尾的的程序,你会发现方法1,2,3用构造函数创建对象,方法4,5没有调用构造函数。1、使用new关键字这是最常见也是最简单的创建对象的方式了。...转载 2019-01-08 15:47:18 · 154 阅读 · 0 评论 -
MsgPack和Hessian序列化的区别
两者的区别: hessian序列化的时候,会写入字段名称,然后字段值,你可以想象为一个map。 msgpack序列化的时候,不写入字段名字,会按字段顺序写入值,你可以想象为一个数组。从这就可以看出: hessian产生的数据包较大,msgpack产生的数据包较小。网络传输数据更小。 序列化中hessian的性能较差,(相当于每次map按名字取值) msgpack性能更佳,(相当于数组取值...转载 2018-05-07 16:04:46 · 666 阅读 · 0 评论 -
常见死锁的另类解决方法
前些天周杰让我看了一段代码, 让我觉得学习一下基础的知识还是挺重要的, 对理解代码有很大帮助。这是一个关于死锁的问题,代码如下:很明显,这段代码在多线程情况下,会产生死锁:假设线程1 做的操作是账户A给账户B转账, 先锁住了A账户, 接下来试图申请B账户的锁,与此同时线程2 在从 账户B给账户A 转账, 先锁住了B账户的锁, 接下来试图申请A账户的锁。两个线程各自持有资源, 然后等待获取对方的资源...转载 2018-04-10 19:04:35 · 313 阅读 · 0 评论