自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱学习的专栏

坚持学习 坚持知识分享

  • 博客(11)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Mongodb 总结

查询:因为是文档型数据库 所以在针对关联查询的时候不需要联表查询。扩展:自带分片(副本集)进行数据库的分库操作。1.Mongodb和Mysql数据库简单对比。2.Mongodb和mysql对比的优势。

2023-08-21 09:28:23 85

原创 JMV-GC

何为垃圾,怎么被回收,如何选择。1.垃圾定义JVM 2种定位垃圾方法:引用计数 以上对象都有引用, 2.根可达: X1 X2 X3 是根可达对象,不是垃圾对象;但是因为X4 X5为相互引用 但是根不可达所以定为垃圾2.如何回收 肯定是通过垃圾回收器!!! 常用的垃圾回收器组合(一般根据内存或者业务划分):假如内存比较小 1G一下 使用单线程的Serial+SerialOld 内存1-8G 使用PS(Par...

2020-08-06 11:29:36 224

原创 JMM

一、了解CPU内存工作模式 1.CPU 有高速缓存 网上帖子一堆 大概有L1 L2 L3 CPU多核 所以存在数据一致性 CPU数据一致性为 MESI+总线锁(也有其他算法) 2.CPU 的缓存存储单元 cacheline 64byte CPU读取都是读取一块64字节 不是单独读取某个字节 所以当多个线程 读取同一个内存块 因为数据一致性所以会频繁刷新内存 如图:代码示例:...

2020-07-16 20:46:50 283

原创 JVM-类加载

加载过程:loading->linking(Verification,Preparation,Resolution)->initializingloading:双亲委派加载,为了安全性(自定义类加载器 然后加载jdk自带的类 比如String 具有破坏性)加载流程如图1-11-1源码如图1-2图1-2...

2020-06-30 22:10:13 1025

原创 JVM-class文件

1. 创建项目 编译成class文件 通过javap 命令 查看 编译后的文件。命令:javap -v xx.class 如图 1-1 或者安装插件 jclacclib 查看 如图1-2图1-1图1-2

2020-06-29 13:48:13 139

原创 提高“锁”性能

1.减少锁持有时间2.减小锁的粒度 (尽可能的细化业务代码,业务方法,在需要加锁的方法上进行加锁)3.锁分离(读写锁) 参考LinkedBlockingQueue take(),put() 4.锁粗化(和减少锁持有时间相反,主要针对很快能执行完成的操作)  锁优化  偏向锁:一个线程获得了锁,那么锁就进入偏向模式。当这个线程再次请求锁时,无须在做任何同步操作,节省了锁申...

2018-11-20 15:28:39 160

原创 并发集合

jdk 提供的容器大部分在java.util.concurrent包中。ConcurrentHashMap:高效的并发HashMap。线程安全的HashMap。CopyOnWriteArrayList:在读多写少的场合,性能高于Vector。ConcurrentLinkedQueue:高效的并发队列,链表实现,线程安全的LinkedList。BlockingQueue:接口,jdk...

2018-11-20 15:25:42 196

原创 线程管理

线程池:  避免系统频繁的创建和销毁线程;   提高创建线程进行复用;ThreadPoolExecutor 方法 返回值 解释 newFixedThreadPool(int nThreads) ExecutorService 固定线程数量的线程池;无空闲线程,任务暂存任务队列中,待有空闲线程便处理在任务队列中的线程 newSingleThreadExec...

2018-11-06 14:05:44 339

原创 java 多线程中常用的锁

1.synchronized (同步)2.object.wait() object.notify()  (配合synchronized使用)3.readWriteLock(读写锁)  读 写 读 非阻塞 阻塞 写 阻塞 阻塞  注:读操作次数远大于写操作,读写锁优势最大4.condition (配合lock使用 类似 object...

2018-11-02 15:42:57 809

原创 java高并发 原子性 有序性和可见性 解释

原子性:一个操作是不可中断的。即使多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。有序性:程序在执行时,可能会进行指令重排,重拍后的指令与原指令顺序未必一致;使用(synchronized)保证有序可见性:一个线程修改某一个共享变量的值,其他线程立即知道修改结果。(volatile)...

2018-10-31 17:30:18 402

原创 wait和sleep区别

  自己给自己一点压力,每天学习,每天进步。sleep和wait 区别:wait可以主动被唤醒,wait会释放目标对象锁,而sleep不会释放任何资源实例:运行结果有时候有出入 请多试几次 原因可能是:线程切换 ...

2018-10-30 16:39:44 164

空空如也

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

TA关注的人

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