自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Java线程池

一 ThreadPoolExecutor ThreadPoolExecutor构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit,

2022-04-29 16:40:12 747

原创 cas锁(Compare And Swap)

一 CAS介绍 CAS是Compare And Swap(比较并交换),是一条cpu并发原语,判断内存中某个值是否为预期值,如果是则更改为最新值。 1.volatile可以保证可见性 2.CAS是原语,不会被打断,且用volatile保证可见性 3.AtomicInterger的方法是调用unsafe的方法,unsage底层运用CAS,所以AtomicInterger既保证可见性,也保证原子性。 推荐文章:cas完全替代锁(cas锁底层原理) ...

2022-04-29 16:09:31 608

原创 序列化Serializable和Parcelable的区别

一 序列化的目的 永久的保存对象数据(如文件、磁盘、数据库等) 将对象数据进行网络传输 进程之间进行传递 二 Parcelable 在内存的使用方面,Parcelable性能强于Serializable Parcelable以Ibinder作为信息载体,在内存方面开销小 读写数据,Parcelable直接从内存中读写 三 Serializable 使用反射机制,会产生大量临时变量,从而导致GC的频繁调用 读写通过IO流的形式将数据写入在硬盘上 提示:Parcelable无法很好的将数据持久化

2022-04-29 16:08:43 235

原创 ThreadLocal

一 ThreadLocal介绍 ThreadLocal是一个线程的内部存储类,可以在每个线程的内部存储数据。同一个ThreadLocal对象,在不同的线程中可以保存不同的对象。 二 实现原理: ThreadLocal的set()方法源码: public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null)

2022-04-29 15:20:29 96

原创 synchronized

一 synchronized优化: 在Jdk1.6之前synchronized为重量级锁,jdk1.6中对synchronized进行了性能优化,采用偏向锁,轻量级锁,重量级锁自动转化(单项转化)的形式来实现。 1.偏向锁 偏向锁是指一段同步代码一直被同一个线程所访问,那么该线程会自动获取锁,降低获取锁的代价。 2.轻量级锁 当锁是偏向锁时,被其他线程锁访问,偏向锁就会升级为轻量级锁,其他线程会通过自旋的形式尝试获取锁,不会阻塞,从而提高性能。 3.重量级锁 学习内容: 提示:这里可以添加要学的内容 例如

2022-04-29 11:44:49 123

原创 Java中锁的类型和死锁

一 主流锁的分类: 1.线程要不要锁住同步资源 1.锁住->悲观锁,如synchronized,ReentrantLock等 2.不锁住->乐观锁 如CAS 2.锁住同步资源失败,线程要不要阻塞 1.阻塞 2.不阻塞:自旋锁(自旋次数默认10次)和适应性自选锁(自旋的时间次数不固定) 3.多线程竞争同步资源的流程细节 1.不锁住资源,多个线程中只有一个能修改资源成功,其他线程会重试 ——无锁 2.同一个线程执行同步资源时,自动获取资源——偏向锁 3.多个线程竞争同步资源时,没有获取资源的

2022-04-28 21:49:55 510

原创 Java中wait和sleep的区别

1 wait 1.wait是Object类的方法 2.释放锁 3.wait,notify,notifAll只能在同步方法中火同步控制快中使用 2 sleep 1.sleep是Thead的方法,在那个线程调用,那个线程就会进入sleep状态 2.没有释放锁 3.sleep可以在任何地方使用 ...

2022-04-28 21:11:40 614

原创 Java基础-接口和抽象类的区别

1 接口: 1.一个类可以实现多个接口 2.所有的方法都是抽象的(jdk8开始新增default方法) 3.不能声明和使用字段,可以创建静态的final常量 4.不能定义构造函数 5.接口省略public,包外的类不能访问接口 2 抽象类 1.一个类只能继承一个抽象类 2.可以包含具体方法 3.可以声明和使用字段 4.可以定义构造函数 ...

2022-04-28 21:00:15 465

原创 Java基础- HashMap

Java HashMap

2022-04-28 20:50:04 673

空空如也

空空如也

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

TA关注的人

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