加载中
java并发问题的根本原因

JVM内存模型 JVM内存模型将内存分为了主内存,工作内存。 读取数据的时候,现从主内存读取到工作内存,然后再工作内存进行修改之后再同步到主内存,这个地方会存在数据不一致的情况。 在硬件...

设计模式之工厂模式

简单工厂模式 符合人类思考,由工厂创建并返回对象 工厂方法模式 符合开闭原则,不用修改if-else语句,直接通过继承abstractFactory来扩展新产品工厂。 抽象工厂模式 如果新增一种产品的话,...

03/02 15:20
95
设计模式之单例模式

单例模式是各场景下常用的一种模式。 安全的double check的实现 注意点 构造函数为private修饰,不让外部直接调用创建类 两次if判断instance是否为空。第一层是为了判断如果instance存在直接...

02/27 17:56
166
设计模式之模板模式

优势 隔离逻辑,避免使用if-else,结构清晰 如何实现 一个抽象父类,定义好各流程方法,然后串联总流程 多个实现子类,实现各自的流程方法。 使用的时候只需要调用串联总流的方法即可 场景 ...

02/27 17:22
101
设计模式之策略模式

优势 符合开闭原则,便于扩展,改造if-else的写法,结构清晰。 缺点 客户端需要知道所有的策略,不然没法使用策略。 如何实现 一个抽象类,定义抽象方法。 多个继承类实现自己的抽象逻辑。 ...

02/27 12:20
150
JVM执行Groovy脚本导致堆外内存溢出问题排查

旁边一个哥们遇到个问题,机器每个几天报docker实例内存使用超过90%,然后过一会k8s就回强制自动重启。经过排查终于查出问题所在。 排查过程: 查看jvm堆情况。堆内存的use和commit实际不大。...

01/07 18:07
931
ThreaLocal实现原理

ThreadLocal的实现很简单 Thread内部维护一个ThreadLocalMap对象,key就是Thread对象。 set的时候会将value放入当前线程的ThreadLocalMap对象里面。 get的时候会通过当前线程ThreadLocalMap对...

2019/11/19 14:03
73
解决问题&发现问题

作为一个程序员非常重要的的能力就是解决问题的能力,当然除了解决问题之外,还有一个经常被疏忽的能力-发现问题的能力。 解决问题 一套有效的解决问题的能力非常重要,下面是一个解决问题的...

2019/07/16 09:38
87
秒杀场景设计

秒杀场景设计,缓存的巧妙使用 一、小库存商品秒杀架构设计 小库存商品虽然用到了乐观锁,但是乐观锁在库存数非常多,并发非常多的时候效率很低,所以针对大库存的商品还需要改进 二、大库存...

2019/07/11 21:44
1.4K
稳定性打造

稳定性如何打造? 1.监控 通过鹰眼这样类似的工具来做。入口会创建tranceId,所有中间件和rpc的地方都会根绝tranceId打日志,日志通过agent传到鹰眼服务上,鹰眼服务把日志存在实时或者离线的...

2019/07/10 11:18
80
AQS学习

java里面有很多并发工具类。其实这些并发工具类核心是AQS AbstracQueueSynchrolizor。 下面说一下ReentrantLock如何通过AQS来实现锁的。 AQS核心字段 status 锁的状态 exclusiveOwnerThread...

2019/07/09 12:01
75
线上遇到的一些问题总结

一、cpu load 非常高达到100% 1.top定位到哪个进程load值很高。 2.top定位到哪几个线程load很高。 3.ps -eg | grep java 定位到jvm进程。 4.通过jstack查看jvm线程,发现load很高的是GC线程 ...

2019/07/09 11:46
78
redis复习

redis 把数据存储在内存,极高的效率提供读写功能。配合sentinel实现主从,或者集群实现大数据和流量下的分布。 1.数据类型 string list hash set zset 2.数据存储方式 3.过期删除方式。 惰性...

2019/07/08 19:00
83
常见面试题复习

并发: 线程: 1.Thread.yield(),thread.join()作用和区别? 执行Thread.yield()的当前线程会让出cpu,状态从running状态变成ready状态。 执行thread.join()的当前线程会阻塞等待thread执行完...

2019/06/08 15:07
71
技术复习-Mysql

索引 主键索引 主键字段作为索引,在mysql中主键索引默认唯一索引,也是聚集索引 联合索引 多个字段组成的索引,可以是唯一索引。 唯一索引 唯一索引的字段不可重复 聚集索引 索引和数据保存...

2019/05/12 21:21
34
技术复习-JVM

什么是JVM java文件通过编译器编译成class字节码,由JVM加载并解释执行。java虚拟机是实现了java跨平台的核心技术,同时为了解决解释执行速度慢的问题,提供了JIT把经常执行的代码编译成机器...

2019/05/10 00:26
34
技术复习-并发

并发的好处 效率高,速度快 突破单cpu瓶颈上限 并发的坏处 线程安全:对同一个资源同一时刻操作的问题。 上下文切换 锁 Synchronized java中最基本的锁,可以锁代码块,方法,静态方法,非公...

2019/05/07 12:17
79
技术复习-java线程池

ThreadPoolExecutor ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, R...

2019/05/05 23:33
32
程序员随想-关于分享

最早的时候,文字是贵族这些上层人士才会学习的,底层人士没有资格和渠道去学习,同样用文字、图像等其他载体承载的知识大部分也只有贵族阶层才能享受的。后来有了造纸术、印刷术,成本降低,...

2019/04/24 22:02
74

没有更多内容

加载失败,请刷新页面

返回顶部
顶部