- 博客(16)
- 资源 (10)
- 收藏
- 关注
原创 2021-09-07
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-09-07 18:01:30
102
原创 限流算法
1、令牌桶算法 1、每秒生成固定的令牌 2、一次可以获取一定的令牌,不行就阻止 实现方案: 1、分布式锁 2、固定时间增加令牌数 3、获取令牌,扣减令牌 4、定时任务2、漏斗算法 1、请求一直添加,只要不溢出 2、请求的执行恒定实现方案: 1、分布式锁 2、指定桶的大小...
2020-03-09 15:54:38
175
原创 技术栈
一、算法:冒泡排序(两种)、递归算法、二分查找、一致性hash算法二、数据结构链表、二叉树三、网络通信TCP\IP、NIO四、操作系统五、JVM
2018-01-02 13:15:17
476
原创 团队的发展阶段与策略
一、组建团队的过程1、组建期【周期1.5月】 1、【重点】支撑业务开发,团队建立信任,达成共识。 心灵鸡汤、鸡血、整体磨合、团队会议与活动、工作内容交叉、方案整体梳理、树立威信。 2、【招人策略】无暇等待高手出现,进人可以略宽松,能开发业务代码即可,后续可以培训。 3、【技术选型】选择
2016-05-09 12:04:37
3082
原创 [JAVA修炼之路十二]- session管理
1、session 复制集群中服务器之间使用复制原理缺点:随着机器的增多,session量的增大,复制功能极大的占用网络带宽2、session 绑定通过负载均衡hash算法实现,获取客户度的ip进行hash绑定,使同一ip访问到固定机器上面缺点:一旦服务器宕机,导致用户无法访问,无法满足可扩展性。3、利用cookie记录session通过把session放在cookie
2016-05-08 18:16:16
253
原创 [JAVA修炼之路十一]-java包Concurrent包-AQS锁的应用、优化、实践
一、syn、reentrantLock 性能对比 分析:以上图证明,随着线程数增强sync在下降,但是不能证明sync就是性能低下,分业务场景。1、如果线程之间竞争不激烈,此时用sync性能较高,并且简单,jvm本身做了优化2、如果线程之间竞争激烈,就要考虑其他方式。reentrantLock 使用如果同步时间较长,建议采用公平模式,防止自旋占用cpu,默认非公平
2016-05-08 17:16:24
402
1
原创 [JAVA修炼之路十]-JVM synchronized原理或优化
synchronized语法:1、synchronized语句;2、synchronized方法1、monitorenter和monitorexit字节码;依赖于底层的操作系统的Mutex Lock来实现的2、会被翻译成普通的方法调用和返回指令如:invokevirtual、areturn指令原理:用户线程阻塞,内核线程启动,设计到用户线成与内核线程的切换,花销较大JVM 对于
2016-05-08 16:38:37
3015
原创 [JAVA修炼之路九]-java包Concurrent包-AQS
•一、结构•1、状态:state (计数器)•2、FIFO 队列•••二、线程安全•CAS:状态赋值,与队列赋值•Unsafe方法Park、unpark 线程挂起与恢复•三、node模式•1、共享模式•2、独占模式
2016-04-19 20:49:36
345
原创 [JAVA修炼之路八]-java包Concurrent包-atomic
一、包结构1、原子更新基本类型类AtomicIntegerAtomicLongAtomicBoolean2、原子更新数组类AtomicIntegerArray:原子更新整型数组里的元素。AtomicLongArray:原子更新长整型数组里的元素。AtomicReferenceArray:原子更新引用类型数组里的元素3、原子更新引用类型At
2016-04-19 20:44:19
330
原创 [JAVA修炼之路七]-JVM 垃圾回收器
一、各种回收器特点1、新生代串行回收器a、运行过程中,应用中所有线程停止工作(STW)b、Client 模式下,默认收集器c、分代复制算法d、垃圾回收图2、老年代串行回收器a、启动方式:-XX:+UseSerialGC、-XX:+UseParNewGC、-XX:+UseParalllelGCb、标记压缩算法、运行过程中,应用中所有线程停止工作(STW)c、垃圾回
2016-04-10 20:26:17
419
原创 [JAVA修炼之路六]-JVM 垃圾回收机制(算法)
一、回收算法1、根引用计数算法原理:对象有引用计数加1,同理减1缺点:两个对象互相引用,无法回收2、标记清除算法原理:1、从根基以树形方式查找所有的对象,进行标记 2、针对标记对象进行清理缺点 : 产生碎片、影响对象存放3、标记复制算法原理:有两块内存区域,一块用于复制1、从根基以树形方式查找所有的对象,进行标记2、复制标记的对象(A)到另一块内存
2016-04-06 17:59:11
435
原创 [实战案例一]-dubbo-consumer 执行时间慢
问题来源:采用DUBBO服务,A、B两台服务器访问dubbo速度较慢,C、D服务器正常,服务器都是同样代码。A、B 两台服务器,查看consumer都是1.5秒以上,而其他两台服务器都保持300毫秒以下1、查看速度慢的服务器,红色的是时间2、调用的provider执行时间:100多毫秒3、此时判断服务器端应该没有问题,那是什么问题呢?排查dubb
2016-04-01 17:43:35
9840
2
原创 [JAVA修炼之路四]-集合(ConCurrentHashMap HashTable)
一、ConcurrentHashMap1、结构图 2、线程安全 注意:节点数组segsments 集合。 节点数组初始化:采用volatile 变量 CAS保证线程安全。 节点数组定位:unsafe getObjectVolatile 获取头节点,通过对此节点synchronized保证线程安全3、节点数组 为了保
2016-03-31 21:42:17
442
原创 [JAVA修炼之路四]-JVM内存模型以及对象实例化过程
一、JVM 内存模型注意:1、类加载器加载类2、执行引擎 -执行运行时数据区二、JVM 对象三、实例化对象流程1、类加载服务器启动等,把class字节吗加载到方法区2、实例化Object object=new Object();object引用存放桟中,对象的数据值存放堆中,堆中存放的是结构化数据四、注意点1、一个class所
2016-01-12 22:22:18
522
原创 [JAVA修炼之路三]-JAVA Thread 方法
一、sleep与wait方法区别 1、这两个方法来自不同的类分别是Thread和Object 2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在 任何地方使用 synchro
2016-01-11 19:21:37
858
原创 [JAVA修炼之路一]-JAVA ATOMIC 包
1、整体思路为了保证原子性,采用了cas与volatile2、详解包结构包里面的类分三种类型:标量类:AtomicBoolean,AtomicInteger,AtomicLong,AtomicReference数组类:AtomicIntegerArray,AtomicLongArray,AtomicReferenceArray更新器类:AtomicLongField
2016-01-06 20:57:59
277
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人